图像处理中的形态学方法

什么是形态学图像处理

形态学图像处理(简称形态学)是指一系列处理图像形状特征的图像处理技术。

形态学的基本思想是利用一种特殊的结构元来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析和目标识别。

形态学方法的基础是集合论。

形态学方法由J. Serra 于1964年提出。

基础概念

不做特殊说明,输入图像为二值图像。图像中1是前景,0是背景。

结构元(Structuring Elements,SE)可以是任意形状,SE中的的值可以是0或1。常见的结构元有矩形和十字形。结构元有一个锚点O,O一般定义为结构元的中心(也可以自由定义位置)。如下图所示是几个不同形状的结构元,紫红色区域为锚点O。

记 f 为原图像, s 为结构元。

膨胀(Dilation)

结构元s 在图像 f 上滑动,把结构元锚点位置的图像像素点的灰度值设置为结构元值为1的区域对应图像区域像素的最大值。用公式表示如下,其中element为结构元,(x,y)为锚点O的位置,x'和y'为结构元值为1的像素相对锚点O的位置偏移,src表示原图,dst表示结果图。

dst(x,y)=max(x′,y′):element(x′,y′)≠0src(x+x′,y+y′)

膨胀运算示意图如下,从视觉上看图像中的前景仿佛“膨胀”了一样:

膨胀示意图

膨胀运算用公式符号记为:f⊕s

膨胀相当于是腐蚀反向操作,图像中较亮的物体尺寸会变大,较暗的物体尺寸会减小。还是相同的例子,在21的十字邻域内找最大值,最大值为234,将234赋值到这个位置。

经过膨胀操作,图像区域的边缘可能会变得平滑,区域的像素将会增加,不相连的部分可能会连接起来,这些都与腐蚀操作正好相反。即使如此,原本不相连的区域任然属于各自的区域,不会因为像素重叠就发生合并。

膨胀运算是将图像中的像素点赋值为其局部邻域中灰度的最大值,经过膨胀处理后,图像整体灰度值增大,图像中亮的区域扩大,较暗的小区域消失。

腐蚀(Erosion)

结构元 s 在图像 f 上滑动,把结构元锚点位置的图像像素点的灰度值设置为结构元值为1的区域对应图像区域像素的最小值。用公式表示如下,其中element为结构元,(x,y)为锚点O的位置,x'和y'为结构元值为1的像素相对锚点O的位置偏移,src表示原图,dst表示结果图。

dst(x,y)=min(x′,y′):element(x′,y′)≠0src(x+x′,y+y′)

腐蚀运算示意图如下,从视觉上看图像中的前景仿佛被“腐蚀”了一样:

腐蚀示意图

腐蚀运算用公式符号记为: f⊖s

腐蚀操作时取每一个位置的矩形邻域内值的最小值作为该位置的输出灰度值。这里的邻域可以是矩形结构,也可以是椭圆形结构、十字交叉形结构等,这个结构被定义为结构元,实际上就是个01二值矩阵。

举个例子

给定一个矩阵,也就是我们要做处理的图像

以及一个十字交叉结构元

结构元

在对 (1,2) 点出的灰度做处理时,也就是对21这个点做处理时,要在其十字形邻域内找最小值,赋值给(1,2)点。示意图如下。

从图中也可以很容易的看出,腐蚀操作将灰度值降低了,也就是说腐蚀后的输出图像总体亮度比原图有所降低,图像中比较亮的区域面积会变小,比较暗的区域面积增大。

腐蚀操作是对所选区域进行“收缩”的一种操作,可以用于消除边缘和杂点。经过腐蚀操作,图像区域的边缘可能会变得平滑,区域的像素将会减少,相连的部分可能会断开。即使如此,各部分仍然属于同一个区域。

腐蚀运算是将图像中的像素点赋值为其局部邻域中灰度的最小值,因此图像整体灰度值减少,图像中暗的区域变得更暗,较亮的小区域被抑制。

开运算(Opening)

对图像 f 用同一结构元 s 先腐蚀再膨胀称之为开运算。记为: f∘s=(f⊖s)⊕s 。

开运算示意图如下,从视觉上看仿佛将原本连接的物体“分开”了一样:

可以消除亮度较高的细小区域,而且不会明显改变其他物体区域的面积。

通过腐蚀运算能去除小的非关健区域,也可以把离得很近的元素分隔开,再通过膨胀填补过度腐蚀留下的空隙。因此,通过开运算能去除孤立的、细小的点,平滑毛糙的边缘线,同时原区域面积也不会有明显的改变,类似于一种“去毛刺”的效果。

闭运算(Closing)

对图像 f 用同一结构元 s 先膨胀再腐蚀称之为闭运算。记为: f∙s=(f⊕s)⊖s 。

开运算示意图如下,从视觉上看仿佛将原本分开的部分“闭合”了一样:

可以消除细小黑色空洞,也不会明显改变其他物体区域面积。

闭运算的计算步骤与开运算正好相反,为先膨胀,后腐蚀。这两步操作能将看起来很接近的元素,如区域内部的空洞或外部孤立的点连接成一体,区域的外观和面积也不会有明显的改变。通俗地说,就是类似于“填空隙”的效果。与单独的膨胀操作不同的是,闭运算在填空隙的同时,不会使图像边缘轮廓加粗。

白色顶帽变换(white top-hat)

白色顶帽变换是原图像与开运算结果图之差,用公式表示为:

Tw(f)=f−f∘s

白色顶帽变换变换可以得到图像中那些面积小于结构元且比周围亮的区域,示意图如下:

黑色顶帽变换(blacktop-hat)

黑色顶帽变换是闭运算结果图与原图之差,用公式表示为:

Tb(f)=f∙s−f

黑色顶帽变换可以得到图像中那些面积小于结构元且比周围暗的区域。

灰度图像腐蚀:图像变暗了,这是因为图像中较亮的局部区域被收缩了,较暗的区域被扩大了,因而图像变暗了。
灰度图像膨胀:较亮的局部区域被“扩大”了,而较暗的区域被“收缩”了,图像整体变得更亮。

灰度图像开运算:图像中较亮的小细节消失。

灰度图像闭运算:图像中较暗的一些点消失了,类似于灰度图像中的“小孔隙”被填补了,同时较亮的区域的边缘更清晰了。
 

参考来自:

图像处理中常见的形态学方法 - 知乎 (zhihu.com)

【图像处理】轻松搞懂形态学处理(腐蚀、膨胀、开闭运算) - 知乎 (zhihu.com)

(14条消息) 图像处理(5) : 形态学处理_QtHalcon的博客-CSDN博客_形态学处理

  • 8
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值