opencv 膨胀和腐蚀操作,开运算 ,闭运算,高帽,黑帽

定义:形象的话就是“增肥”与“减肥”。

作用:(1)膨胀处理缺陷问题,就是把缺陷给填补了。(2)腐蚀用来处理毛刺问题,把毛刺给腐蚀掉。

kernel = np.ones((3,3),dtype=np.uint8)

总结:指定全为1的3*3矩阵,为卷积核,该像素点的值为重点的3*3范围内的最大的值。由于我们是二值图像,所以只要包含周围白的部分,就变为白色。(只要原图片3*3范围内有白的,该像素点就是白的。

dilate = cv2.dilate(img,kernel,1) # 1 为迭代次数,也就是执行几次膨胀操作 (补缺陷)

更改kernel大小(4*4),也就改变了膨胀的程度。范围

腐蚀操作:和膨胀相反,将毛刺消除,就是取卷积核3*3区域内的最小值。总结:只要原图中有黑色的,该像素就是黑色的。

kernel = np.ones((3,3),dtype=np.uint8)

erosion = cv2.erode(img,kernel,iterations=1)

开运算和闭运算

腐蚀和膨胀都会有信息损失,两种结合就可以减少损失

开运算:先腐蚀,再膨胀。消除毛刺不损失信息。

opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel, 1)

闭运算:先膨胀,再腐蚀。缺陷补全。

closing = cv2.morphologyEx(img cv2.MORPH_CLOSE,kernel)

梯度计算 :显示边缘信息。

膨胀的图像 - 腐蚀的图像 即用大一圈的图像减去小一圈的图像正好就是边缘信息。

gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT,kernel)

高帽和黑帽

高帽计算:原始图像-开运算结果,获取要消除的毛刺信息(显示毛刺)

tophat = cv2.morphologyEx(img, cv2.MORPHTOPHAT, kernel)

黑帽计算:笔运算结果-原始图像,获取要弥补的缺陷信息(显示缺陷)

black_hat = cv2.morphologyEx(img, cv2.MORPHBLACKHAT, kernel)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值