matlab数字图像处理 膨胀和腐蚀.doc
基于Matlab腐蚀和膨胀的边缘检测Matlab软件对灰度与二值图像的膨胀与腐蚀的处理方法。
二、实验环境(软件条件):
Windws2000/XP MATLAB 7.x
三、实验内容:
1、图像膨胀的Matlab实现膨胀:给图像中的对象边界添加像素。在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。首先创建一个包含矩形对象的二值图像矩阵。
=zeros(9,10);
R(4:6,4:7) =1
R =
???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0
B、使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。
=strel('square',3)
C =Flat STREL object containing 9 neighbors.
Neighborhood:???? 1???? 1???? 1???? 1???? 1???? 1???? 1???? 1???? 1
C、将图像和结构元素传递给imdilate函数。
=imdilate(R,C)
R1 =
???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 1???? 1???? 1???? 1???? 1???? 1???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0???? 0
D、显示结果imshow(R,'notruesize')
imshow(R1,'notruesize')
③ 实验结果:
膨胀前后效果图:
2、图像腐蚀的Matlab实现腐蚀:删除对象边界某些像素。
在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素