数字图像处理(第三版)第9章 形态学图像处理

预备知识

在二值图像中,集合是二维整数空间 Z 2 Z^{2} Z2的元素,在该空间中,集合的每个元素都是一个多元组,这些多元组的坐标是图像中某个像素的坐标(x,y).
一个集合 B B B的反射表示为 B ^ \hat{B} B^,定义如下:
B ^ = { w ∣ w = − b , b ∈ B } \widehat{B} = \{ w \mid w = - b,b \in B\} B ={ww=b,bB}
如果 B B B是描述图像中物体的像素集合,则 B ^ \hat{B} B^ B B B中坐标(x,y)被(-x,-y)代替的点的集合。下图显示了一个集合及其反射。
在这里插入图片描述

腐蚀和膨胀

腐蚀

表示为 A ⊖ B A \ominus B AB的B对A的腐蚀定义为 A ⊖ B = { z ∣ ( B ) z ⊆ A } A \ominus B = \left\{ {z \mid {\left( B\right) }_{z} \subseteq A}\right\} AB={z(B)zA}
上式表明B对A的腐蚀是一个用z平移的B包含在A中的所有点z的集合。
腐蚀操作的数学表达通常是对图像和结构元素进行卷积运算,结构元素是一个小的形状(如矩形、圆形等),用于定义腐蚀的效果。
腐蚀操作可以理解为将图像中的物体边缘向内侵蚀,使得物体的边界变得更加平滑。它通常用于消除图像中小于结构元素的物体或者细小的细节,从而可以减少噪声或分离物体。

应用
如果有一个二值图像,表示一组白色的圆形在黑色背景上,应用一个5x5的矩形结构元素进行腐蚀操作,结果会是所有白色圆形缩小了。在实际应用中,腐蚀可用于去除图像中的小物体或连接体。

膨胀

A A A B B B Z 2 Z^{2} Z2中的集合,表示为 A ⊕ B A \oplus B AB的B对A的膨胀定义为 A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A \oplus B = \left\{ {z \mid {\left( \widehat{B}\right) }_{z} \cap A \neq \varnothing }\right\} AB={z(B )zA=}
上式是以B关于它的原点的映像,并且以z对映像进行平移为基础。
膨胀操作与腐蚀相反,它用来增加图像中物体的边界或大小。通过结构元素的卷积,膨胀可以扩展物体的边界,使其更加明显或者填充物体内部的空隙。
膨胀操作通常用于连接物体的间隙或者增强物体的大小,使其更容易检测或识别。

应用
如果有一个二值图像,表示一组白色的圆形在黑色背景上,应用一个5x5的矩形结构元素进行膨胀操作,结果会是所有白色圆形变大或者合并。在实际应用中,膨胀可以用于填充图像中的空洞或连接相邻物体。

对偶性

腐蚀与膨胀关于集合求补运算和反射运算是对偶的,即 ( A ⊖ B ) c = A c ⊕ B ^ {\left( A \ominus B\right) }^{c} = {A}^{c} \oplus \widehat{B} (AB)c=AcB
( A ⊕ B ) c = A c ⊖ B ^ {\left( A \oplus B\right) }^{c} = {A}^{c} \ominus \widehat{B} (AB)c=AcB
上面式子说明,B对A的腐蚀是 B ^ \hat{B} B^ A c A^{c} Ac的膨胀的补,反之亦然。

开操作与闭操作

开操作一般会平滑物体的轮廓、断开较窄的狭颈并消除较细的突出物。闭操作同样能平滑物体轮廓的一部分,但与开操作相反,它通常会弥合较窄狭颈的间断和细长的沟壑,消除小的孔洞,填补轮廓线中的断裂。
B对A的开操作,定义如下 A ∘ B = ( A ⊖ B ) ⊕ B A \circ B = \left( {A \ominus B}\right) \oplus B AB=(AB)B
因此,B对A的开操作就是B对A的腐蚀,紧接着用B对结果进行膨胀。
类似,B对A的闭操作定义如下 A ⋅ B = ( A ⊕ B ) ⊖ B A \cdot B = \left( {A \oplus B}\right) \ominus B AB=(AB)B
说明B对A的闭操作就是简单用B对A膨胀,紧接着用B对结果进行腐蚀。

击中或击不中变换

击中变换是一种形态学操作,用于检测图像中与给定模式完全匹配的像素。相反,不击中变换用于检测图像中与给定模式不匹配的像素。
击中变换
击中变换旨在检测图像中与两种模式完全匹配的像素点。这两种模式分别被称为前景模式和背景模式。这种操作通常用于二值图像中,其中前景模式和背景模式都是由二值像素(通常是黑色和白色)组成的小区域。
工作原理:

1.对于给定的二值图像,击中变换需要两个结构元素:一个表示前景模式(P),一个表示背景模式(M)。
2.当且仅当图像中某一位置处的像素能够与前景模式P匹配,并且与背景模式M也匹配时,该位置的像素才会被保留(设为前景)。否则,该位置的像素将被设为背景。
示例:
假设有一个二值图像,如下所示:

0 0 0 0 0 0 0
0 1 1 1 0 0 0
0 1 1 1 1 0 0
0 1 1 1 1 0 0
0 0 0 0 0 0 0
我们定义两个结构元素:

前景模式P:
1 1 1
1 1 1
背景模式M:
0 0 0
0 0 0
应用击中变换时,只有当图像中存在完全由1组成的3x3区域(前景模式P)时,该区域中心的像素才会被保留,其他位置被设为背景。在上述示例中,只有中间的3x3区域符合前景模式P,因此击中变换后的结果会是:

0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
0 0 1 1 0 0 0
0 0 0 0 0 0 0
不击中变换:
不击中变换用于检测图像中与给定的模式不匹配的像素点。也需要两个结构元素:前景模式(P)和背景模式(M)。不击中变换的结果与击中变换相反,只有当图像中某一位置的像素与前景模式P不匹配,或者与背景模式M匹配时,该位置的像素才会被保留(设为前景)。

示例:
继续以上示例,假设我们定义的前景模式P和背景模式M分别为:

前景模式P:
1 0 1
0 1 0
背景模式M:
0 0 0
0 0 0
应用不击中变换时,只有当图像中存在与前景模式P不完全匹配的3x3区域时,该区域中心的像素才会被保留,其他位置被设为背景。在上述示例中,只有中间的3x3区域不完全符合前景模式P,因此不击中变换后的结果会是:

0 0 0 0 0 0 0
0 1 1 1 0 0 0
0 1 1 1 1 0 0
0 1 1 1 1 0 0
0 0 0 0 0 0 0
总结来说,击中变换和不击中变换是形态学操作中的重要概念,它们可以帮助检测图像中特定的模式或者反模式,从而用于图像分割、特征提取等应用中。

一些基本的形态学算法

边界提取

表示为$\beta \left( A\right) $的集合A的边界可以通过先用B对A腐蚀,然后用A与腐蚀结果集合之差得到,即

β ( A ) = A − ( A ⊖ B ) \beta \left( A\right) = A - \left( {A \ominus B}\right) β(A)=A(AB)
下图显示了相关操作流程
在这里插入图片描述

孔洞填充

该算法旨在识别并填充图像中的空洞或孔洞,使其成为连通的区域。
工作原理

1.孔洞识别
首先,算法会识别图像中的孔洞。孔洞通常指的是由于对象内部或者对象间隙导致的非连通区域,这些区域被视为背景。

2.连通性分析
一旦识别出孔洞,算法会分析孔洞的形状、大小和位置。通常,孔洞被描述为由背景像素包围的前景区域(对象的一部分),但是内部没有前景像素。

3.填充孔洞
填充孔洞的方法可以是基于像素的方法或者基于形态学操作:

基于像素的方法:简单的方法是扫描整个图像,找到与背景相连但是内部没有前景像素的区域,并将这些像素设为前景。这种方法可以直接修改图像的像素值。
形态学操作:形态学操作如闭运算(closing)通常用于填充孔洞。闭运算先进行膨胀(dilation),然后进行腐蚀(erosion),可以有效地填充小孔洞和裂缝。
示例
考虑以下简单的二值图像示例:

0 0 0 0 0 0
0 1 1 1 1 0
0 1 0 0 1 0
0 1 0 0 1 0
0 1 1 1 1 0
0 0 0 0 0 0
在这个图像中,中间有一个正方形的孔洞(被0包围的1组成的区域)。孔洞填充的过程可以如下进行:

1.孔洞识别:确定孔洞的位置和边界。

2.填充操作

使用形态学闭运算来填充孔洞。闭运算的步骤是先进行膨胀操作,使孔洞区域的边界向外扩展,然后进行腐蚀操作,使边界重新回到原始位置,但孔洞内部被填充。在上述图像中,应用闭运算可以将孔洞填充,得到如下结果:
0 0 0 0 0 0
0 1 1 1 1 0
0 1 1 1 1 0
0 1 1 1 1 0
0 1 1 1 1 0
0 0 0 0 0 0
孔洞被成功填充,使得图像中的前景区域成为一个连通的整体。

连通分量的提取

连通分量的提取是指将图像中具有相同性质(如灰度值、颜色或其他特征)且彼此相互连接的像素点组成的区域提取出来的过程。具体操作流程参考下图
在这里插入图片描述

凸壳

如果在集合A内连接任意两个点的直线段都在A的内部,则称A是凸行的。任意集合S的凸壳H是包含于S的最小凸集。集合差H-S称为S的凸缺
凸壳指的是包围一组点集的最小凸多边形或凸多面体,其中每个顶点都是点集中的某个点或点集的边界上的点。
应用
1.图像分割:将图像中的每一个像素点看作一个点,通过对这些点进行凸包计算来得到图像的边界。
2.形态学处理:例如删除或扩展图像边缘等操作,以改善图像的形状或轮廓。
3.图形识别:在每个图形中提取出边缘点、角点等信息,然后对这些信息进行凸包计算,从而得到图形的信息,进一步进行模式识别等操作。

细化

结构元B对集合A的细化定义如下 A ⊗ B = A − ( A ⊛ B ) = A ∩ ( A ⊛ B ) c A \otimes B=A-(A \circledast B)=A \cap(A \circledast B)^{c} AB=A(AB)=A(AB)c具体操作流程如下图所示
在这里插入图片描述

粗化

定义:粗化是减少图像细节的过程,旨在消除噪声、减少图像复杂度或提取大尺度特征。
公式表示为 A ⋅ B = A ⋃ ( A ⊛ B ) A \cdot B=A \bigcup(A \circledast B) AB=A(AB)
目的:通过减少图像中的不必要细节,粗化有助于突出图像的主要结构或特征,便于后续的图像分析和处理。
实现方法
1.腐蚀操作:使用一个小结构元素(SE)扫描图像,移除边界内的所有像素,从而减小物体的尺寸。这一操作减少了图像的细节,使图像变得更为粗糙。
2.闭运算:闭运算是先腐蚀后膨胀的操作,它可以在连接小的断开部分的同时,保留大物体的形状。虽然闭运算本身不完全等同于粗化,但它可以在一定程度上实现粗化的效果。
下图说明了粗化的过程:
在这里插入图片描述

灰度级形态学

灰度级形态学中的结构元与二值形态学中对于功能相同:它们负责检验一幅给定的图像。其中有两类,分别是非平坦的和平坦的结构元。下图显示了每一类的一个例子。
在这里插入图片描述
a图显示了一个半球状的灰度级结构元。b图显示其平坦结构元。c图是一个通过其中心的水平灰度剖面。d图是其对应的灰度剖面。

一些基本的灰度级形态学算法

形态学平滑
形态学平滑主要用于去除图像中的噪声,同时保持图像边缘的平滑性。基本思想是将图像与结构元素进行形态学操作,如膨胀和腐蚀。常见的平滑方法包括:
开运算:先腐蚀后膨胀。这一过程可以消除小的物体(噪声)而保留较大物体的形状。
闭运算:先膨胀后腐蚀。它有助于填补图像中小的空洞或间隙。
通过组合开运算和闭运算,可以实现不同程度的平滑效果。

形态学梯度
形态学梯度用于检测图像的边缘。它的计算由膨胀和腐蚀两个操作构成。形态学梯度突出显示了图像的边缘部分,因为边缘通常在膨胀和腐蚀之间会表现出显著的差异。
具体案例参考下图
在这里插入图片描述
顶帽变换和底帽变换
图像相减与开操作和闭操作相结合,会产生顶帽与底帽变换。主要应用之一是用一个结构元通过开、闭操作从一幅图像中删除物体,也可用于校正不均匀光照的影响。

粒度测定
粒度测定是一种分析图像中颗粒的大小和形状分布的技术。它涉及使用不同大小的结构元素对图像进行多次闭运算(或开运算),并统计每个结构元素的响应结果。通过研究目标物体的形态特征,得出颗粒的大小分布信息。粒度测定广泛应用于材料科学、医学图像分析等领域。

纹理分割
纹理分割涉及根据图像的纹理特征将图像分成有意义的区域。一般方法包括使用形态学操作,如形态学梯度、开闭运算等,提取纹理特征,然后通过聚类或分类算法将不同的纹理区域分开。形态学操作有助于增强图像的局部结构,从而使纹理分割更加准确和有效。

灰度级形态学重建

灰度级形态学重建是一种基于形态学的图像处理技术,主要用于恢复或增强图像中的结构。在图像分析和处理领域,形态学重建通常应用于噪声去除、图像分割、目标提取和特征增强等任务。这项技术尤其适合于处理带有噪声或缺失部分的图像。
基本概念
灰度级形态学重建的基本思想是使用形态学操作(如膨胀和腐蚀)来重建一个基础图像(重建目标),通常基于一个标记图像(重建种子)。重建过程通过不断膨胀种子图像,直到其达到源图像的特征为止。
主要步骤
形态学重建通常包括以下几个步骤:
种子图像的选择:种子图像是我们用来指导重建过程的图像,通常可以是经过处理后的二值图像或灰度图像。它表示了希望恢复的图像区域或结构。
源图像的准备:源图像是我们用来限制重建过程的图像,包含待恢复的图像信息。我们希望重建的图像不会超出这个源图像的灰度值。
重建过程:
重建过程通过以下的结构性迭代进行。
膨胀(Dilation):对种子图像进行膨胀,将其扩展到邻域的像素。
保持(Keep):对膨胀后得到的图像与源图像进行比较,只保留那些在源图像中仍然存在的区域。
将这个过程重复进行,直至重建的图像不再变化(即达到稳定状态)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小小程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值