一、顶帽与黑帽
顶帽:原图减去开操作后的结果
黑帽:闭操作的结果减去原图
顶帽黑帽的作用:提取图像中微小有用的信息块
首先将图片处理成二值图:
src = cv.imread("D:/pythonTest/img/15.jpg")
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
cv.imshow("input",src)
用的是这张图:
然后进行黑帽和顶帽操作:
k = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
bh = cv.morphologyEx(binary,cv.MORPH_BLACKHAT,k)
cv.imshow("black hat",bh)
th = cv.morphologyEx(binary, cv.MORPH_TOPHAT, k)
cv.imshow("top hat", th)
得到如下效果:
确实将一些轮廓和细微的点都提取出来了。
换了一张图尝试了一下,效果也很不错。原图:
经过顶帽和黑帽操作后: