1、MATLAB 函数处理图像实现膨胀腐蚀一、实验目的1、了解二值形态学的基本运算2、掌握二值图像膨胀、腐蚀的基本方法3、编程实现膨胀、腐蚀二、实验要求1、使用 imdilate 函数进行图像膨胀,并观察膨胀后图像的变化。2、使用 imerode 函数进行图像腐蚀,观察腐蚀后的图像变化情况。三、实验原理膨胀:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。利用它可以填补物体中的空洞。B 对 X 膨胀所产生的二值图像 D 是满足以下条件的点(x,y)的集合:如果 B 的原点平移到点(x,y) ,那么它与 X 的交集非空。 数学表达式: AC腐蚀:一种消除边界点,使边界向内部收缩的过程
2、。利用它可以消除小而且无意义的物体。B 对 X 腐蚀所产生的二值图像 E 是满足以下条件的点(x,y)的集合:如果 B 的原点平移到点(x,y) ,那么 B 将完全包含于 X 中。数学表达式: AC膨胀处理:一种消除边界点,使边界点向内部收缩的过程。腐蚀处理:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。四、实验步骤1.图像膨胀的 Matlab 实现:可以使用 imdilate 函数进行图像膨胀,imdilate 函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是 strel 函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外
3、,imdilate 还可以接受两个可选参数:PADOPT(padopt) 影响输出图片的大小、PACKOPT(packopt).说明输入图像是否为打包的二值图像(二进制图像)。步骤 1,首先创建一个包含矩形对象的二值图像矩阵。 BW=zeros(9,10); BW(4:6,4:7) =1BW =0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 1 1 1 1 0 0 00 0 0 1 1 1 1 0 0 00 0 0 1 1 1 1 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
4、0 0 0 0 0 0 0 0 0 0步骤 2,使用一个 33 的正方形结构元素对象对创建的图像进行膨胀。 SE=strel(square,3)SE =Flat STREL object containing 9 neighbors.Neighborhood:1 1 11 1 11 1 1步骤 3,将图像 BW 和结构元素 SE 传递给 imdilate 函数。 BW2=imdilate(BW,SE)BW2 =0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 0 00 0 1 1 1 1 1 1 0 00 0 1 1 1 1 1 1 0
5、 00 0 1 1 1 1 1 1 0 00 0 1 1 1 1 1 1 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0步骤 4,显示结果。 imshow(BW,notruesize) imshow(BW2,notruesize)2.图像腐蚀的 Matlab 实现:可以使用 imerode 函数进行图像腐蚀。imerode 函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode 函数还可以接受 3个可选参数:PADOPT(padopt) 影响输出图片的大小、PACKOPT(packopt).说明输入图像是否为打包的二值图像(二进制图
6、像)。M 指定原始图像的行数。以下程序示例说明了如何对某一副具体图像进行腐蚀操作,腐蚀前后的效果对比如图末。步骤 1,读取图像 cameraman.tif (该图像是 Matlab 当前目录下自带的图片) BW1=imread(cameraman.tif);步骤 2,创建一个任意形状的结构元素对象 SE=strel(arbitrary,eye(5);步骤 3,以图像 BW1 和结构元素 SE 为参数调用 imerode 函数进行腐蚀操作。 BW2=imerode(BW1,SE);步骤 4,显示操作结果 imshow(BW1) figure,imshow(BW2)五、实验代码及结果代码:imer
7、ode 函数,该函数能够实现二值图像的腐蚀操作;imdilate 函数,该函数能够实现二值图像的膨胀操作;bw=imread(d:image1)bw=rgb2gray(bw)se1=strel(disk,11);se2=strel(line,11,90);bw2= imdilate(bw,se2); bw1=imerode(bw,se1);imshow(bw),title(原图)figure,imshow(bw2), title(膨胀后的图像 )figure,imshow(bw1), title(腐蚀后的图像 )结果:原 图 膨胀后的图像 腐蚀后的图像六、实验心得体会通过本次的实验,我了解了二值形态学的基本运算,掌握了二值图像膨胀、腐蚀的基本方法,并且会运用编程实现膨胀、腐蚀,本次的实验目的已经完成,意识到在以后的生活中要了解做事情的目的,注重每一个与细节,认真思考遇到的所有问题,提高自己各方面的能力。感谢尹强老师教会我们理论与实践知识,也让我明白了什么是学习,怎么样学习,为以后的生活奠定的基础与指引了方向。