第10章图像形态学处理_第1页
第10章图像形态学处理_第2页
第10章图像形态学处理_第3页
第10章图像形态学处理_第4页
第10章图像形态学处理_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 图像形态学处理用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到分析和识别图像的目的。所有的形态学处理都基于填放结构元素的概念结构元素是在特定研究目的下用来探测图像的一个小的集合或者子图像原点结构元素MATLAB图像处理工具箱提供strel函数生成任意维数和形状的结构元素,其调用方式如下:SE = strel(shape, parameters)根据shape指定的类型创建一个结构元素SE。shape的类型有arbitrary、pair、diamond、periodicline、disk、rectangle、line、square、octagon。se = strel(di

2、amond,3)输出结果如下se =Flat STREL object containing 25 neighbors.Decomposition: 3 STREL objects containing a total of 13 neighborsNeighborhood: 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0n两种定义方式n从填充的角度定义 由所有可以填入A内部的结构元素的原点组成n从平移的角度定义 将图像平移-b(b属于结构元素),

3、并计算所有平移的交集而得到 |xA BxBA:A BAb bB 从图像处理的观点看,具有重要含义无论对计算还是理论分析都十分重要对于信号处理,相应地为填入信号下方腐蚀定义n将结构元素B(原点)移动到图像A中每个像素的位置,提问:结构元素B是不是完全包含在图像A中?所有回答“是”的像素组成了腐蚀的结果 |xA BxBA结构元素B A 腐蚀结果图像A可以填入无法填入从填充的角度定义腐蚀结构元素(B)原始图像(A)相交的像素原点从填充的角度定义腐蚀腐蚀结果B在A内部的原点组成的边界结构元素(B)n先平移再求交集,结构元素形状决定图像平移方向 A :A BAb bB 结构元素B A 腐蚀结果当原点不在

4、几何中心时形状不变,位置偏移膨胀从平移的角度定义腐蚀AAB!BAAB!B原点在结构元素内部时,腐蚀结果也在原始图像内部原点在结构元素外部时,腐蚀结果偏离了原始图像的位置结构元素原点位置对腐蚀结果的影响 (a)原图 (b)结构元素图 (c)腐蚀示意图原点不在结构元素的中心,腐蚀结果也将发生偏移,但是结果的形状保持不变结构元素原点位置对腐蚀结果的影响0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1

5、1 00 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 00 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 00 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 00 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 00 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 00 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0

6、 0 0 0 0 0 0 0 0 0 0 0 A B erode(A,B) 结构元素原点位置对腐蚀结果的影响ABBAABBABABA原始图像凸出的角在腐蚀后保持不变凹陷的角在腐蚀后具有结构元素的形状结构元素形状对腐蚀结果的影响结构元素图像有一种收缩的效果图像两部分之间的缝隙变得更大腐蚀的效果MATLAB图像处理工具箱提供用于图像腐蚀的函数是imerode,其调用方式如下IM2 = imerode(IM,SE)IM2 = imerode(IM,NHOOD)IM2 = imerode(IM,SE,PACKOPT,M)IM2 = imerode(.,SHAPE)其中IM是输入图像,返回输出图像IM2

7、。参数SE为由strel函数返回的结构元素或者结构元素对象组。NHOOD是定义结构元素邻域0和1的矩阵,用于表示自定义形状的结构元素。PACKOPT用来指定图像是否为腐蚀的二值图像,其中ispacked表示为二值图像,notpacked表示为普通的数组。SHAPE指定输出图像的大小,有两种选择,same表示跟输入图像的大小相同,full表示全腐蚀后的结果。表10-1 腐蚀填充图像规则操作规 则腐蚀输出像素的值是所有输入像素值中的最小值。在二值图像中,如果邻域中有一个像素值为0,则输出像素的值为0超出图像边界的像素值定义为该数据类型允许的最大值。对于二进制图像,这些像素值设置为1;对于灰度图像,

8、uint8类型的最大值为256originalBW = imread(text.png);se = strel(line,11,90);erodedBW = imerode(originalBW,se);subplot(121),imshow(originalBW);title(原始图像)subplot(122),imshow(erodedBW);title(腐蚀后的图像)originalI = imread(cameraman.tif);se = strel(ball,5,5);erodedI = imerode(originalI,se);subplot(121), imshow(orig

9、inalI);title(原始图像)subplot(122), imshow(erodedI);title(腐蚀后的图像)n两种定义方式n从击中的角度定义结构元素的反射与图像的交集至少有一个像素n从平移的角度定义 相对结构元素的所有点平移输入图像,然后计算其并集得到(Matlab: imdilate) |zABzBA :ABAb bBABBa aA ABBA将B平移到A的每个像素,平移过程中B所覆盖点的并集膨胀运算满足交换律,所以有两种平移方程膨胀的定义 A o将结构元素B的反射移动到图像A中每个像素的位置,提问:结构元素B的反射和图像A的交集是不是为空集?所有回答“否”的像素组成了膨胀的结果

10、结构元素B的反射还是自身图像A |zABzBA 交集不为空交集为空膨胀结果从击中的角度定义膨胀结构元素 (B)原始图像 (A)B反射相交的像素原点从击中的角度定义膨胀膨胀的结果B的反射和A相交的原点组成的边界图像扩张了两个像素从击中的角度定义膨胀 A1 2 3 4 51 2 3 4 5 6 7-1 0 1 -1 0 1 A(1,1)1 2 3 4 51 2 3 4 5 6 7 A(-1,1)1 2 3 4 51 2 3 4 5 6 7 A(1,-1)1 2 3 4 51 2 3 4 5 6 7 A(-1,-1)1 2 3 4 51 2 3 4 5 6 7:ABAb bB 1 2 3 4 51

11、2 3 4 5 6 7AB膨胀结果原点位于几何中心从平移的角度定义膨胀 A(2,0) A1 2 3 4 51 2 3 4 5 6 70 1 2 0 1 2 A(1,1) A(2,2):ABAb bB AB0 1 2 3 4 501 2 3 4 5 6 70 1 2 3 4 501 2 3 4 5 6 70 1 2 3 4 501 2 3 4 5 6 70 1 2 3 4 501 2 3 4 5 6 70 1 2 3 4 501 2 3 4 5 6 7 A(0,2)原点位于左上角膨胀结果腐蚀从平移的角度定义膨胀 (a)原图 (b)结构元素图 (c)膨胀示意图结构元素的原点不在几何中心,使得膨胀图

12、像发生偏移结构元素原点位置对膨胀结果的影响0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 10 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 10 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 10 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 00 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 00 0 1 1 1 1 1 1 1 0 0

13、 0 0 1 1 1 1 1 1 1 1 00 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 00 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 A B dilate(A,B) 结构元素原点位置对膨胀结果的影响BAABBA ABBA ABB原始图像凹陷的角在膨胀后保持不变凸出的角在膨胀后具有结构元素的形状结构元素形状对膨胀结果的影响33 正方结构元素膨胀后的效果 33 正方结构元素Set of coor

14、dinate points = (-1, -1), (0, -1), (1, -1), (-1, 0), (0, 0), (1, 0), (-1, 1), (0, 1), (1, 1) 狭窄的间断被填充膨胀的效果MATLAB图像处理工具箱提供用于图像膨胀的函数是imdilate,其调用方式如下IM2 = imdilate(IM,SE)IM2 = imdilate(IM,NHOOD)IM2 = imdilate(IM,SE,PACKOPT)IM2 = imdilate(.,SHAPE)其中各个参数的含义与imerode函数的参数含义相同,只不过imdilate函数对输入图像执行的是膨胀操作,而i

15、merode函数对输入图像执行的是腐蚀操作。originalBW = imread(text.png);se = strel(line,11,90);dilatedBW = imdilate(originalBW,se);subplot(121), imshow(originalBW);title(原始图像)subplot(122), imshow(dilatedBW);title(膨胀后的图像)originalI = imread(cameraman.tif);se = strel(ball,5,5);dilatedI = imdilate(originalI,se);subplot(121

16、), imshow(originalI);title(原始图像)subplot(122), imshow(dilatedI);title(膨胀后的图像)original = imread(cameraman.tif);originalI=256-original;se = strel(ball,5,5);dilatedI = imdilate(originalI,se);dilatedII=256-dilatedIsubplot(121), imshow(original);title(原始图像)subplot(122), imshow(dilatedII);title(膨胀后的图像)A BA

17、 BB Opening = Erosion + Dilation(使用相同的结构元素) 一般来说,输出的图像不同于输入的图像(已经被腐蚀掉的部分无法通过膨胀运算恢复)经过开运算的图像比原始图像更规则化(含有较少细节)n轮廓被平滑n细长的部分被去除n小的孤岛被去除.(Matlab: imopen)开运算结构元素:结构元素:横向轮廓被平滑纵向轮廓被保留轮廓被平滑原始图像被腐蚀腐蚀再膨胀开运算结构元素:结构元素:细的连接被断开后无法恢复横的细的连接被断开后可以恢复纵的细的连接被断开后无法恢复开运算是否有开运算后保持不变的图像呢?取决于结构元素的选择结构元素:所有像素都可以被结构元素填充的图像,开运算

18、后保持不变开运算开运算n通过结构元素的尺寸选择特征原始图像使用小的结构元素开运算阈值处理后的二值图像使用大的结构元素开运算更多的细节特征被抑制开运算n通过结构元素的形状选择特征使用圆形结构元素进行开运算输入图像图像中只有与SE形态相匹配的特征被保留开运算n通过结构元素的形状选择特征n9x3 和 3x9 的结构元素图像中只有与SE形态相匹配的特征被保留开运算使用imdilate函数和imerode函数来进行形态学的开运算BW1 = imread(circbw.tif);%读取图像subplot(131),imshow(BW1);title(原始图像);SE = strel(rectangle,4

19、0 30);%生成矩形结构元素BW2 = imerode(BW1,SE);%对图像进行腐蚀subplot(132),imshow(BW2);title(腐蚀后的图像);BW3 = imdilate(BW2,SE);%对图像进行膨胀subplot(133),imshow(BW3);title(先腐蚀后膨胀的图像);MATLAB图像处理工具箱使用imopen函数来进行开运算,其调用方式如下IM2 = imopen(IM,SE)IM2 = imopen(IM,NHOOD)其中IM 为输入图像,IM2为返回的执行开运算后的图像,参数SE为由strel函数返回的结构元素或者结构元素对象组,NHOOD是定

20、义结构元素邻域0和1的矩阵,用于表示结构元素的邻域。BW1 = imread(circbw.tif); %读取图像subplot(121), imshow(BW1); title(原始图像);SE = strel(rectangle,40 30); %生成矩形结构元素BW2 = imopen(BW1,SE);%对图像直接进行开运算subplot(122), imshow(BW3); title(开运算后的图像);Closing = Dilation + Erosion(使用相同的结构元素)A BAB B闭运算是开运算的对偶运算经过闭运算的图像也比原始图像更规则化(含有较少细节)n小的通道和小孔

21、被填满(Matlab: imclose)开运算:细长的突出被去除,目标像素变成背景闭运算:狭窄的间断被填充,背景像素变成目标闭运算n为什么叫“闭运算”?闭运算填充了狭窄的缝隙和峡谷因为先执行膨胀操作,而膨胀操作有闭合的作用闭运算结构元素:轮廓被平滑狭窄的间断被填充原始图像被膨胀这两个像素由背景变成了目标闭运算结构元素:横向轮廓被平滑纵向轮廓被保留这两个像素由背景变成了目标若上图的间断由2个像素变为3个闭运算这3个像素仍然是背景 结构元素:结构元素:横向间断被填充闭运算纵向间断被填充结构元素:图像内部的孔被填充闭运算结构元素:是否有闭运算后保持不变的图像呢?取决于结构元素的选择闭运算后形状保持不

22、变:n 只有向外突出特征的图像n 图像向内凹陷的特征较大,足以填放进去结构元素闭运算使用圆形结构元素闭运算闭运算o填充图像中的孔洞原始图像二值化处理使用圆形结构元素闭运算结构元素的尺寸决定了图像中的哪些结构被填充闭运算MATLAB图像处理工具箱使用imclose函数来进行闭运算,其调用方式如下IM2 = imclose(IM,SE)IM2 = imclose(IM,NHOOD)其中参数的含义与imopen函数参数类似。originalBW = imread(circles.png);subplot(121), imshow(originalBW); title(原始图像);se = strel

23、(disk,10);closeBW = imclose(originalBW,se);subplot(122), imshow(closeBW); title(闭运算后的图像);开运算和闭运算指纹图像增强原始图像结构元素噪声为黑色背景上的亮元素和亮指纹部分的暗元素腐蚀后的图像黑色背景噪声消除,指纹中的噪声尺寸增大膨胀后的图像大部分间断被恢复,指纹中噪声被去除,但是纹路变粗闭运算消除了亮噪声和暗噪声,且纹路不受影响开运算指纹中噪声增大部分被消除,但是纹路间产生间断开运算和闭运算的应用实例n腐蚀n膨胀n使目标收缩n平滑物体边界(目标变成背景)n断开狭窄的连接n去除细长的突出物n使目标扩张n平滑物体

24、边界(背景变成目标)n连接狭窄的断开n去除小孔四种基本运算的小结n开运算n与腐蚀相似但是比腐蚀较少破坏性n与膨胀相似但是比膨胀较少破坏性o闭运算四种基本运算的小结n设有两幅图像A和B,如果AB,那么称B击中A,其中是空集合的符号;否则,如果AB=,那么称B击不中A腐蚀和开运算:探测内边界膨胀和闭运算:探测外边界需要同时探测图像的内、外边界怎么办?(Matlab: bwhitmiss)击中击不中o需要两个结构单元B1和B2,合成一个结构元素对BoB1探测图像内部, B2探测图像外部oB1要求击中的部分, B2要求击不中的部分例子:找出图像中的正方形(i)A:1A B腐蚀运算会把不是正方形的特征也

25、识别出来12(,)BB B1212*()()()()cA BA BABA BAB1A B2(ii) CAB12(iii) ()()CA BAB原始图像A正方形识别结果(a)集合A, (b)结构元素对(c) Ac (d) AX(e) Ac (W-X) (f)最终结果(d)(e)(b)(c)(a)(f)1212*()()()()cA BA BABA BAB击中击不中BB1B21212*()()()()cA BA BABA BAB击中击不中结构元素:结构元素:击中击不中目标不关心背景结构元素:结构元素:目标背景不是符合要求的角点击中击不中-检测角不关心结构元素:结构元素:击中击不中击中击不中变换对图

26、像进行击中击不中变换操作的函数是bwhitmiss,其调用方式如下bw2 = bwhitmiss(bw,se1,se2)bw2 = bwhitmiss (bw,interval)其中bw为输入的二值图像,se1为结构元素,规定了保留像素值的邻域;se2为结构元素,规定了舍去像素值的邻域;interval是一个结构元素,它的值由1,-1和0组成,值为1的区域规定了se1的邻域,值为-1的区域规定了se2的邻域,值为0的区域被忽略。bw = 0 0 0 0 0 0;0 0 1 1 0 0;0 1 1 1 1 0;0 1 1 1 1 0;0 0 1 1 0 0;0 0 1 0 0 0;interva

27、l = 0 -1 -1;1 1 -1;0 1 0;bw2 = bwhitmiss(bw,interval)bw2 = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0通过结构元素interval可知,在二值图像bw中,如果某个像素值左方和下方的像素值为1,而右方、上方、右上方的像素值为0,则输出图像相应的像素值记为1,否则为0。运行结果中,bw中满足条件的像素值只有两个。nHM变换除了用于目标识别外,另一个重要应用是细化ABAA B12 *nABA BBB0 0 0X 1 X1 1 1结构元素:细化是

28、通过去掉物体A的边界来实现的通常的细化指多次细化:结构元素:第二次细化的对象是:第一次细化的结果背景不关心目标细化S SB BE EF FS1S1S2S2S3S3S4S4S5S5ABAA B细化最终结果使用一个结构元素细化使用第3个结构元素的击中击不中结果1 2 3 4 5 6 7 8S1:1,2S1:1,2S SS1:3S1:3S1:4S1:4使用第1个结构元素的击中击不中结果第2个结构元素对此图像无作用( )ABAAB使用第4个结构元素的击中击不中结果使用第5个结构元素的击中击不中结果使用多个结构元素细化S1:6,7,8S1:6,7,8S1:5S1:5S2:1,2S2:1,2S2:3,4S2:3,41 2 3 4 5 6 7 8使用第6个结构元素的击中击不中结果第7、8个结构元素对此图像均无作用再次使用第1个结构元素的击中击不中结果再次使用第3个结构元素的击中击不中结果再次使用第5个结构元素的击中击不中结果使用多个结构元素细化1 2 3 4 5 6 7 8S2:5S2:5S2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论