opencv学习笔记九:使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀

腐蚀与膨胀属于形态学操作,所谓的形态学,就是改变物体的形状,形象理解一些:腐蚀=变瘦 膨胀=变胖

主要是采用 cv2.erode()cv2.dilate(),需要注意一点的是,腐蚀和膨胀主要针对二值化图像的白色部分
opencv学习笔记九:使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀_第1张图片

  1. 腐蚀:在原图的每一个小区域里取最小值,由于是二值化图像,只要有一个点为0,则都为0,来达到瘦身的目的。因此在下面的例子中,我们就可以使用腐蚀来将图片中的一些毛刺或者说很细小的东西给去掉
img = cv2.imread('dige.png')
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
kernel = np.ones((3,3),np.uint8) 
#iteration的值越高,模糊程度(腐蚀程度)就越高 呈正相关关系且只能是整数
erosion = cv2.erode(img,kernel,iterations = 1)

cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记九:使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀_第2张图片
opencv学习笔记九:使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀_第3张图片

  1. 膨胀:就是取得局部最大值,效果是“变胖”,我们可以直接操作腐蚀例子中的腐蚀过的图像erosion。为了效果明显一点,我们的iterations 参数取值大一点,设置为3
kernel = np.ones((3,3),np.uint8) 
dilate = cv2.dilate(erosion,kernel,iterations = 3)

cv2.imshow('dilate', dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记九:使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀_第4张图片
参考链接:https://www.cnblogs.com/yqs-0705/p/10150026.html

你可能感兴趣的:(opencv学习笔记九:使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀)