OpenCV图像礼帽与黑帽运算详解:原理、代码与实现
本文详细介绍OpenCV中图像礼帽(Top Hat)与黑帽(Black Hat)的实现方法。礼帽通过开运算提取噪声,黑帽通过闭运算填充孔洞。文章提供基于morphologyEx函数的Python代码示例及卷积核配置,适用于二值图像处理。
OpenCV图像礼帽与黑帽运算详解
Python结合OpenCV库
图像礼帽处理原理与实现
图像礼帽处理
图像礼帽,亦称为图像顶帽(Top Hat)。其计算逻辑为:原始图像减去开运算后的图像。该操作主要用于提取图像中的噪声成分。开运算的定义是先进行腐蚀操作,随后进行膨胀操作。
适用对象主要为二值图像。

具体实现需调用morphologyEx函数,并指定参数cv2.MORPH_TOPHAT。调用格式为:结果图像=cv2.morphologyEx(原始图像, cv2.MORPH_TOPHAT, 卷积核)。其中,卷积核可通过代码生成,例如使用np.ones((10,10), np.uint8)构建一个10x10的全1矩阵作为卷积核示例。
import cv2
import numpy as np
o=cv2.imread("tophat.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_TOPHAT,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

图像黑帽处理原理与实现
图像黑帽处理
黑帽图像的计算公式为:闭运算后的图像减去原始图像。该操作旨在获取图像内部的小孔或前景色中的小黑点。闭运算的过程是先对图像进行膨胀,再进行腐蚀,有助于关闭前景物体上的小孔或填充小黑点。此方法同样适用于二值图像。

实现方式同样依赖morphologyEx函数,需指定参数cv2.MORPH_BLACKHAT。调用格式为:结果图像=cv2.morphologyEx(原始图像, cv2.MORPH_BLACKHAT, 卷积核)。卷积核示例与礼帽相同,可使用np.ones((10,10), np.uint8)构建。
import cv2
import numpy as np
o=cv2.imread("blackhat.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_BLACKHAT,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

至此,关于OpenCV图像礼帽和黑帽的实现介绍完毕。如需了解更多相关OpenCV图像礼帽和黑帽内容,建议搜索本站历史文章或继续阅读后续相关文章,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









