1、第十一章图像形态学运算第十一章图像形态学运算目目 录录图像形态学基础图像形态学基础图像形态学的基本运算图像形态学的基本运算基于形态学的图像处理基于形态学的图像处理231灰度图像形态学灰度图像形态学4形态学图像处理概念形态学图像处理概念数学形态学表示以形态为基础对图像进行分析的数学工具用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到对图像分析和识别的目的。定义定义思想思想作用作用基本运算基本运算1.图像形态学基础图像形态学基础简化图像数据,保持它们基本的形状特性,并除去不相干的结构。膨胀、腐蚀、开和闭操作、击中/未击中1.1 图像形态学应用图像形态学应用医学图像处理(细胞检测、骨癌图
2、像描述)医学图像处理(细胞检测、骨癌图像描述)工业检测(食品检测、印刷电路板检测)工业检测(食品检测、印刷电路板检测)计算机文字识别计算机文字识别机器人视觉和汽车运动监测机器人视觉和汽车运动监测 一种重要的非线性图像处理工具,已成为图像应一种重要的非线性图像处理工具,已成为图像应用领域工程技术人员的必备工具用领域工程技术人员的必备工具1.2集合论基本概念集合论基本概念u 集合论基本概念 并集:交集:差集:映像:平移:即点对集合A的平移 CAB其中A、B为两个集合CAB|,CABw wA wB|,Bw wb bB()|,zAc caz aA2.形态学的基本运算形态学的基本运算u膨胀 作用:“加长
3、”或“变粗”二值图像中的对象 定义1:若A和B是两个集合,则A被B膨胀定义为:其中,A被B膨胀是所有结构元素原点位置的集合,B是结构元素 定义2:即B的反射经过平移与A的交集是A的子集运算的含义:先对结构元素B做关于其原点的反射,得到反射集合 ,然后在目标图像A上平移z,则那些平移后与目标图像A至少有1个非零公共元素相交时,对应的B的原点位置所组成的集合就是膨胀运算的结果|()ZABzBA|()zABzBAAB(a)图像A1211212112112112(c)腐蚀运算结果图像(b)结构元素B 可以看出,膨胀运算可以填充图像中相对于结构元素可以看出,膨胀运算可以填充图像中相对于结构元素较小的小孔
4、,连接相邻的物体,同时它对图像具有扩大的较小的小孔,连接相邻的物体,同时它对图像具有扩大的作用。作用。2.形态学的基本运算形态学的基本运算膨胀膨胀2.形态学的基本运算形态学的基本运算膨胀膨胀000011111间断间隔2个像素间断连接目标加粗 originalBW=imread(text.png);se=ones(11,1);dilatedBW=imdilate(originalBW,se);figure,imshow(originalBW),figure,imshow(dilatedBW)2.形态学的基本运算形态学的基本运算膨胀膨胀 膨胀算法的算法流程:1.设计一个结构元素2.扫描原图,找到第
5、一个像素值为0的背景点3.将结构元素的原点移到该点4.判断该结构元素所覆盖范围内的像素值是否存在为1的目标点;若是,则膨胀后图像中相同的位置上的像素值为1;如不是,则膨胀后图像中相同位置的像素值为0.2.形态学的基本运算形态学的基本运算膨胀膨胀 u腐蚀 作用:消除边界点,使边界向内部收缩,用来消除小且无意义的物体。定义1:A和B是两个集合,A被B腐蚀定义为 AB=定义2:AB=运算的含义:每当在目标图像运算的含义:每当在目标图像A中找到一个与结构元素中找到一个与结构元素B相同的相同的自图像时,就把该字图像中与自图像时,就把该字图像中与B的原点位置对应的像素位置标注为的原点位置对应的像素位置标注
6、为1,图像,图像A上标注的所有这样的像素组成的集合,即为腐蚀运算的上标注的所有这样的像素组成的集合,即为腐蚀运算的结果结果|()zzBA|()czzBA 2.形态学的基本运算形态学的基本运算腐蚀腐蚀(a)图像A000000(c)腐蚀运算结果图像(b)结构元素B 可以看出,散落在目标图像中的比结构元素小的成分被可以看出,散落在目标图像中的比结构元素小的成分被消除了,腐蚀后得到的结果图像相对于源图像明显缩小了。消除了,腐蚀后得到的结果图像相对于源图像明显缩小了。2.形态学的基本运算形态学的基本运算腐蚀腐蚀(a)图像A00000(c)腐蚀运算结果图像(b)结构元素B结构元素不同,腐蚀的结果也不同。结
7、构元素不同,腐蚀的结果也不同。2.形态学的基本运算形态学的基本运算腐蚀腐蚀 腐蚀算法的算法流程:1.设计一个结构元素,确定元素原点2.扫描原图,找到第一个像素值为1的目标点3.将结构元素的原点移到该点4.判断该结构元素所覆盖范围内的像素值是否全部为1的目标点;若是,则腐蚀后图像中相同的位置上的像素值为1;如不是,则腐蚀后图像中相同位置的像素值为0.2.形态学的基本运算形态学的基本运算腐蚀腐蚀u例:腐蚀的简单应用 A=imread(Fig0908(a)(wirebond-mask).tif);se=strel(disk,10);%构造半径为10的圆盘结构元素 A2=imerode(A,se);%
8、进行腐蚀操作 subplot(2,2,1),imshow(A)subplot(2,2,2),imshow(A2)se=strel(disk,5);A3=imerode(A,se);subplot(2,2,3),imshow(A3)A4=imerode(A,strel(disk,20);subplot(2,2,4),imshow(A4)2.形态学的基本运算形态学的基本运算腐蚀腐蚀9.2 膨胀和腐蚀膨胀和腐蚀u例:实验结果总结:根据结构元素的大小不同,可以腐蚀掉不同的图像不相关细节u u开操作作用:删除了不能包含结构元素的对象匹配;平滑了对象的轮廓;断开了狭窄的 连接;消除了细的突出物。定义1:使
9、用结构元素B对集合A进行开操作:即先用B对A进行腐蚀,再用B对结果进行膨胀 定义2:开操作和闭操作膨胀和腐蚀的组合 击中或击不中变换使用查找表()A BA BB()|()zzA BBBA2.形态学的基本运算形态学的基本运算开操作开操作(a)图像A000000(d)B对(c)的膨胀效果(b)结构元素B 开运算可以去除孤立的小点、毛刺和桥连,消除小物开运算可以去除孤立的小点、毛刺和桥连,消除小物体,平滑较大物体的边界,同时并不明显改变其面积。体,平滑较大物体的边界,同时并不明显改变其面积。2.形态学的基本运算形态学的基本运算开操作开操作00(c)B对A的腐蚀效果u开操作几何解释:开操作通过B中的点
10、来完成 B在A的边界内转动,B中的点能到达A边界的最大值2.形态学的基本运算形态学的基本运算开操作开操作u 闭操作定义:使用结构元素B对集合A进行闭操作:即先用B对A进行膨胀,再用B对结果进行腐蚀作用:平滑了对象轮廓;将狭窄的缺口连接起来形成细长的弯口;填充比结构元素小的洞;并填补轮廓线中的断裂。()A BABB2.形态学的基本运算形态学的基本运算开操作开操作()A BABBu 开操作函数:C=imopen(A,B)其中,A是一幅二值图像,B是指定了结构元素的矩阵u 闭操作函数:C=imclose(A,B)u 闭操作的几何意义 闭操作通过B中的点来完成 B在A的边界外部转动,因为开操作和闭操作
11、是一对对偶操作2.形态学的基本运算形态学的基本运算闭操作闭操作u 函数 imopen和 imclose的应用实验:f=imread(Fig0910(a)(shapes).tif);se=strel(square,20);%构造20*20的结构元素 fo=imopen(f,se);%使用20*20的结构元素对原图像进行开运算 fc=imclose(f,se);foc=imclose(fo,se);实验:f=imread(Fig0911(a)(noisy-fingerprint).tif);se=strel(square,3);fo=imopen(f,se);foc=imclose(fo,se);
12、2.形态学的基本运算形态学的基本运算开操作开操作 开操作:删除了不能包含结构元素的对象匹配;平滑了对象的轮廓;断开了狭窄的 连接;消除了细的突出物。闭操作:平滑了对象轮廓;将狭窄的缺口连接起来形成细长的弯口;填充比结构元 素小的洞;并填补轮廓线中的断裂。先开操作再闭操作:构成了噪声滤波器,可以有效地去除噪声2.形态学的基本运算形态学的基本运算开操作开操作 原图像存在噪声:黑色背景上的亮元素和亮指纹部分暗元素 开操作:消除了背景和指纹中所有的噪声,但指纹纹路间有新间断 先开操作再闭操作:可以有效地去除噪声,但是指纹纹路并没有完全恢复2.形态学的基本运算形态学的基本运算开闭操作开闭操作 (a)原始
13、灰度图像;(b)二值化后的图像;(c)用开运算清除噪声;(d)用腐蚀和膨胀抽取各结点;(e)抽取骨架分离各线路;(f)线路、结点和端点的最终显示a b cd e f2.形态学的基本运算形态学的基本运算开闭操作开闭操作 作用:形状检测的基本工具(图像中的对象是彼此不相连)定义1:若A和B是两个集合,B是结构元素,B=(B1,B2)则击中或击不中变换定义为:其中,B1是由与一个对象相联系的B元素构成的集合,B2是与相关背景有关的B元素的集合含义:当且仅当B1平移到某一点可填入A的内部(即B1击中A)而B2平移到该点可填入A的外部两个条件同时满足时,才算匹配成功,该点为击中/未击中的输出 函数 bw
14、hitmiss:C=bwhitmiss(A,B1,B2)其中,C为结果,A为输入图像,B1和B2为结构元素 12()()cABA BAB2.形态学的基本运算形态学的基本运算击中击中/未击中未击中u使用函数 bwhitmiss f=imread(Fig0913(a)(small-squares).tif);B1=strel(0 0 0;0 1 1;0 1 0);B2=strel(1 1 1;1 0 0;1 0 0);g=bwhitmiss(f,B1,B2);2.形态学的基本运算形态学的基本运算击中击中/未击中未击中ZYXAWXW cAYXZ)(cXWA-XA -)(cXWA-)(XA-2.形态学
15、的基本运算形态学的基本运算击中击中/未击中未击中u函数 bwmorph功能:对二值图像进行数学形态学运算。g=bwmorph(f,operation,n)其中,f是衣服输入二值图像,operation是一个字符串,用于指定进行的形态学处理类型,n是一个用于指定将被重复的操作次数的正整数。operation可以为以下值:bothat:进行“bottom hat”形态学运算,即返回源图像减去闭运算的图像;bridge:进行像素连接操作;clean:去除图像中孤立的亮点,close:进行形态学闭运算(即先膨胀后腐蚀);diag:采用对角线填充,去除八邻域的背景;dilate:使用结构元素ones(3
16、)对图像进行膨胀运算;erode:使用结构元素ones(3)对图像进行腐蚀运算;fill:填充孤立的黑点,2.形态学的基本运算形态学的基本运算u函数 bwmorph:g=bwmorph(f,operation,n)hbreak:断开图像中的H型连接;majority:如果一个像素的8邻域中有等于或超过5个像素点的像素值为1,则将 该点像素值置1;open:进行形态学开运算(即先腐蚀后膨胀);remove:如果一个像素点的4邻域都为1,则该像素点将被置0;skel:骨架提取但保持图像中物体不发生断裂;不改变图像欧拉数;spur:去除小的分支,或引用电学术语“毛刺”;thicken:通过在边界上添
17、加像素达到加粗物体轮廓的目的;thin:进行细化操作;tophat:进行“top hat”形态学运算,返回源图像减去开运算的图像;2.形态学的基本运算形态学的基本运算击中击中/未击中未击中3.形态学图像处理形态学图像处理边界提取边界提取 3x3结构元素获得单像素宽度边界,5x5结构元获得2或3个像素宽度的边界。)()(BAAA-原点A)(AB-AB简单的二值图象单像素宽度边界结构元为3x33.形态学图像处理形态学图像处理边界提取边界提取ABXXkk)(1 ,3 ,2 ,1k0X:初始点1kkXX:迭代终止结构元起点AkXY第一次迭代的结果最终的结果3.形态学图像处理形态学图像处理连通分量提取连
18、通分量提取原始图门限处理5x5腐蚀后的结果连通分量中像素的数目3.形态学图像处理形态学图像处理连通分量提取连通分量提取3.形态学图像处理形态学图像处理空洞填充空洞填充c1)(ABXXkkAB ,3 ,2 ,1k区域用1填充(非边界点为0)0X:初始点1kkXX:迭代终止原点cA填充结果3.形态学图像处理形态学图像处理空洞填充空洞填充二值图象选定区域填充后的图象填充所有区域后的图象初始点细化过程定义为:1B2B3B4B细化过程的另一种定义为:,321nBBBBB细化常用的结构元:5B6B7B8B3.形态学图像处理形态学图像处理细化细化cABAABAAB 12nABABBB1BAA2BA3BA4B
19、A5BA3.形态学图像处理形态学图像处理细化细化6BA8,7BA3,2,1BA3,2,1,8,7,6,5,4BA收敛后的结果转换为具有m连通度的结果3.形态学图像处理形态学图像处理细化细化3.形态学图像处理形态学图像处理骨架化骨架化集合A最大圆盘的位置不同线段的最大圆盘最终骨架remove pixels on the boundaries of objects without allowing objects to break apart实现方法:细化法、距离变换法、燃边法等实现方法:细化法、距离变换法、燃边法等A 的骨架通过腐蚀和开操作表达:)()(0ASASkk:表示对 A 的连续 k 次
20、腐蚀BkBAkBAASk)()()(-kBA -BBBAkBA )(-)(|maxkBAk)(0kBASAkk3.形态学图像处理形态学图像处理骨架化骨架化 原图 迭代10次 迭代30次 迭代50次 迭代64次 3.形态学图像处理形态学图像处理骨架化骨架化4 灰度图像形态学灰度图像形态学 膨胀定义:使用结构元素b对f的灰度膨胀定义为:其中,和 分别是f和b的定义域,f和b是函数而不是二值形态学情况中的集合 腐蚀定义:使用结构元素b对f的灰度腐蚀定义为:其中,和 分别是f和b的定义域,,max,(,)|(),();(,)fbfbs tf sx tyb x ysxtyDx yDfDbD,min(,)
21、(,)|(),();(,)fbfbs tf sx tyb x ysxtyDx yDfDbD3、膨胀、腐蚀的几何解释(以一维函数为例))()(max2xsbxf)()(max1xsbxf)()(maxxbxf)(xfxyxy)(xbAxy1s2s)(2sf)(1sf一维函数高度为A的结构元b膨胀过程示意bf xyxybf -4 灰度图像形态学灰度图像形态学 u膨胀和腐蚀操作 f=imread(Fig0923(a)(aerial).tif);se=strel(square,3);%构造了一个平坦的3*3的结构元素 gd=imdilate(f,se);%对原图像进行膨胀操作 ge=imerode(f
22、,se);%对原图像进行腐蚀操作 morph_grad=imsubtract(gd,ge);%从膨胀的图像中减去腐蚀过的图像产生一个形 态学梯度,即检测图像中局部灰度级变化的一种度量,具有边缘增长特性。膨胀:得到的图像比原图像更明亮,并且减弱或 消除小的、暗的细节部分。即比原图像模糊。腐蚀:被腐蚀的图像更暗,并且尺寸小、明亮的 部分被削弱。4 灰度图像形态学灰度图像形态学 原始图像膨胀后的图像腐蚀后的图像结构元为5 x 5,A=1 膨胀图像明亮且暗小的细节减弱或消除;腐蚀图像变暗且尺寸小的明亮细节减弱或消除。4 灰度图像形态学灰度图像形态学 u开运算和闭运算 图像开运算:先进行腐蚀操作可以除去
23、小的亮的图像细节,但这样会使图像变暗,接下来进行膨胀操作增强图像的整体亮度。图像闭运算:先通过膨胀除去图像中的暗细节,同时增加图像的亮度,接下来 对图像进行腐蚀,而不会将膨胀操作除去的部分重新引入图像中。u例:使用开运算和闭运算做形态学平滑 f=imread(Fig0925(a)(dowels).tif);se=strel(disk,5);%创建一个平坦的半径为5的圆盘型结构元素 fo=imopen(f,se);foc=imclose(fo,se);fasf=f;for k=2:5%交替顺序滤波即用一系列不断增大的结构元素来执行开-闭滤波 se=strel(disk,k);fasf=imclose(imopen(fasf,se),se);end4 灰度图像形态学灰度图像形态学 先开运算后闭运算构成噪声滤波器,用来平滑图像并去除噪声 交替顺序滤波与单个开-闭滤波相比,处理图像更平滑一些。4 灰度图像形态学灰度图像形态学