书签 分享 收藏 举报 版权申诉 / 151
上传文档赚钱

类型《数字图像处理》课件第08章.ppt

  • 上传人(卖家):momomo
  • 文档编号:7676904
  • 上传时间:2024-07-06
  • 格式:PPT
  • 页数:151
  • 大小:1.25MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《数字图像处理》课件第08章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数字图像处理 数字图像 处理 课件 08
    资源描述:

    1、第章 数学形态学及其应用第第8 8章章 数学形态学及其应用数学形态学及其应用 8.1 引言 8.2 二值形态学 8.3 灰值形态学 8.4 形态学的应用 8.5 应用实例细化第章 数学形态学及其应用8.1 引 言8.1.1 数学形态学数学形态学(Mathematical Morphology)诞生于1964年。法国巴黎矿业学院的博士生赛拉(J.Serra)和导师马瑟荣(G.Matheron),在从事铁矿核的定量岩石学分析及预测其开采价值的研究中提出“击中/击不中变换”,并在理论层面上第一次引入了形态学的表达式,建立了颗粒分析方法。他们的工作奠定了这门学科的理论基础,如击中/击不中变换、开闭运算

    2、、布尔模型及纹理分析器的原型等。数学形态学的基本思想是用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到对图像分析和识别的目的。第章 数学形态学及其应用数学形态学的数学基础是集合论,因此它具有完备的数学基础,这为形态学用于图像分析和处理、形态滤波器的特性分析和系统设计奠定了坚实的基础。数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。数学形态学的算法具有天然的并行实现的结构,能并行实现形态学分析和处理算法,大大提高了图像分析和处理的速度。第章 数学形态学及其应用数学形态学由一组形态学的代数运算子组成,它的基本运算有4个:膨胀(或扩张)、腐蚀(或侵蚀)、开和

    3、闭运算。它们在二值图像和灰值(多值)图像中各有特点。基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边界检测、图像滤波、图像增强和恢复等。数学形态学方法利用一个称为结构元素(Structure Element)的“探针”收集图像的信息,当探针在图像中不断移动时,便可考察图像各个部分间的相互关系,从而了解图像的结构特征。数学形态学基于探测的思想,与人的FOA(Focus Of Attention)的视觉特点有类似之处。作为探针的结构元素,可直接携带知识(形态、大小甚至灰值和色度信息)来探测研究图像的结构特点。第章 数学形态

    4、学及其应用数学形态学的基本思想及方法适用于有关图像处理的各个方面,如基于击中/击不中变换的目标识别,基于流域概念的图像分割,基于腐蚀和开运算的骨架抽取及图像编码压缩,基于测地距离的图像重建,基于形态学滤波器的颗粒分析等。迄今为止,还没有一种方法能像数学形态学那样,既有坚实的理论基础,简洁、朴素和统一的基本思想,又具有如此广泛的实用价值。有人称数学形态学在理论上是严谨的,在基本观念上却是简单和优美的。第章 数学形态学及其应用数学形态学是一门建立在严格数学理论基础上的学科,其基本思想和方法对图像处理的理论和技术产生了重大影响。事实上,数学形态学已经构成一种新的图像处理方法和理论,形态学图像处理已成

    5、为数字图像处理的一个主要研究领域,并且已经应用于多门学科的图像分析和处理中。这门学科在字符识别,显微图像分析(如定量金相分析、颗粒分析),医学图像处理(例如在医学和生物学中应用数学形态学对细胞进行检测、研究心脏的运动过程以及对脊椎骨癌图像进行自动数量描述),图像编码与压缩,工业检测(如食品检验、印刷电路自动检测、印刷表面质量分析检测、印刷品质量自动检测),材料科学,机器人视觉,智能交通管制中汽车运动情况的监测等方面都取得了许多非常成功的应用。另外,数学形态学在指纹检测、经济地理、合成音乐和断层X光照像等领域也有良好的应用前景,数学形态学的思想对数字几何处理的方法也有重要意义。形态学方法已迅速成

    6、为图像应用领域工程技术人员的必备工具。第章 数学形态学及其应用8.1.2 基本符号和术语数学形态学建立在集合论的基础之上,因此在介绍数学形态学的算法之前,我们先介绍一些集合论和数学形态学中的符号和术语。1.元素和集合在数字图像处理的数学形态学运算中,把一幅图像称为一个集合。对于二值图像而言,习惯上认为取值为1的点对应于景物,用阴影表示;而取值为0的点构成背景,用白色表示。这类图像的集合是直接表示的。考虑所有值为1的点的集合A,则A与图像是一一对应的。对于一幅图像A,如果点a在A的区域以内,那么就说a是A的元素,记为aA,否则记作 ,如图8-1(a)所示。Aa第章 数学形态学及其应用图8-1 元

    7、素、集合间的关系 第章 数学形态学及其应用对于两幅图像A和B,如果对B中的每一个点b,bB且有bA,那么称B包含于A,记作。如果同时还有A中存在至少一个点a,aA且 ,那么称B真包含于A,记作,如图8-1(b)所示。由定义可知,如果,那么必有。恒成立。AB BaAB AB AB AA第章 数学形态学及其应用2.交集、并集和补集两个图像集合A和B的公共点组成的集合称为两个集合的交集,记为AB,即AB=a|aA且aB。两个集合A和B的所有元素组成的集合称为两个集合的并集,记为AB,即AB=a|aA,或aB。对一幅图像A,在图像A区域以外的所有点构成的集合称为A的补集,记为AC,即AC=。交集、并集

    8、和补集运算是集合的最基本的运算,如图8-2所示。|Aaa第章 数学形态学及其应用图8-2 集合的交、并和补 第章 数学形态学及其应用3.击中(Hit)与击不中(Miss)设有两幅图像A和B,如果AB(空集合),那么称B击中A,记为BA;否则如果AB=,那么称B击不中A,如图8-3所示。第章 数学形态学及其应用图8-3 击中与击不中 第章 数学形态学及其应用4.平移,反射设A是一幅数字图像,b是一个点,那么定义A被b平移后的结果为A+b=a+b|aA即取出A中的每个点a的坐标值,将其与b的坐标值相加,得到一个新的点的坐标值a+b。所有这些新点所构成的图像就是A被b平移的结果,记为A+b,如图8-

    9、4(c)所示。A关于图像原点的反射记为AV=a|-aA,即将A中的每个点的坐标取相反数后所得的新图像,如图8-4(d)所示。第章 数学形态学及其应用图8-4 平移与反射 第章 数学形态学及其应用5.目标和结构元素被处理的图像称为目标图像。为了确定目标图像的结构,必须逐个考察图像各部分之间的关系,并且进行检验,最后得到一个各部分之间关系的集合。在考察目标图像各部分之间的关系时,需要设计一种收集信息的“探针”,称为“结构元素”。“结构元素”一般也用大写英文字母表示,例如用S表示。在图像中不断移动结构元素,就可以考察图像中各部分间的关系。一般来说,结构元素的尺寸要明显小于目标图像的尺寸。第章 数学形

    10、态学及其应用8.2 二值形态学二值形态学中的运算对象是集合,但实际运算中当涉及两个集合时并不把它们看做是互相对等的。一般设A为图像集合,S为结构元素,数学形态学运算即用S对A进行操作。需要指出,结构元素本身实际上也是一个图像集合。对每个结构元素,可以指定一个原点,它是结构元素参与形态学运算的参考点。原点可以包含在结构元素中,也可以不包含在结构元素中,但运算的结果常不相同。以下用阴影代表值为1的区域,白色代表值为0的区域,运算对于值为1的区域进行。二值形态学中两个最基本的运算腐蚀与膨胀的示意图参见图8-5所示。第章 数学形态学及其应用图8-5 腐蚀与膨胀示意图 第章 数学形态学及其应用8.2.1

    11、 腐蚀腐蚀是一种最基本的数学形态学运算。对一个给定的目标图像X和一个结构元素S,将S在图像上移动,则在每一个当前位置x,S+x只有三种可能的状态,如图8-6所示:(1)S+xX;(81)(2)S+xXC;(3)S+x X与S+x XC均不为空。第章 数学形态学及其应用图8-6 S+x的三种可能的状态 第章 数学形态学及其应用第一种情形说明S+x与X相关最大;第二种情形说明S+x与X不相关;而第三种情形说明S+x与X只是部分相关。因而满足式(8-1)的点x的全体构成结构元素与图像的最大相关点集,称这个点集为S对X的腐蚀(简称腐蚀,有时也称X用S腐蚀),记为X S。腐蚀也可以用集合的方式定义:XS

    12、=x|S+x X (82)第章 数学形态学及其应用式(8-2)表明,X用S腐蚀的结果是所有使S平移x后仍在X中的x的集合。换句话说,用S来腐蚀X得到的集合是S完全包括在X中时S的原点位置的集合。腐蚀在数学形态学运算中的作用是消除物体边界点。如果结构元素取33的像素块,腐蚀将使物体的边界沿周边减少一个像素。腐蚀可以把小于结构元素的物体去除,这样选取不同大小的结构元素,就可以在原图像中去掉不同大小的物体。如果两个物体之间有细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开。下面通过具体例子来考察腐蚀运算的操作过程。第章 数学形态学及其应用例8-1 腐蚀运算图解。图8-7给出腐蚀运算

    13、的一个简单示例。其中图8-7(a)中的阴影部分为集合X,图8-7(b)中的阴影部分为结构元素S,而图(c)中深色阴影部分给出XS(浅色为原属于X现腐蚀掉的部分)。由图可见腐蚀将图像(区域)收缩小了。第章 数学形态学及其应用图8-7 腐蚀运算示例 第章 数学形态学及其应用如果S包含了原点,即OS,那么XS将是X的一个收缩,即 XS X(当OS时);如果S不包含原点,那么XSX未必成立。如果结构元素S关于原点O是对称的,那么S=SV,因此X S=X SV;但是如果S关于原点O不是对称的,那么X被S腐蚀的结果与X被SV腐蚀的结果是不同的。第章 数学形态学及其应用利用式(8-2)可以直接设计腐蚀变换算

    14、法。但有时为了更方便,常用腐蚀的另一种表达式:(8-3)XS=X+s|-s S 式(8-3)可从式(8-2)中推出,它把腐蚀表示为图像平移的交,这在某些并行处理环境中特别有用。图8-8给出了一个例子。第章 数学形态学及其应用图8-8 腐蚀表示为图像平移的交 第章 数学形态学及其应用根据上述理论,利用VC可以编写一个实现腐蚀运算的函数MakeErosion()。/*/函数名称:MakeErosion()/基本功能:本函数对图像数据执行腐蚀操作/参数说明:/int *nMask 结构元素数组指针/int nMaskLen 结构元素长度(以点数为计算单位)/unsigned char*pOut 输出

    15、图像数据指针/unsigned char*pIn 输入图像数据指针第章 数学形态学及其应用/int nWidthBytes 图像宽度(以字节表示)/int nWidth 图像宽度(以像素表示)/int nHeight 图像高度(以像素表示)/返回值:BOOL 成功返回TRUE,失败返回FALSE/*BOOL CMorphPro:MakeErosion(int*nMask,int nMaskLen,unsigned char*pOut,unsigned char*pIn,int nWidthBytes,int nWidth,int nHeight)第章 数学形态学及其应用/若传入的图像数据为空,

    16、将无法完成操作,直接返回 If(pOut=NULL|pIn=NULL)return FALSE;/定义变量 int x,y,k;unsigned char Mask;/执行腐蚀操作 for(y=0;y nHeight;y+)第章 数学形态学及其应用 unsigned char*pOutTemp=pOut;pOutTemp+=y*nWidthBytes;for(x=0;x nWidth;x+)Mask=1;for(k=0;k=0)&(x+nMask2*k =0)&(y+nMask2*k+1 GetWidth();int nHeight=m_pDibObject GetHeight();第章 数学

    17、形态学及其应用 int nWidthBytes=m_pDibObject WidthBytes (8,nWidth);/图像数据区大小 DWORD dwsize=WidthBytes*nHeight;/获得图像数据区指针 unsigned char*pNewBuffer=(unsigned char*):GlobalLock(hNewDib);/将原图像数据移动到新图像中(原图像数据清零)第章 数学形态学及其应用 MoveBuffer(pNewBuffer,pOldBuffer,(LONG)dwSize);/调用MakeErosion()保护型函数进行腐蚀操作 MakeErosion(nMas

    18、k,nMaskLen,pOldBuffer,pNewBuffer,nWidthBytes,nWidth,nHeight);/将内存解锁以及将不再使用的内存释放 return;第章 数学形态学及其应用利用这一函数,用VC+编程后,便可以实现二值图像的腐蚀,如图8-9所示。其中,图8-9(a)是原始二值图像,图8-9(b)是33的结构元素,图8-9(c)是腐蚀结果。第章 数学形态学及其应用图8-9 用33的结构元素进行腐蚀 第章 数学形态学及其应用8.2.2 膨胀腐蚀可以看做是将图像X中每一与结构元素S全等的子集S+x收缩为点x。反之,也可以将X中的每一个点x扩大为S+x,这就是膨胀运算,记为X

    19、S。用集合语言,它定义为X S=x|S+xx (8-4)与式(8-4)等价的膨胀运算的定义形式还有:(1)XS=X+s|sS (8-5)(2)XS=S+x|xX (8-6)式(8-4)和式(8-5)在算法设计中更为有用,而式(8-6)便于刻画其几何特性。第章 数学形态学及其应用事实上,还可以利用击中定义膨胀:XS=x|(SV+x)X (8-7)式(8-7)利用击中输入图像,即与输入图像交集不为空的原点对称结构元素SV的平移表示膨胀。利用式(8-7)进行膨胀的例子如图8-10所示,图(a)中阴影部分为集合X,图(b)中阴影部分为结构元素S(标有“+”处为原点),它的反射见图(c),而图(d)中的

    20、两种阴影部分(深色为扩大的部分)合起来为集合XS。由图可见膨胀将图像区域扩大了。第章 数学形态学及其应用该例表明用S膨胀X的过程是,先对S做关于原点的映射,再将其反射平移x,这里X与S反射的交集不为空集。换句话说,用S来膨胀X得到的集合是SV的位移与X至少有一个公共的非零元素相交时,S的原点位置的集合。根据这个解释,式(8-7)也可写成:X S=x|(SV+x)X X (8-8)第章 数学形态学及其应用图8-10 按式(8-7)膨胀的结果 第章 数学形态学及其应用腐蚀和膨胀运算与集合运算的关系如下:X (YZ)=(X Y)(X Z)X (YZ)=(XY)(X Z)(XY)Z (X Z)(Y Z

    21、)(XY)Z=(XZ)(YZ)(XY)Z=(X)(Y Z)(XY)Z (XZ)(YZ)第章 数学形态学及其应用从式(8-4)以及上式可知,腐蚀和膨胀运算对集合运算的分配律只有在特定情况下才能成立,应用时应予以注意。另外,用腐蚀和膨胀运算还可以实现图像的平移。如果在自定义结构元素时选择不在原点的一个点作为结构元素,则得到的图像形状没有任何改变,只是位置发生了移动。仿照MakeErosion()函数,可以编写一个MakeDilation()函数进行膨胀运算。与腐蚀类似,由Dilation()函数调用MakeDilation()函数便可以实现二值图像的膨胀运算,如图8-11所示。第章 数学形态学及其

    22、应用图8-11 用33的结构元素进行膨胀 第章 数学形态学及其应用8.2.3 开、闭运算1.基本概念如果结构元素为一个圆盘,那么,膨胀操作可填充图像中比结构元素小的孔洞及图像边缘处小的凹陷部分;而腐蚀可以消除图像中的毛刺及细小连接成分并将图像缩小,从而使其补集扩大。但是,膨胀和腐蚀并非互为逆运算,所以它们可以级连结合使用。在腐蚀和膨胀两个基本运算的基础上,可以构造出形态学运算族,它由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合成的所有运算构成。例如,可先对图像进行腐蚀然后膨胀其结果,或先对图像进行膨胀然后腐蚀其结果(使用同一结构元素)。前一种运算称为开运算(或开启),后一种运算称为闭

    23、运算(闭合)。开运算和闭运算是形态学运算族中两个最为重要的组合运算。第章 数学形态学及其应用对图像X及结构元素S,用符号XS表示S对图像X作开运算,用符号XS表示S对图像X作闭运算,它们的定义为 XS=(X S)S (8-9)XS=(XS)S (8-10)由式(8-9)和(8-10)可知,XS可视为对腐蚀图像X S用膨胀来进行恢复。而XS可看做是对膨胀图像XS用腐蚀来进行恢复。不过这一恢复不是信息无损的,即它们通常不等于原始图像X。由开运算的定义式可以推得:XS=S+x|S+x X (8-11)第章 数学形态学及其应用因而XS是由所有X的与结构元素S全等的子集的并组成的。或者说对XS中的每一个

    24、点x,均可找到某个包含在X中的结构元S的平移S+y,使得xS+y,即x在X的近旁具有不小于S的几何结构。而对于X中不能被XS恢复的点,其近旁的几何结构总比S要小。这一几何描述说明XS是一个基于几何结构的滤波器。图8-12给出了两个开运算的例子,其中图(a)是结构元素S1 和S2,图(b)是用S1对X进行开运算的结果,图(c)是用S2对X进行开运算的结果。当使用圆盘结构元素时,开运算对边界进行了平滑,去掉了凸角。在凸角点周围,图像的几何构形无法容纳给定的圆盘,从而使凸角点周围的点被开运算删除。而当使用线段结构元素时,沿线段方向宽度较大的部分才能够被保留下来,而较小的凸部分将被剔除。而X-XS给出

    25、的是图像的突出特征。可见,不同的结构元素的选择导致了不同的分割,即提取出不同的特征。第章 数学形态学及其应用图8-12 开运算去掉了凸角 第章 数学形态学及其应用开启和闭合不受原点是否在结构元素之中的影响。由腐蚀和膨胀的对偶性可知:(XCS)C=XS(XCS)C=XS(8-12)开、闭变换也是一对对偶变换,因此,闭运算的几何意义可以由补集的开运算的几何意义导出。图8-13给出了两个闭运算的例子,其中图(a)是结构元素S1和S2,图(b)是用S1对X进行闭运算的结果,图(c)是用S2对X进行闭运算的结果。可见闭运算通过填充图像的凹角来平滑图像,而XS-X给出的是图像的凹入特征。第章 数学形态学及

    26、其应用图8-13 闭运算填充了凹角 第章 数学形态学及其应用图8-14给出一个用圆形结构元素S对一幅图像区域分别进行开和闭运算的过程和结果。第章 数学形态学及其应用图8-14 开、闭运算示例 第章 数学形态学及其应用2.开闭运算的代数性质由于开、闭运算是在腐蚀和膨胀运算的基础上定义的,根据腐蚀和膨胀运算的代数性质,不难得到开闭运算下面的性质。(1)对偶性:(XCS)C=XS;(XCS)C=XS(2)扩展性(收缩性):XS X XS即开运算恒使原图像缩小,而闭运算恒使原图像扩大。第章 数学形态学及其应用(3)单调性:如果XY,则XS YS,XS YS 如果YZ,且ZY=Z,那么XY XZ根椐这一

    27、性质可以知道,结构元素的扩大只有在保证扩大后的结构元素对原结构元素开运算不变的条件下方能保持单调性。第章 数学形态学及其应用(4)平移不变性:(X+h)S=(XS)+h,(X+h)S=(XS)+hX(S+h)=XS,X(S+h)=XS(5)等幂性:(XS)S=XS,(XS)S=XS开、闭运算的等幂性是一个有趣的性质,它意味着一次滤波就能把所有特定于结构元的噪声滤除干净,作重复的运算不会再有效果。这是一个与中值滤波、线性卷积等经典方法不同的性质。第章 数学形态学及其应用(6)开启和闭合与集合的关系:)(11SXSXniinii)(11SXSXniinii S 第章 数学形态学及其应用在操作对象为

    28、多个图像的情况下,可借助集合的性质来进行开和闭运算。上述开和闭运算与集合的关系可用语言描述如下:(1)开运算与并集:并集的开运算包含了开运算的并集;(2)开运算与交集:交集的开运算包含在开运算的交集中;(3)闭运算与并集:并集的闭运算包含了闭运算的并集;(4)闭运算与交集:交集的闭运算包含在闭运算的交集中。第章 数学形态学及其应用3.开运算的实现根据上述理论,用VC+编写一个实现开运算的函数Opening()。/*/函数名称:BOOL Opening()/基本功能:本函数对CDibObject对象中的图像/进行开运算/参数说明:int *nMask 结构元素数组指针/int nMaskLen结

    29、构元素长度 (以点数为计数单位)/CDibObject*pDibObject 输出图像数据指针/返回值:BOOL,成功返回TRUE,失败返回FALSE第章 数学形态学及其应用/*BOOL CMorphPro:Opening(int*nMask,int nMaskLen,CDibObject*pDibObject)/对传入的CDibObject对象进行腐蚀 if(Erosion(nMask,nMaskLen,pDibObject)!=TRUE)return(FALSE);/检查结构元素是否对称 int nSumX=0,nSumY=0;int i;第章 数学形态学及其应用 for(i=0;i nM

    30、askLen;i+)nSumX+=nMask2*i;nSumY+=nMask2*i+1;if(nSumX!=0|nSumY!=0)for(i=0;i nMaskLen;i+)第章 数学形态学及其应用 nMask2*i=-nMask2*i;nMask2*i+1=-nMask2*i+1;/对传入的CDibObject对象进行膨胀 if(Dilation(nMask,nMaskLen,pDibObject)!=TRUE)return(FALSE);return(TRUE);第章 数学形态学及其应用对图8-15(a)所示的有文字的图像,用图8-9(b)所示结构元素进行开运算的结果如图8-15(b)所示

    31、。第章 数学形态学及其应用图8-15 开、闭运算效果示意图 第章 数学形态学及其应用4.闭运算的实现根据上述理论,利用VC+编写一个实现闭运算的函数Closing()如下:/*/BOOL Closing()/基本功能:本函数对CDibObject对象中的图像进行闭运算/参数说明:int*nMask 结构元素数组指针/int nMaskLen 结构元素长度 (以点数为计数单位)/CDibObject*pDibObject 输出图像数据指针/返回值:BOOL,成功返回TRUE,失败返回FALSE第章 数学形态学及其应用/*BOOL CMorphPro:Closing(int*nMask,int n

    32、MaskLen,CDibObject*pDibObject)/对传入的CDibObject对象进行膨胀 if(Dilation(nMask,nMaskLen,pDibObject)!=TRUE)return(FALSE);/检查结构元素是否对称 int nSumX=0,nSumY=0;第章 数学形态学及其应用 int i;for(i=0;i nMaskLen;i+)nSumX+=nMask2*i;nSumY+=nMask2*i+1;if(nSumX!=0|nSumY!=0)第章 数学形态学及其应用 for(i=0;i GetDIBPointer(&nWidthBytes,m_pDibObjec

    33、t-GetNumBits();if(pBuffer=NULL)return(NULL);/获得颜色数 nNumColors=m_pDibObject-GetNumColors();/获得调色板指针 pPalette =(RGBQUAD *)&pBuffersizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);/获得位图数据指针第章 数学形态学及其应用 pBits =(unsigned char *)&pBuffersizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+nNumColors*sizeof(

    34、RGBQUAD);lWidth=m_pDibObject-GetWidth();lHeight=m_pDibObject-GetHeight();/指向原图像的指针 LPSTR lpSrc;/指向缓存图像的指针 LPSTR lpDst;/指向缓存DIB图像的指针第章 数学形态学及其应用 LPSTR lpNewDIBBits;HLOCAL hNewDIBBits;/脏标记 BOOL bModified;/循环变量 long i;long j;int n;int m;第章 数学形态学及其应用/四个条件 BOOL bCondition1;BOOL bCondition2;BOOL bConditio

    35、n3;BOOL bCondition4;/计数器 unsigned char nCount;/像素值 unsigned char pixel;第章 数学形态学及其应用/55相邻区域像素值 unsigned char neighbour55;/暂时分配内存,以保存新图像 hNewDIBBits=LocalAlloc(LHND,lWidth*lHeight);if(hNewDIBBits=NULL)/分配内存失败 return FALSE;第章 数学形态学及其应用 /锁定内存 lpNewDIBBits=(char*)LocalLock(hNewDIBBits);/初始化新分配的内存,设定初始值为2

    36、55 lpDst=(char*)lpNewDIBBits;memset(lpDst,(BYTE)255,lWidth*lHeight);bModified=TRUE;while(bModified)第章 数学形态学及其应用 bModified=FALSE;/初始化新分配的内存,设定初始值为255 lpDst=(char*)lpNewDIBBits;memset(lpDst,(BYTE)255,lWidth*lHeight);for(j=2;j lHeight-2;j+)for(i=2;i lWidth-2;i+)第章 数学形态学及其应用 bCondition1=FALSE;bCondition

    37、2=FALSE;bCondition3=FALSE;bCondition4=FALSE;/由于使用55的结构元素,为防止越界,所以不处理外围的几行和几列像素 /指向原图像倒数第j行,第i个像素的指针lpSrc=(char*)pBits+lWidth*j+i;/指向目标图像倒数第j行,第i个像素的指针第章 数学形态学及其应用 lpDst=(char*)lpNewDIBBits+lWidth*j+i;/取得当前指针处的像素值,注意要转换为 unsigned char型 pixel=(unsigned char)*lpSrc;/目标图像中含有0和255外的其它灰度值 if(pixel!=255&*l

    38、pSrc!=0)/return FALSE;continue;/如果原图像中当前点为白色,则跳过 else if(pixel=255)continue;第章 数学形态学及其应用/获得当前点相邻的55区域内像素值,/白色用0代表,黑色用1代表 for(m=0;m 5;m+)for(n=0;n 5;n+)neighbourmn=(255-(unsigned char)*(lpSrc+(4-m)-2)*lWidth+n-2)/255;第章 数学形态学及其应用/逐个判断条件 /判断2=NZ(P1)=2&nCount=6)bCondition1=TRUE;第章 数学形态学及其应用/判断Z0(P1)=1

    39、nCount=0;if(neighbour12=0&neighbour 11=1)nCount+;if(neighbour11=0&neighbour 21=1)nCount+;if(neighbour21=0&neighbour 31=1)第章 数学形态学及其应用 nCount+;if(neighbour31=0&neighbour 32=1)nCount+;if(neighbour32=0&neighbour 33=1)nCount+;if(neighbour33=0&neighbour 23=1)第章 数学形态学及其应用 nCount+;if(neighbour23=0&neighbou

    40、r 13=1)nCount+;if(neighbour13=0&neighbour 12=1)nCount+;if(nCount=1)bCondition2=TRUE;第章 数学形态学及其应用/判断P2*P4*P8=0 or Z0(p2)!=1 if(neighbour12*neighbour 21*neighbour23=0)bCondition3=TRUE;else nCount=0;if(neighbour02=0&neighbour01=1)第章 数学形态学及其应用nCount+;if(neighbour01=0&neighbour 11=1)nCount+;if(neighbour1

    41、1=0&neighbour 21=1)nCount+;if(neighbour21=0&neighbour 22=1)第章 数学形态学及其应用 nCount+;if(neighbour22=0&neighbour 23=1)nCount+;if(neighbour23=0&neighbour 13=1)nCount+;if(neighbour13=0&neighbour 03=1)第章 数学形态学及其应用 nCount+;if(neighbour03=0&neighbour 02=1)nCount+;if(nCount!=1)bCondition3=TRUE;第章 数学形态学及其应用/判断P2

    42、*P4*P6=0 or Z0(p4)!=1 if(neighbour12*neighbour21 *neighbour32=0)bCondition4=TRUE;else nCount=0;if(neighbour11=0&neighbour 10=1)第章 数学形态学及其应用 nCount+;if(neighbour10=0&neighbour 20=1)nCount+;if(neighbour20=0&neighbour 30=1)nCount+;if(neighbour30=0&neighbour 31=1)第章 数学形态学及其应用 nCount+;if(neighbour31=0&ne

    43、ighbour 32=1)nCount+;if(neighbour32=0&neighbour 22=1)nCount+;if(neighbour22=0&neighbour 12=1)第章 数学形态学及其应用 nCount+;if(neighbour12=0&neighbour 11=1)nCount+;if(nCount!=1)bCondition4=TRUE;if(bCondition1&bCondition2&bCondition3&bCondition4)第章 数学形态学及其应用 *lpDst=(unsigned char)255;bModified=TRUE;else *lpDst

    44、=(unsigned char)0;第章 数学形态学及其应用 /复制腐蚀后的图像 memcpy(pBits,lpNewDIBBits,lWidth*lHeight);/复制腐蚀后的图像 memcpy(pBits,lpNewDIBBits,lWidth*lHeight);/释放内存 LocalUnlock(hNewDIBBits);LocalFree(hNewDIBBits);/返回 return TRUE;第章 数学形态学及其应用 习 题1.画图。(1)画出用一个半径为r/4的圆形结构元素膨胀一个半径为r的圆的示意图;(2)画出用上述结构元素膨胀一个rr的正方形的示意图;(3)画出用上述结构元

    45、素膨胀一个侧边长为r的等腰三角形的示意图;(4)将(1)、(2)、(3)中的膨胀改为腐蚀,分别画出示意图。2.设计一个形态学算法将8连通二值边界转化为m连通二值边界。注意这个算法不能切断连通性,可假设原边界是单像素宽且完全连通的(但可有分叉点)。第章 数学形态学及其应用3.灰值图f(x,y)受到互不重叠的噪声干扰,这些噪声可用半径为RminrRmax和高度为HminhHmax的小圆柱状模型化。(1)设计一个形态滤波器消除这些噪声;(2)设噪声是互相重叠的(最多4个),重复(1)。4.编写一个完整的程序,实现二值图像的腐蚀、膨胀以及开和闭运算,并能对二值图像进行处理。5.编写一个完整的程序,实现灰值图像的腐蚀、膨胀以及开和闭运算,并能对灰值图像进行处理。6.数学形态学的基本运算腐蚀、膨胀、开和闭运算是否有共同的性质?如果没有,说明原因;如果有,总结出它们有哪些共同的性质。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《数字图像处理》课件第08章.ppt
    链接地址:https://www.163wenku.com/p-7676904.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库