opencv使用cv2.erode() 和 cv2.dilate()实现图像的腐蚀和膨胀

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

主要是采用 cv2.erode()cv2.dilate(),需要注意一点的是,腐蚀和膨胀主要针对二值化图像的白色部分
在这里插入图片描述

  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()

在这里插入图片描述
在这里插入图片描述

  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()

在这里插入图片描述
参考链接:https://www.cnblogs.com/yqs-0705/p/10150026.html

发布了27 篇原创文章 · 获赞 20 · 访问量 1553

猜你喜欢

转载自blog.csdn.net/qq_39507748/article/details/104539073