根据图像形状进行的简单操作,一般情况下对二值化图像进行操作
两个参数,一个原始图像,一个结构化元素或核,用来决定操作的性质
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。会增加前景。
一般在去噪时先用腐蚀再用膨胀。膨胀可以用来连接两个分开的物体。
膨胀是以集合运算为基础,而卷积是以算术运算为基础。两者基本过程是相似的。
把反射之后的集合B在z中遍历。
形态学方法优于低通滤波方法的一个直接优点就是,这种方法在一幅二值图像中直接得到结果。而低通滤波方法从二值图像开始生成一幅灰度图像,这幅灰度图像需要用门限函数进行处理才能转变回二值图像。
3 开操作
一般使对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。
先进行腐蚀再进行膨胀就叫做开运算
用cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
4 闭操作
同样使轮廓线更为光滑,消弭狭窄的间断和长细的鸿沟,消除小的孔洞,并填补轮廓线中的断裂。
先膨胀再腐蚀。用来填充前景物体中的小洞,或前景上的小黑点。
5 形态学梯度
就是一幅图像膨胀与腐蚀的差别,结果看上去就像前景物体的轮廓。
Cv2.morphologyEx(img, cv2.MORPH_GRANIENT, kernel)
6 礼帽
原始图像与进行开运算之后得到的图像差
7 黑帽
原始图像与进行闭运算之后得到的图像差