第8章-数学形态学及其应用--数字图像处理-教学课件.ppt
《第8章-数学形态学及其应用--数字图像处理-教学课件.ppt》由会员分享,可在线阅读,更多相关《第8章-数学形态学及其应用--数字图像处理-教学课件.ppt(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 数学形态学及其应用 第八章 数学形态学及其应用 8.1 引言引言 8.2 二值形态学二值形态学 8.3 灰值形态学灰值形态学 8.4 形态学的应用形态学的应用 8.5 应用实例应用实例细化细化 第八章 数学形态学及其应用 8.1 引引 言言 8.1.1 数学形态学数学形态学 数学形态学(Mathematical Morphology)诞生于1964年,是由法国巴黎矿业学院博士生赛拉(J.Serra)和导师马瑟荣,在从事铁矿核的定量岩石学分析及预测其开采价值的研究中提出“击中/击不中变换”,并在理论层面上第一次引入了形态学的表达式,建立了颗粒分析方法。他们的工作奠定了这门学科的理论基础,
2、如击中/击不中变换、开闭运算、布尔模型及纹理分析器的原型等。数学形态学的基本思想是用具有一定形态的结构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。第八章 数学形态学及其应用 数学形态学的数学基础和所用语言是集合论,因此它具有完备的数学基础,这为形态学用于图像分析和处理、形态滤波器的特性分析和系统设计奠定了坚实的基础。数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。数学形态学的算法具有天然的并行实现的结构,实现了形态学分析和处理算法的并行,大大提高了图像分析和处理的速度。第八章 数学形态学及其应用 数学形态学是由一组形态学的代数运算子组成的,它的基
3、本运算有4个:膨胀(或扩张)、腐蚀(或侵蚀)、开启和闭合,它们在二值图像和灰度图像中各有特点。基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边界检测、图像滤波、图像增强和恢复等。数学形态学方法利用一个称作结构元素的“探针”收集图像的信息,当探针在图像中不断移动时,便可考察图像各个部分之间的相互关系,从而了解图像的结构特征。数学形态学基于探测的思想,与人的FOA(Focus Of Attention)的视觉特点有类似之处。作为探针的结构元素,可直接携带知识(形态、大小、甚至加入灰度和色度信息)来探测、研究图像的结构特点。
4、第八章 数学形态学及其应用 第八章 数学形态学及其应用 数学形态学是一门建立在严格数学理论基础上的学科,其基本思想和方法对图像处理的理论和技术产生了重大影响。事实上,数学形态学已经构成一种新的图像处理方法和理论,成为计算机数字图像处理的一个重要研究领域,并且已经应用在多门学科的数字图像分析和处理的过程中。这门学科在计算机文字识别,计算机显微图像分析(如定量金相分析,颗粒分析),医学图像处理(例如细胞检测、心脏的运动过程研究、脊椎骨癌图像自动数量描述),图像编码压缩,工业检测(如食品检验和印刷电路自动检测),材料科学,机器人视觉,汽车运动情况监测等方面都取得了非常成功的应用。另外,数学形态学在指
5、纹检测、经济地理、合成音乐和断层X光照像等领域也有良好的应用前景。形态学方法已成为图像应用领域工程技术人员的必备工具。目前,有关数学形态学的技术和应用正在不断地研究和发展。第八章 数学形态学及其应用 8.1.2 基本符号和术语基本符号和术语 1.元素和集合元素和集合 在数字图像处理的数学形态学运算中,把一幅图像称为一个集合。对于二值图像而言,习惯上认为取值为1的点对应于景物中心,用阴影表示,而取值为0的点构成背景,用白色表示,这类图像的集合是直接表示的。考虑所有值为1的点的集合为A,则A与图像是一一对应的。对于一幅图像A,如果点a在A的区域以内,那么就说a是A的元素,记为aA,否则,记作aA,
6、如图81(a)所示。第八章 数学形态学及其应用 图8-1 元素与集合间的关系 第八章 数学形态学及其应用 第八章 数学形态学及其应用 图8-2 集合的交集、并集和补集 第八章 数学形态学及其应用 3.击中(击中(Hit)与击不中()与击不中(Miss)设有两幅图像A和B,如果AB,那么称B击中A,记为BA,其中是空集合的符号;否则,如果AB=,那么称B击不中A,如图8-3所示。图8-3 击中与击不中(a)B击中A;(b)B击不中A 第八章 数学形态学及其应用 第八章 数学形态学及其应用 图8-4 平移与反射 第八章 数学形态学及其应用 第八章 数学形态学及其应用 8.2 二值形态学二值形态学
7、二值形态学中的运算对象是集合。设A为图像集合,S为结构元素,数学形态学运算是用S对A进行操作。需要指出,实际上结构元素本身也是一个图像集合。对每个结构元素可以指定一个原点,它是结构元素参与形态学运算的参考点。应注意,原点可以包含在结构元素中,也可以不包含在结构元素中,但运算的结果常不相同。以下用阴影代表值为1的区域,白色代表值为0的区域,运算是对值为1的区域进行的。二值形态学中两个最基本的运算腐蚀与膨胀,如图8-5所示。第八章 数学形态学及其应用 图8-5 腐蚀与膨胀示意图 第八章 数学形态学及其应用 第八章 数学形态学及其应用 图8-6 S+x的三种可能的状态 第八章 数学形态学及其应用 第
8、一种情形说明S+x与X相关最大,第二种情形说明S+x与X不相关,而第三种情形说明S+x与X只是部分相关。因而满足式(8-1)的点x的全体构成结构元素与图像最大相关点集,这个点集称为S对X的腐蚀(简称腐蚀,有时也称X用S腐蚀),记为XS。腐蚀也可以用集合的方式定义,即 式(8-2)表明,X用S腐蚀的结果是所有使S平移x后仍在X中的x的集合。换句话说,用S来腐蚀X得到的集合是S完全包括在X中时S的原点位置的集合。上式也可以帮助我们借助相关概念来理解腐蚀操作。(8-2)第八章 数学形态学及其应用 式(8-2)表明,X用S腐蚀的结果是所有使S平移x后仍在X中的x的集合。换句话说,用S来腐蚀X得到的集合
9、是S完全包括在X中时S的原点位置的集合。上式也可以帮助我们借助相关概念来理解腐蚀操作。腐蚀在数学形态学运算中的作用是消除物体边界点。如果结构元素取33的像素块,腐蚀将使物体的边界沿周边减少一个像素。腐蚀可以把小于结构元素的物体(毛刺、小凸起)去除,这样选取不同大小的结构元素,就可以在原图像中去掉不同大小的物体。如果两个物体之间有细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开。第八章 数学形态学及其应用 例例8-1 腐蚀运算图解。图8-7给出腐蚀运算的一个简单示例。其中,图8-7(a)中的阴影部分为集合X,图8-7(b)中的阴影部分为结构元素S,而图(c)中黑色部分给出了XS
10、 的结果。由图可见,腐蚀将图像(区域)收缩小了。图8-7 腐蚀运算示例 第八章 数学形态学及其应用(8-3)如果S包含了原点,即OS,那么XS将是X的一个收缩,即XSX(当OS时);如果S不包含原点,那么XSX未必成立。如果结构元素S关于原点O是对称的,那么S=SV,因此 X S=XSV,但是,如果S关于原点O不是对称的,那么X被S腐蚀的结果与X被SV腐蚀的结果是不同的。利用腐蚀运算的定义式可以直接设计腐蚀变换的算法。但有时为了更方便,常使用腐蚀的另一种表达式,即 第八章 数学形态学及其应用 第八章 数学形态学及其应用 根据上述理论,利用VC+可以编写一个实现腐蚀运算的函数MakeErosio
11、n()。/*/函数名称:BOOL MakeErosion()/基本功能:本函数对图像数据执行腐蚀操作/参数说明:/int *nMask 结构元素数组指针/int nMaskLen结构元素长度(以点数为计数单位)/unsigned char*pOut输出图像数据指针/unsigned char*pIn输入图像数据指针/intnWidthBytes图像宽度(以字节表示)/intnWidth图像宽度(以像素表示)第八章 数学形态学及其应用/intnHeight图像高度(以像素表示)/返回值:BOOL 成功返回TRUE,失败返回FALSE/*BOOL CMorphPro:MakeErosion(int
12、*nMask,int nMaskLen,unsigned char*pOut,unsigned char*pIn,int nWidthBytes,int nWidth,int nHeight)/若传入的图像数据为空,将无法完成操作,直接返回 if(pOut=NULL|pIn=NULL)return FALSE;/定义变量 int x,y,k;unsigned char Mark;/执行腐蚀操作 第八章 数学形态学及其应用 for(y=0;y nHeight;y+)unsigned char*pOutTemp=pOut;pOutTemp+=y*nWidthBytes;for(x=0;x nWid
13、th;x+)Mark=1;for(k=0;k=0)&(x+nMask2*k=0)&(y+nMask2*k+1 nHeight)第八章 数学形态学及其应用 第八章 数学形态学及其应用 else Mark=0;k=nMaskLen;if(Mark=1)pOutTempx=255;return TRUE;第八章 数学形态学及其应用 函数MakeErosion()是一个保护型函数,在文档类中不能直接调用,CMorphPro类(形态学处理类)提供了一个公有型函数Erosion(),可调用MakeErosion进行腐蚀运算。有关CmorphPro类的详细说明请参考配套光盘。Erosion()函数核心代码如
14、下:/*/函数名称:BOOL Erosion()/基本功能:本函数对CDibObject对象中的图像进行腐蚀运算/参数说明:int *nMask 结构元素数组指针/intn MaskLen 结构元素长度(以点数为计数单位)/CDibObject*pDibObject 输出图像数据指针/返回值:BOOL 成功返回TRUE,失败返回FALSE 第八章 数学形态学及其应用 第八章 数学形态学及其应用 /为新图像分配内存 /新图像数据指针 unsigned char*pNewBuffer=(unsigned char*):GlobalLock(hNewDib);/将原图像数据移动到新图像中(原图像数据
15、清零)MoveBuffer(pNewBuffer,pOldBuffer,(LONG)dwSize);/调用MakeErosion()保护型函数进行腐蚀操作 MakeErosion(nMask,nMaskLen,pOldBuffer,pNewBuffer,nWidthBytes,nWidth,nHeight);/将内存解锁以及将不再使用的内存释放 return(TRUE);第八章 数学形态学及其应用 图8-9 用33的结构元素进行腐蚀(a)原始二值图像;(b)33结构元素;(c)腐蚀结果(a)(b)(c)第八章 数学形态学及其应用 8.2.2 膨胀膨胀 腐蚀可以看作是将图像X中每一与结构元素S全
16、等的子集S+x收缩为点x。反之,也可以将X中的每一个点x扩大为S+x,这就是膨胀运算,记为XS。若用集合语言,它的定义为XS=x|S+xx 与式(8-4)等价的膨胀运算定义形式还有:(1)XS=X+s|sS (8-5)(2)XS=S+x|xX(8-6)(8-4)第八章 数学形态学及其应用 式(8-4)和式(8-5)在算法设计中更有用些,而式(8-6)便于刻画算法的几何特性。从式(8-4)可知,腐蚀和膨胀运算对集合运算的分配律只有在特定情况下才能成立,因此在应用时应注意。另外,用腐蚀和膨胀运算还可以实现图像的平移。如果在自定义结构元素时选择不在原点的一个点作为结构元素,则得到的图像形状没有任何改
17、变,只是位置发生了移动。仿照MakeErosion()函数,可以编写一个MakeDilation()函数进行膨胀运算,与腐蚀类似,由Dilation()调用MakeDilation()函数来实现膨胀运算。第八章 数学形态学及其应用 8.2.3 开、闭运算开、闭运算 1.基本概念基本概念 如果结构元素为一个圆盘,那么,膨胀可填充图像中的小孔(比结构元素小的孔洞)及图像边缘处的小凹陷部分,而腐蚀可以消除图像边缘小的成分,并将图像缩小,从而使其补集扩大。但是,膨胀和腐蚀并不互为逆运算,因此它们可以级连结合使用。在腐蚀和膨胀两个基本运算的基础上,可以构造出形态学运算族,它由膨胀和腐蚀两个运算的复合与集
18、合操作(并、交、补等)组合成的所有运算构成。例如,可先对图像进行腐蚀然后膨胀其结果,或先对图像进行膨胀然后腐蚀其结果(这里使用同一个结构元素)。前一种运算称为开运算(或开启),后一种运算称为闭运算(闭合)。开运算和闭运算是形态学运算族中两个最为重要的组合运算。第八章 数学形态学及其应用 对图像X及结构元素S,用符号XS表示S对图像X作开运算,用符号XS表示S对图像X作闭运算,它们的定义为 XS=(XS)S XS=(XS)S 由式(8-7)和式(8-8)可知,XS可视为对腐蚀图像XS用膨胀来进行恢复,而XS可看作是对膨胀图像XS用腐蚀来进行恢复。不过这一恢复不是信息无损的,即它们通常不等于原始图
19、像X。由开运算的定义式,可以推得(8-7)(8-8)(8-9)第八章 数学形态学及其应用 因而XS是所有X的与结构元素S全等的子集的并组成的。或者说,对XS中的每一个点x,均可找到某个包含在X中的结构元S的平移S+y,使得xS+y,即x在X的近旁具有不小于S的几何结构。而对于X中不能被XS恢复的点,其近旁的几何结构总比S要小。这一几何描述说明,XS是一个基于几何结构的滤波器。图8-10给出了两个开运算的例子,其中图8-10(a)是结构元素S1和S2,图8-10(b)是用S1对X进行开运算的结果,图8-10(c)是用S2对X进行开运算的结果。当使用圆盘结构元素时,开运算对边界进行了平滑,去掉了凸
20、角;当使用线段结构元素时,沿线段方向宽度较大的部分才能够被保留下来,而较小的凸部将被剔除。而XXS给出的是图像的凸出特征。可见,不同的结构元素的选择导致了不同的分割,即提取出不同的特征。第八章 数学形态学及其应用 图8-10 开运算去掉了凸角(a)结构元素S1和S2;(b)XS1;(c)XS2 第八章 数学形态学及其应用 开启和闭合不受原点是否在结构元素之中的影响。由腐蚀和膨胀的对偶性,可知(XCS)C=XS;(XCS)C=XS(8-10)开、闭变换也是一对对偶变换,因此,闭运算的几何意义可以由补集的开运算的几何意义导出。图8-11给出了两个闭运算的例子,其中,图8-11(a)是结构元素S1
21、和S2,图8-11(b)是用S1对X进行闭运算的结果,图8-11(c)是用S2对X进行闭运算的结果。可见,闭运算通过填充图像的凹角来平滑图像,而XSX给出的是图像的凹入特征。第八章 数学形态学及其应用 图8-11 闭运算填充了凹角(a)结构元素S1和S2;(b)XS1;(c)XS2 第八章 数学形态学及其应用 图8-12 开、闭运算示例(a)原图像;(b)结构元素S;(c)结构元素S腐蚀图像X;(d)结构元素S腐蚀X的结果;(e)对腐蚀的结构再膨胀;(f)再膨胀(开运算)的结果XS;(g)结构元素S膨胀X;(h)结构元素S膨胀X的结果XS;(i)对膨胀的结果再腐蚀;(j)再腐蚀的结果(闭运算)
22、XS 第八章 数学形态学及其应用 2.开闭运算的代数性质开闭运算的代数性质 由于开、闭运算是在腐蚀和膨胀运算的基础上定义的,根据腐蚀和膨胀运算的代数性质,我们不难得到下面的性质。1)对偶性(XCS)C=XS,(XCS)C=XS2)扩展性(收缩性)XSXXS即开运算恒使原图像缩小,而闭运算恒使原图像扩大 第八章 数学形态学及其应用 3)单调性 如果XY,则XSYS,XSYS 如果YZ且ZY=Z,那么XYX Z 根椐这一性质可以知道,结构元素的扩大只有在保证扩大后的结构元素对原结构元素开运算不变的条件下方能保持单调性。第八章 数学形态学及其应用 4)平移不变性(X+h)S=(XS)+h,(X+h)
23、S=(XS)+hX(S+h)=XS,X(S+h)=XS 5)等幂性(XS)S=XS,(XS)S=XS 开、闭运算的等幂性意味着一次滤波就能把所有特定结构元素的噪声滤除干净,作重复的运算不会再有效果。这是一个与经典方法(例如中值滤波、线性卷积)不同的性质。第八章 数学形态学及其应用 6)开、闭运算与集合的关系 在操作对象为多个图像的情况下,可借助集合的性质来进行开、闭运算,上述开、闭运算与集合的关系可用语言描述如下:(1)开运算与并集:并集的开运算包含了开运算的并集;(2)开运算与交集:交集的开运算包含在开运算的交集中;(3)闭运算与并集:并集的闭运算包含了闭运算的并集;(4)闭运算与交集:交集
24、的闭运算包含在闭运算的交集中。第八章 数学形态学及其应用 3.开运算的实现开运算的实现 根据上述理论,利用VC+可以编写一个实现开运算的函数Opening()。开运算相当于对图像先进行腐蚀运算再进行膨胀运算。/*/函数名称:BOOL Opening()/基本功能:本函数对CDibObject对象中的图像进行开运算/参数说明:int *nMask 结构元素数组指针/intnMaskLen结构元素长度(以点数为计数单位)/CDibObject*pDibObject输出图像数据指针/返回值:BOOL 成功返回TRUE,失败返回FALSE 第八章 数学形态学及其应用/*BOOL CMorphPro:O
25、pening(int*nMask,int nMaskLen,CDibObject*pDibObject)/对传入的CDibObject对象进行腐蚀 if(Erosion(nMask,nMaskLen,pDibObject)!=TRUE)return(FALSE);/对传入的CDibObject对象进行膨胀 if(Dilation(nMask,nMaskLen,pDibObject)!=TRUE)return(FALSE);return(TRUE);第八章 数学形态学及其应用 图8-13 开、闭运算效果示意图(a)原始图像;(b)开运算的结果;(c)闭运算的结果 (a)(b)(c)第八章 数学形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 形态学 及其 应用 数字图像 处理 教学 课件
限制150内