首先,要对图像进行灰度处理
gray =cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
1、图像腐蚀
对目标图像进行收缩,,可以消除小且没有意义的目标点;
cv2.erode(src,kernel[,dst,[ahchor[,iterations[,borderType[,borderValue]]]]
ahchor:锚点中心,默认为point(-1,-1);
iterations(迭代次数)是指某些算法或函数在执行过程中重复执行的次数。
img=cv2.imread('img.png')
gray =cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
k= np.ones((9,9),np.uint8)
image= cv2.erode(gray,k,iterations=1)
cv2.imshow('image', image)
cv2.waitKey(0)
2、图像膨胀
对目标图形进行粗化;
cv2.dilate(src,kernel[,dst,[ahchor[,iterations[,borderType[,borderValue]]]]
img=cv2.imread('img.png')
gray =cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
k= np.ones((9,9),np.uint8)
image= cv2.dilate(gray,k,iterations=1)
cv2.imshow('image', image)
cv2.waitKey(0)
3、边缘提取
膨胀是对图像外边缘的操作,腐蚀是对图像内边缘的操作;通过这两者相减,可以获得图像的边缘;
img=cv2.imread('img.png')
gray =cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
kerode= np.ones((9,9),np.uint8) # 腐蚀
erode= cv2.erode(gray,kerode,iterations=1)
kdilate = np.ones((9,9),np.uint8) #膨胀
dilate= cv2.dilate(gray,kdilate,iterations=1)
image =dilate -erode # 边缘提取
cv2.imshow('image', image)
cv2.waitKey(0)