膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

膨胀、腐蚀、开、闭运算是数学形态学最基本的变换。

形态学通常用于二值图像。

 

一。膨胀与腐蚀能够实现以下作用:

   1.消除噪声

   2.分割出独立的图像元素,在图像中连接相邻的元素

   3.寻找图像中的明显的极大值区域或者极小值区域

   4.求出图像的梯度

 

需要注意之处: 腐蚀和膨胀都是对图像的白色部分(高亮部分)而言。膨胀是图像中的高亮部分进行膨胀,类似于领域扩张,效果图拥有比原图更大的高亮区域;腐蚀是原图的高亮部分被腐蚀,类似于领域被蚕食,效果图拥有比原图更小的高亮区域。

从数学的角度来说,膨胀和腐蚀操作就是将图像与核进行卷积,核可以是任意形状和大小的。

 

*膨胀(dilate)

   把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔);膨胀就是求局部最大值的操作。核B与图像卷积,即计算核B覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素。这样就会使图像中高亮区域逐渐增长

以下是膨胀操作的示意图:

膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

 

 

*腐蚀(erode)

 

   把二值图像各1像素连接成分的边界点去掉从而缩小一层(可提取骨干信息,去掉毛刺,去掉孤立的0像素);腐蚀就是求局部最小值的操作。核B与图像卷积,即计算核B覆盖的区域的像素点的最小值,并把这个最小值赋值给参考点指定的像素。这样就会使图像中高亮区域逐渐减少

以下是腐蚀操作的示意图:

 

膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

 

 

 

更加高级的形态学变换

运用膨胀和腐蚀这两个基本操作,可实现较高级的形态学变换,如 开运算,闭运算,形态学梯度,顶帽,黑帽。

 

 

 

*开运算(opening Operation)

  开运算其实就是先腐蚀再膨胀,数学表达式:

 

   dist = open(src,element) = dilate(erode(src,element))  

  开运算可以用来可以去掉目标外的孤立点消除小物体,在纤细处分离物体,并且在平滑较大物体的边界的同时不明显改变其面积。

 

 

*闭运算(closing Operation)

  闭运算其实就是先膨胀再腐蚀,数学表达式:

 

   dist = close(src,element) = erode(dilate(src,element))  

  闭运算能够可以去掉目标内的孔,排除小型黑洞(黑色区域)。

 

 

 

*形态学梯度(morphological Gradient)

 形态学梯度就是膨胀图与腐蚀图之差,数学表达式:

 

  dist = morph-grad(src,element) = dilate(src,element) - erode(src,element)

 对二值图像进行这一操作,可以将团块的边缘突出出来,我们可以用形态梯度来保留物体的边缘轮廓

 

 

*顶帽(top Hat)

 顶帽就是原图与开运算图之差,数学表达式:

 

 dist = tophat(src,element) = src - open(src,element)

 因为开运算带来的结果是放大了裂痕或者局部低亮度的区域。因此,从原图中减去开运算后的图,得到的效果图突出了比原图轮廓周围的区域更明亮的区域,且这一操作与选择的核的大小有关。

 顶帽运算往往用来分离比邻近点亮一些的斑块,在一幅图像具有大幅的背景,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取

 

 

*黑帽(black Hat)

 黑帽就是原图与闭运算图之差,数学表达式:

 

 dist = blackhat(src,element) = close(src,element)  - src

 黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域,且这一操作与核的大小有关。

 黑帽运算用来分离比临近点暗一点的斑块,效果图有着非常完美的轮廓

 

   

数学形态学在图像处理中的主要应用包括:边缘检测、图像分割、形态骨架提取、噪声滤除。

选取结构元素的方法:多结构元素、遗传算法。

 

 

二、 二值图像的腐蚀操作

1. 结构的原点设置在结构的内部情况举例

  • 膨胀、腐蚀、开、闭运算——数字图像处理中的形态学 
    图中左侧(a)为原图像,右侧(b)为结构元素。

    • 第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)
    •   膨胀、腐蚀、开、闭运算——数字图像处理中的形态学       膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

    • 第二步 然后我们根据原点在原图像中的位置,在输出图像上完全对应的位置上涂黑,即输出图像更变为 
      膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

    • 第三步 在原图中寻找下一个完全和结构元素匹配部分,即 
      膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

    • 第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即 

      膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

       

    • 第五步 寻找完毕,操作完毕。

2. 结构的原点设置在结构的外部情况举例

  • 膨胀、腐蚀、开、闭运算——数字图像处理中的形态学 
    左侧为原图,右侧为结构元素,注意,这里的结构元素的原点不在结构元素内部。

  • 第一步 拿结构元素第一次完全匹配原图(右侧为输出图像) 
    膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

  • 第二步 根据结构元素的原点在原图中的位置,我们再输出图像相应的位置涂黑,即 
    膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

  • 第三步 在原图中寻找下一个完全和结构元素匹配部分,即 
    膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

  • 第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即 
    膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

  • 第五步 寻找完毕,操作完毕。

膨胀的原理应该是用结构的原点遍历所有原图中的背景点,看结构与原图中的前景点有没有重叠的部分,若有重叠的部分,则标记原图中的该背景点,使之成为新的前景点