#腐蚀 """ import cv2 import numpy as np img = cv2.imread('one.jpg') kernel = np.ones((5,5),np.uint8) erosion = cv2.erode(img,kernel,iterations=1) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.imwrite('erosion.jpg',erosion) """ #膨胀 """ import cv2 import numpy as np img = cv2.imread('one.jpg') kernel = np.ones((5,5),np.uint8)#使用一个5*5的卷积核 dilation = cv2.dilate(img,kernel,iterations=1) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.imwrite('膨胀.jpg',erosion) """ #开运算(先腐蚀后膨胀)去除噪点 """ import cv2 import numpy as np img = cv2.imread('安全距离.jpg') kernel = np.ones((5,5),np.uint8)#使用一个5*5的卷积核 opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.imwrite('开运算.jpg',erosion) """ #闭运算(先膨胀后腐蚀)填充物体上的小黑点 """ import cv2 import numpy as np img = cv2.imread('安全距离.jpg') kernel = np.ones((5,5),np.uint8)#使用一个5*5的卷积核 closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.imwrite('闭运算.jpg',erosion) """ #形态学梯度 """ import cv2 import numpy as np img = cv2.imread('安全距离.jpg') kernel = np.ones((5,5),np.uint8)#使用一个5*5的卷积核 gradient = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.imwrite('形态学梯度.jpg',erosion) """ #寻找轮廓 """ import numpy as np import cv2 img = cv2.imread('opening.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY) contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) cv2.drawContours(img,contours,-1,(0,0,255),3) cv2.imshow("img", img) cv2.waitKey(0) """
1、depth去除安全距离后
2、闭运算
3、腐蚀
4、开运算
5、膨胀
6、形态学梯度