代码语言:javascript复制
import cv2
import numpy as np
o=cv2.imread("C:/Users/xpp/Desktop/Lena.png",cv2.IMREAD_UNCHANGED)#原始图像
k=np.ones((5,5),np.uint8)#设置核kernel
r=cv2.morphologyEx(o,cv2.MORPH_TOPHAT,k)#礼帽运算
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()
算法:礼帽运算,也称顶帽运算或高帽运算,是用原始图像减去其开运算图像的操作。礼帽运算获取原始图像的噪声信息,或者得到比原始图像的边缘更亮的边缘信息,比如得到前景图外面的毛刺噪声。
礼帽图像=原始图像-开运算图像=原始图像-(原始图像先腐蚀再膨胀)
- 首先读取图像
- 进行图像开运算操作
- 原始图像减去开运算图像,得到相减后的图像,获得礼帽运算图像的结果
result=cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
- img表示输入图像
- cv2.MORPH_TOPHAT表示礼帽运算
- kernel表示礼帽运算时所采用的结构类型
注意:图像开运算操作放大了裂缝或者局部降低亮度的区域,礼帽运算常用来分离比邻近点亮一些的斑块。在一幅图像具有大幅的背景且微小物品比较有规律的情况下,使用礼帽运算达到背景提取,使得线条更加突出的目的。