Opencv——顶帽和黑帽运算

本文介绍了顶帽和黑帽两种形态学运算在图像处理中的应用,包括边缘检测、轮廓提取、噪声消除和斑块分离。通过Python和OpenCV示例展示了如何在实际代码中实现这两种运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、什么是顶帽和黑帽运算

二、顶帽和黑帽运算的作用

三、代码举例

1.进行顶帽运算

2.进行黑帽运算

四、总结


一、什么是顶帽和黑帽运算

顶帽和黑帽运算都是形态学运算,分别用于图像处理中的特定应用。

顶帽运算被定义为原始图像与进行开运算之后得到的图像的差。它常用于分离比邻近点亮的斑块,可以突显出比原图轮廓周围的区域更明亮的区域。在进行背景提取时,顶帽运算也常被用于分离图像中的微小细节。

黑帽运算则是图像闭运算结果与原始图像之差。它通常用于分离比邻近点暗一些的斑块,可以突出比原始图轮廓周围区域更暗的区域。

顶帽 = 原始图像 - 开运算结果(先腐蚀后膨胀)
黑帽 = 闭运算(先膨胀后腐蚀) - 原始图像

开运算并运算详细点击图像处理基础:图像膨胀、腐蚀、开闭运算及梯度运算的Python实现

二、顶帽和黑帽运算的作用

顶帽和黑帽运算在图像处理中具有以下作用:

  1. 边缘检测和轮廓提取:形态学梯度运算可以用来提取图像中的边缘和轮廓,顶帽和黑帽运算都是形态学梯度运算的一种,它们可以通过突出图像中物体的边缘和轮廓来提高图像的清晰度和对比度。
  2. 噪声消除:顶帽和黑帽运算可以用来进行噪声消除,尤其是对于那些亮度和暗度不均匀的图像,这两种运算都可以有效地消除噪声。
  3. 斑块提取和分离:对于一些特定的应用,比如在医学图像处理中,顶帽和黑帽运算可以用来提取和分离某些特定的斑块,如肺结节等。
  4. 图像增强:通过改变图像的亮度和对比度,顶帽和黑帽运算可以增强图像的视觉效果,使图像更清晰、更易于观察和理解。

总的来说,顶帽和黑帽运算在图像处理中都有着广泛的应用,可以有效地改善图像的质量和提高图像处理的精度。

三、代码举例

图片sun.png

1.进行顶帽运算

顶帽 = 原始图像 - 开运算结果(先腐蚀后膨胀)

代码:

sun = cv2.imread('sun.png')
kernel = np.ones((2, 2), np.uint8)  # 设置kenenel大小
tophat = cv2.morphologyEx(sun, cv2.MORPH_TOPHAT, kernel)
cv2.imshow('TOPHAT', tophat)
cv2.waitKey(100000)

tophat = cv2.morphologyEx(sun, cv2.MORPH_TOPHAT, kernel):这行代码对图像sun执行顶帽运算。顶帽运算被定义为原始图像与进行开运算之后得到的图像的差。这会强化图像中与周围区域相比更亮的区域。

结果:

2.进行黑帽运算

黑帽 = 闭运算(先膨胀后腐蚀) - 原始图像

代码:

blackhat = cv2.morphologyEx(sun, cv2.MORPH_BLACKHAT, kernel)
cv2.imshow('BLACKHAT', blackhat)
cv2.waitKey(100000)

blackhat = cv2.morphologyEx(sun, cv2.MORPH_BLACKHAT, kernel):这行代码对图像sun执行黑帽运算。黑帽运算被定义为闭运算结果与原始图像之差。这会强化图像中与周围区域相比更暗的区域。

结果:

四、总结

这两种运算可以有效地提取图像中的边缘和轮廓,同时也可以去除一些小的噪声。在实际应用中是非常有价值的,尤其是对于那些亮度和暗度不均匀的图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值