第6章数学形态学及其应用6.1数学形态学概述6.2二值形态学6.3灰值形态学6.4形态学的应用6.5形态学滤波及骨架抽取的MATLAB实现6.1数学形态学概述6.1.1数学形态学是法国和德国的科学家在研究岩石结构时建立的一门学科(1664)。形态学的用途是获取物体拓扑和结构信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。在图象处理中的应用主要是:(1)利用形态学的基本运算,对图象进行观察和处理,从而达到改善图象质量的目的;(2)描述和定义图象的各种几何参数和特征,如面积、周长、连通度、颗粒度、骨架和方向性等。数学形态学的数学基础和所用语言是集合论,因此它具有完备的数学基础,这为形态学用于图像分析和处理、形态滤波器的特性分析和系统设计奠定了坚实的基础。数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。数学形态学方法利用一个称作结构元素的“探针”收集图像的信息,当探针在图像中不断移动时,便可考察图像各个部分之间的相互关系,从而了解图像的结构特征。迄今为止,还没有一种方法能像数学形态学那样既有坚实的理论基础,简洁、朴素、统一的基本思想,又有如此广泛的实用价值。有人称数学形态学在理论上是严谨的,在基本观念上却是简单和优美的。数学形态学是一门建立在严格数学理论基础上的学科,其基本思想和方法对图像处理的理论和技术产生了重大影响。已经构成一种新的图像处理方法和理论,成为计算机数字图像处理的一个重要研究领域.6.1.2基本符号和定义1.集合论概念在数字图像处理的数学形态学运算中,把一幅图像称为一个集合。对于一幅图像A,如果点a在A的区域以内,那么就说a是A的元素,记为a∈A,否则,记作a∈A.2.B包含于A设有两幅图象B,A。对于B中所有的元素ai,都有ai∈A,则称B包含于A,记作ABABcD3.交集和并集两个图像集合A和B的公共点组成的集合称为两个集合的交集,记为A∩B,即A∩B={a|a∈A且a∈B}。两个集合A和B的所有元素组成的集合称为两个集合的并集,记为A∪B,即A∪B={a|a∈A或a∈B}。4.补集设有一幅图象X,所有X区域以外的点构成的集合称为X的补集,记作Xc,显然,如果B∩X=Ф,则B在X的补集内。B2.击中与击不中设有两幅图象B,A。若存在这样一个点,它即是B的元素,又是A的元素,A∩B≠φ则称B击中A,记作B↑A,击不中设有两幅图象B,A。若不存在任何一个点,它即是B的元素,又是A的元素,即B和A的交集是空,则称B不击中A,记作B∩A=Ф3平移和对称集平移设A是一幅数字图像,b是一个点,那么定义A被b平移后的结果为A+b={a+b|a∈A},即取出A中的每个点a的坐标值,将其与点b的坐标值相加,得到一个新的点的坐标值a+b,所有这些新点所构成的图像就是A被b平移的结果,记为A+b,对称集设有一幅图象B,将B中所有元素的坐标取反,即令(x,y)变成(-x,-y),所有这些点构成的新的集合称为B的对称集,记作Bv。4.结构元素设有两幅图象B,A。若A是被处理的对象,而B是用来处理A的,则称B为结构元素,又被形象地称做刷子。结构元素通常都是一些比较小的图象6.2二值形态学二值形态学中的运算对象是集合。设A为图像集合,S为结构元素,数学形态学运算是用S对A进行操作。实际上结构元素本身也是一个图像集合。对每个结构元素可以指定一个原点,它是结构元素参与形态学运算的参考点。应注意,原点可以包含在结构元素中,也可以不包含在结构元素中,但运算的结果常不相同。SO6.2.1腐蚀对一个给定的目标图像X和一个结构元素S,想象一下将S在图像上移动。在每一个当前位置x,S+x只有三种可能的状态:(1)S+xX;(2)S+xXC;(3)S+x∩X与S+x∩XC均不为空。xS+x1S+x2S+x3腐蚀是最基本的一种数学形态学运算。腐蚀也可以用集合的方式定义,即X用S腐蚀的结果是所有使S平移x后仍在X中的x的集合。换句话说,用S来腐蚀X得到的集合是S完全包括在X中时S的原点位置的集合。}|{XxSxSX对于任意一个在阴影部分的点a,Ba包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因腐蚀在数学形态学运算中的作用是消除物体边界点。6.2.2膨胀膨胀可以看做是腐蚀的对偶运算,其定义是:把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果。腐蚀可以看作是将图像X中每一与结构元素S全等的子集S+x收缩为点x。反之,也可以将X中的每一个点x扩大为S+x,这就是膨胀运算,记为XS。若用集合语言,它的定义为XS={x|S+x∪x≠}图中X是被处理的对象,B是结构元素,对于任意一个在阴影部分的点a,Ba击中X,所以X被B膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。图腐蚀与膨胀示意图二值图像腐蚀膨胀6.2.41.开运算先腐蚀后膨胀称为开对图像X及结构元素S,用符号X○S表示S对图像X作开运算SSXSX)(O(a)结构元素S1和S2(b)X○S1(c)X○S2结论:我们可以得到关于开运算的几点结论:(1)开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便。(2)开运算是一个基于几何运算的滤波器。(3)结构元素大小的不同将导致滤波效果的不同。(4)不同的结构元素的选择导致了不同的分割,即提取出不同的特征。6.2.5闭先膨胀后腐蚀称为闭对图像X及结构元素S,用符号XS表示S对图像X作闭运算SSXSX)(一般来说,闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。这就是闭运算的作用。(a)结构元素S1和S2(b)X●S1;(c)X●S2综上所述,我们也可以得到关于闭运算的几点结论:(1)闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。(2)闭运算是通过填充图像的凹角来滤波图像的。(3)结构元素大小的不同将导致滤波效果的不同。(4)不同结构元素的选择导致了不同的分割。6.2.6由于开、闭运算是在腐蚀和膨胀运算的基础上定义的,根据腐蚀和膨胀运算的代数性质,我们不难得到下面的性质。1)对偶性(XC○S)C=X●S,(XC●S)C=X○S2)扩展性(收缩性)X○SXX●S即开运算恒使原图像缩小,而闭运算恒使原图像扩大3)单调性如果XY,X●SY●S,X○SY○S如果YZ且Z●Y=Z,X●YX●Z根椐这一性质可以知道,结构元素的扩大只有在保证扩大后的结构元素对原结构元素闭运算不变的条件下方能保持单调性。4)平移不变性(X+h)●S=(X●S)+h,(X+h)○S=(X○S)+hX●(S+h)=X●S,X○(S+h)=X○S5)等幂性(X●S)●S=X●S,(X○S)○S=X○S开、闭运算的等幂性意味着一次滤波就能把所有特定结构元素的噪声滤除干净,作重复的运算不会再有效果。这是一个与经典方法(例如中值滤波、线性卷积)不同的性质。6.3灰值形态学6.3.1腐蚀与膨胀1灰度腐蚀用结构元素b对输入图像f(x,y)进行灰值腐蚀记为fS,其定义为式中,Df和Db分别是f和b的定义域。这里限制(t+x)和(m+y)在f的定义域之内,类似于二值腐蚀定义中要求结构元素完全包括在被腐蚀集合中。()(,)min{(,)(,)|,,}fsfstmftxmysxytxmyDxyD其效果相当于半圆形结构元素在被腐蚀函数的下面“滑动”时,其圆心画出的轨迹。但是,这里存在一个限制条件,即结构元素必须在函数曲线的下面平移。从图中不难看出,半圆形结构元素从函数的下面对函数产生滤波作用,这与圆盘从内部对二值图像滤波的情况是相似的。采用了一个扁平结构元素对上图的函数作灰值腐蚀。扁平结构元素是一种在其定义域上取常数的结构元素。注意这种结构元素产生的滤波效果。6.3.2用结构元素S(x,y)对输入图像进行灰值膨胀记为fs,其定义为式中,Df和Db分别是f和S的定义域。这里限制(t-x)和(m-y)在f的定义域之内,类似于在二值膨胀定义中要求两个运算集合至少有一个(非零)元素相交。()(,)max{(,)(,)|,,}fsfstmftxmysxytxmyDxyD灰度膨胀可以通过将结构元素的原点平移到与信号重合,然后,对信号上的每一点求结构元素的最大值得到.6.3.2开运算与闭运算灰度开运算用结构元素S(灰值图像)对灰值图像f做开运算记为f○S,其f○S=(fS)S灰值闭运算用结构元素S(灰值图像)对灰值图像f做闭运算记为f●S,其定义为f●S=(fS)S开运算可看作将b贴着f的下沿从一端滚到另一端。对所有比b的直径小的山峰其高度和尖锐度都减弱了。开运算操作消除与结构元素相比尺寸较小的亮细节,而保持图像整体灰度值和大的亮区域基本不受影响。腐蚀去除了小的亮细节并同时减弱了图像亮度,膨胀增加了图像亮度,但又不重新引入前面去除的细节。闭运算可看作将b贴着f的上沿从一端滚到另一端。所有比b的直径小的山谷得到了“填充”。闭运算操作消除与结构元素相比尺寸较小的暗细节,而保持图像整体灰度值和大的暗区域基本不受影响;膨胀去除了小的暗细节并同时增强了图像亮度,腐蚀减弱了图像亮度但又不重新引入前面去除的细6.3.3形态学重构形状重构是图像形态处理的重要操作之一,通常用来强调图像中与掩模图像指定对象相一致的部分,同时忽略图像中的其他对象。形态学重构是根据一幅图像(称之为掩模图像mask)的特征对另一幅图像(称之为标记图像marker)进行重复膨胀,重点是要选择一个合适的标记图像,使膨胀所得的结果能够强调掩模图像中的主要对象。每一次膨胀处理从标记图像的峰值点开始,整个膨胀过程将一直重复,直到图像的像素值不再变化为止。形态重构操作具有这样一些独有的特性:形态重构处理是基于两幅图像的,一个是标记图像,另一个是掩模图像,而不仅仅是一幅图像和一个结构元素;重构将一直重复直至图像稳定(即图像不再变化);形态重构是基于连通性概念的,而不是基于结构元素的。若g是掩模,f为标记,则从f重构g可以记为,它有下面的迭代过程定义:1.将初始化为标记图像。2.创建结构元素。3.重复直到标记必须是g的一个子集,即。()gRf1hfS1()kkhhsg1kkhhffg6.4形态学的应用前面已经介绍了二值形态学和灰值形态学的基本运算—腐蚀,膨胀,开和闭运算及其一些性质,通过对它们的组合可以得到一系列二值形态学和灰值形态学的实用算法。灰值形态学的主要算法有灰值形态学梯度,形态学平滑,纹理分割等。本节主要介绍形态学滤波,骨架抽取等重要算法。通过本节的讨论,可以从几何角度理解形态学的一些非常实用的技术。不过,应该注意到,在实际应用形态学方法时,通常需要对输入图像做预处理,以便适合于使用这些算法。同时对输出图像可能还要做一些处理,以便产生满意的结果。6.4.1形态学滤波由于开、闭运算所处理的信息分别与图像的凸、凹处相关,因此,它们本身都是单边算子,可以利用开、闭运算去除图像的噪声、恢复图像,也可交替使用开、闭运算以达到双边滤波目的。一般,可以将开、闭运算结合起来构成形态学噪声滤波器,例如(X○S)●S或(X●S)○S等。整个过程是先做开运算再做闭运算,可以写为SSXSSSSX)(}]){[(●可看出目标区域内外的噪声都消除掉了,而目标本身除原来的4个直角变为圆角外没有太大的变化。在利用开、闭运算滤除图像的噪声时,选择圆形结构元素会得到较好的结果。为了能使从噪声污染的图像X中恢复原始图像X0的结果达到最优,在确定结构元素的半径时,可以采用优化方法。6.4.21.细化就是从原来的图中去掉一些点,但仍要保持原来的形状。实际上,是保持原图的骨架。)(BXXBX即XB为X与XB的差集。更一般地,利用结构对序列B1,B2,…,BN迭代地产生输出序列NNNBXXB