根据图像形状进行的简单操作,一般情况下对二值化图像进行操作
两个参数,一个原始图像,一个结构化元素或核,用来决定操作的性质
1 腐蚀
会把前景物体的边界腐蚀掉
如果与卷积核对应的原图像的所有像素值都是1,那么中心元素就保持原来的像素值,否则变为0.
对于去除白噪声很有用,也可以用来断开两个连在一块的物体
Img = cv2.imread(‘j.png’, 0)
Kernel = np.ones((5, 5), np.uint8)
Erosion = cv2.erode(img, kernel, iterations=1)
2 膨胀
与卷积核对应的原图像的像素值中只要有一个是1,中心元素的像素值就是1。会增加前景。
一般在去噪时先用腐蚀再用膨胀。膨胀可以用来连接两个分开的物体。
3 开运算
先进行腐蚀再进行膨胀就叫做开运算,用
cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
4 闭运算
先膨胀再腐蚀。用来填充前景物体中的小洞,或前景上的小黑点。
5 形态学梯度
就是一幅图像膨胀与腐蚀的差别,结果看上去就像前景物体的轮廓。
cv2.morphologyEx(img, cv2.MORPH_GRANIENT, kernel)
6 礼帽
原始图像与进行开运算之后得到的图像差
7 黑帽
原始图像与进行闭运算之后得到的图像差