9.opencv-python;cv2库;形态学;MORPH_TOPHAT礼帽与MORPH_BLACKHAT黑帽

import cv2 #opencv读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline 
 
# 读取
img=cv2.imread('lena.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
 
# 图像二值化
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)

# 定义卷积核
kernel = np.ones((3,3),np.uint8) 

#礼帽,原图像减去先腐蚀后膨胀的图像,原图像-开运算,剩下毛刺
tophat = cv2.morphologyEx(thresh1, cv2.MORPH_TOPHAT, kernel)
cv2.imshow('tophat', tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()

#黑帽,原图像减去先膨胀后腐蚀的图像(先膨胀毛刺变大,是在毛刺的根部变大,后腐蚀毛刺减小但根部没去除),原图像减去闭运算,相减后剩下毛刺的根部,毛刺的根部连成线成为轮廓。为了证明这个思想,下面做实验。
blackhat  = cv2.morphologyEx(thresh1,cv2.MORPH_BLACKHAT, kernel)
cv2.imshow('blackhat ', blackhat )
cv2.waitKey(0)
cv2.destroyAllWindows()

原图-礼帽-黑帽对比,发现礼帽是毛刺,而黑帽是轮廓,看图片的右下角可知。

如果是个圆(毛刺非常小,因为图像没有绝对的圆,只不过毛刺大小卷积核提取不到),没有了(相对来说,特别小的卷积核也能识别到微小的毛刺)毛刺,效果如何呢?

 效果是,失去了作用。说明礼帽和黑帽,是依赖于图像中的毛刺的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值