cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
第一个参数:图像对象名称
第二个参数:运算类型TOPHAT为礼帽运算
第三个参数:卷积核的大小
礼帽运算:原始的输入-开运算(先腐蚀再膨胀)
原始带刺儿,开运算先腐蚀把刺儿腐蚀掉,然后再膨胀最后不带刺儿了
开运算之后不带刺儿了,原始-不带刺儿=只剩下刺儿
cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
第一个参数:图像对象名称
第二个参数:运算类型BLACKHAT为黑帽运算
第三个参数:卷积核的大小
黑帽运算:闭运算(先膨胀再腐蚀)- 原始输入
原始带刺儿,闭运算先膨胀刺儿也变大了,再腐蚀时,刺儿腐蚀不掉了
闭运算之后,刺儿还存在并且变粗了粗刺儿-原始细刺儿=刺儿没了只留下了点点轮廓
import cv2
import numpy as npdef show_photo(name,picture):cv2.imshow(name,picture)cv2.waitKey(0)cv2.destroyAllWindows()
#原图:
img = cv2.imread('E:\Jupyter_workspace\study\data/jiaju.png')
show_photo('img',img)#礼帽:
kernel = np.ones((3,3),np.uint8)
tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
show_photo('tophat',tophat)#黑帽:
kernel = np.ones((3,3),np.uint8)
blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
show_photo('blackhat',blackhat)
原图:
礼帽:
黑帽: