形态学运算之基本概念

形态学运算是针对二值图像依据数学形态学(Mathematical Morphology)的集合论方法发展起来的图像处理方法。
通常,形态学图像处理表现为一种邻域运算形式,一种特殊定义的领域称之为“结构元素”(Structure Element),在每个像素位置它与二值图像对应的区域进行特定的逻辑运算,逻辑运算的结果为输出图像的响应像素。

简单来讲,形态学操作就是基于形状的一系列图像处理操作,通过将结构元素作用于输入图像来产生输出图像。

最基本的形态学操作有:腐蚀与膨胀(Erosion和Dilation)。
广泛应用于: 消除噪声、 分割(isolate)独立的图像元素以及连接(join)相邻的元素和 寻找图像中的明显的极大值区域或极小值区域。

腐蚀(Erosion):

即,模板和输入图像中对应位置的元素相与的结果全不为0时,结果才为0。
删除对象边界的某些像素。
用3x3的结构元素,扫描二值图像的每一个像素,用结构元素与其覆盖的二值图像做与运算,如果都为1,则结果图像中值为1,否则为0.
结果:前景对象减小一圈。


膨胀(Dilation):

即,模板和输入图像对应位置的元素只要有一个与的结果不为0,则结果不为0.
给图像中的对象边界添加元素。
用3x3的结构元素,扫描二值图像中的每一个像素,用结构元素与其覆盖的二值图像做与运算,如果都为0,则结果图像中值为0,否则为1。
结果:输入图像中的前景对象扩大一圈。

膨胀: 把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔)
腐蚀: 把二值图像各1像素连接成分的边界点去掉从而缩小一层(可提取骨干信息,去掉毛刺,去掉孤立的0像素)
开运算: 先腐蚀再膨胀,可以去掉目标外的孤立点。
闭运算: 先膨胀再腐蚀,可以去掉目标内的孔。

为什么开运算可以去除目标外的孤立点?
目标外的孤立点是和目标像素值一样的点,而非背景像素点,即为1而非0(0表示选取的空洞或背景像素值)。
使用腐蚀,背景扩展,该孤立点被腐蚀掉,但是腐蚀会导致目标区域缩小一圈,因此需要再进行膨胀操作,将目标区域扩展回原来大小。
所以,要使用开运算去除目标外的孤立点。

为什么闭运算可以去除目标内的孔?
目标内的孔,属于周围都是值为1,内部空洞值为0.目的是去除周围都是1的像素中间的0值。
闭运算首先进行膨胀操作,目标区域扩张一圈,将目标区域的0去除,但是目标区域同时也会向外扩张一圈,因此需要使用腐蚀操作,使得图像中的目标区域恢复到之前的大小。


其他概念:
1. 包含

2. 击中(hit in,记为X↑B)

3. 不击中(miss)




你可能感兴趣的:(剑指offer)