1、设计题目:图像的膨胀与腐蚀运算比较学院:班级:学号:设计人:指导老师:设计时间:2014 年 12 月 14 日一、 实验目的:1.了解膨胀与腐蚀的基本运算;2.掌握膨胀与腐蚀的基本方法;3.编写 Matlab 程序实现膨胀与腐蚀。二、 实验要求:1.使用 imdilate 函数进行图像膨胀,并观察膨胀后图像的变化;2.使用 imerode 函数进行图像腐蚀,并观察腐蚀后图像的变化;三、 实验原理:膨胀:将于物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,利用它可以填补物体中的空洞,以及消除包含在目标区域中的小颗粒噪声。膨胀处理是腐蚀处理的对偶,可定义如下:膨胀是以得到 B 的相对
2、与它自身原点的映像并且由 z 对映像进行移位为基础的。A 被 B 膨胀是所有 Error!z 的集合,这样, 和 A 至少有一个元素是重叠的。我们可以把上式改写为: 结构元素 B 可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的。 用结构元素 B,扫描图像 A 的每一个像素; 用结构元素与其覆盖的二值图像做“与”操作; 如果都为 0,结果图像的该像素为 0。否则为 1;示意图如下:膨胀示意图膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素B 平移 a 后得到 Ba,若 Ba 击中 X,我们记下这个 a 点。所有满足
3、上述条件的 a 点组成的集合称做 X 被 B 膨胀的结果。用公式表示为:D(X)=a | BaX=X B,图中 X 是被处理的对象,B 是结构元素,不难知道,对于任意一个在阴影部分的点 a,Ba 击中 X,所以 X 被 B膨胀的结果就是那个阴影部分。阴影部分包括 X 的所有范围,就象X 膨胀了一圈似的,这就是为什么叫膨胀的原因。 同样,如果 B 不是对称的,X 被 B 膨胀的结果和 X 被 Bv 膨胀的结果不同。 让我们来看看实际上是怎样进行膨胀运算的。在图中,左边是被处理的图象 X(二值图象,我们针对的是黑点),中间是结构元素 B。膨胀的方法是,拿 B 的中心点和 X 上的点及 X 周围的点
4、一个一个地对,如果B 上有一个点落在 X 的范围内,则该点就为黑;右边是膨胀后的结果。可以看出,它包括 X 的所有范围,就象 X 膨胀了一圈似的。腐蚀:是一种消除边界点,使边界点向内部收缩的过程,可以用来消除小且无意义的目标物。如果两目标物间有细小的联通,可以选取足够大的结构元素,将细小连通腐蚀掉。可定义如下:对 Z 中的集合 A 和 B, B 对 A 进行腐蚀的整个过程如下: (1) 用结构元素 B,扫描图像 A 的每一个像素;(2) 用结构元素与其覆盖的二值图像做“与”操作;(3) 如果都为 1,结果图像的该像素为 1。否则为 0;腐蚀处理的结果是使原来的二值图像减小一圈。示意图如下:腐蚀
5、的示意图其中,X 是被处理的对象, B 是结构元素。不难知道,对于任意一个在阴影部分的点 a,Ba 包含于 X,所以 X 被 B 腐蚀的结果就是那个阴影部分。阴影部分在 X 的范围之内,且比 X 小,就象 X 被剥掉了一层似的,这就是为什么叫腐蚀的原因。 值得注意的是,上面的B 是对称的,即 B 的对称集 Bv=B,所以 X 被 B 腐蚀的结果和 X 被 Bv 腐蚀的结果是一样的。如果 B 不是对称的,让我们看看图 6.9,就会发现 X 被 B 腐蚀的结果和 X 被 Bv 腐蚀的结果不同。四、实验代码:膨胀:1=imread(circles,tif)Inshow(I)Se=strel(boll
6、,8.8);I2=imdilate(I,se);Imshow(I2)图像膨胀处理过程运行结果如下:腐蚀:1=imread(circles,tif)Inshow(I)Se=strel(boll,32.32);I2=imerode(I,se);Imshow(I2)图像腐蚀处理过程运行结果如下:上面腐蚀与膨胀基于的原图如下:六、实验总结:通过本次的实验,我了解了二值形态学的基本运算,掌握了二值图像膨胀、腐蚀的基本方法,并且会运用编程实现膨胀、腐蚀,本次的实验目的已经完成,意识到在以后的生活中要了解做事情的目的,注重每一个与细节,认真思考遇到的所有问题,提高自己各方面的能力。感谢老师教会我们理论与实践知识,也让我明白了什么是学习,怎么样学习,为以后的生活奠定的基础与指引了方向。