基于MATLAB的图像腐蚀膨胀(完美运行)
立即下载
资源介绍:
图像腐蚀和膨胀是图像处理中常用的基本操作,用于处理二值图像或灰度图像。这两个操作主要用于去除噪声、分离连接的图像区域、增强边缘等。
图像腐蚀(Erosion)的基本思想是将图像中的物体进行收缩。具体操作是:对于图像中的每个像素,将它的邻域与一个结构元素进行比较,如果邻域内的所有像素都与结构元素对应位置上的像素相同,则该像素保持不变,否则该像素被置为0(对于二值图像来说)或被赋予邻域内像素的最小值(对于灰度图像来说)。
图像膨胀(Dilation)的基本思想是将图像中的物体进行扩张。具体操作是:对于图像中的每个像素,将它的邻域与一个结构元素进行比较,如果邻域内的至少一个像素与结构元素对应位置上的像素相同,则该像素保持不变,否则该像素被置为1(对于二值图像来说)或被赋予邻域内像素的最大值(对于灰度图像来说)。
图像腐蚀和膨胀操作通常会结合使用,称为开运算和闭运算。开运算先进行腐蚀操作再进行膨胀操作,主要用于去除小的噪声,平滑物体边缘。闭运算先进行膨胀操作再进行腐蚀操作,主要用于填充物体内部的小空洞,连接断开的物体。
在图像处理软件或库中,通常提供了腐蚀和膨胀的函数供用户调用,可以根
I=imread('1.jpg'); %载入图像
I1=I;
figure(1)
imshow(I1);
title('原图像')
%%%%%结构1%%%%%
se=strel('disk',1); %生成圆形结构元素
I2=imdilate(I1,se); %用生成的结构元素对图像进行腐蚀
figure(2)
imshow(I2);
title('膨胀后图像[结构元素1]');
%%%%%结构2%%%%%
se=strel('disk',2); %生成圆形结构元素
I3=imdilate(I1,se); %用生成的结构元素对图像进行腐蚀
figure(3);
imshow(I3);
title('膨胀后图像[结构元素2]');
%%%%%结构3%%%%%
se=strel('disk',3); %生成圆形结构元素
I4=imdilate(I1,se); %用生成的结构元素对图像进行腐蚀
figure(4);
imshow(I4);
title('膨胀后图像[结构元素3]');
mainfc;
%%%%%%%%结构4%%%%
se=strel('disk',9); %生成圆形结构元素
I5=imdilate(I1,se); %用生成的结构元素对图像进行腐蚀
figure(5);
imshow(I5);
title('膨胀后图像[结构元素4]');
%%%%%%%%%%%选择两幅腐蚀图作差运算
result=I5-I4
figure(6)
imshow(result)
title('膨胀作差图');