首页 理论教育 数字图像处理技术:膨胀与腐蚀

数字图像处理技术:膨胀与腐蚀

时间:2023-10-26 理论教育 版权反馈
【摘要】:腐蚀是一种通过消除图像边界点,使边界向图像的内部收缩的过程。通常使用腐蚀处理消除小而无用的结构元素。不过,膨胀处理是杂点敏感的,细小的杂点通过膨胀处理后会变得明显。IM2=imdilate使用结构元素矩阵SE对图像数据矩阵IM1执行膨胀操作,得到图像IM2。当SHAPE值为same时,可以使得输出的图像与输入图像大小相同。

数字图像处理技术:膨胀与腐蚀

在数字图像处理中,膨胀在数学形态学的运算作用是扩展物体的边界点,结合通过建立确定的结构元素,可以使一些相邻距离较短的区域实现连接,实现图像中小的孔洞和边缘处小凹陷部分的填充。腐蚀是一种通过消除图像边界点,使边界向图像的内部收缩的过程。通常使用腐蚀处理消除小而无用的结构元素。不过,膨胀处理是杂点敏感的,细小的杂点通过膨胀处理后会变得明显。

膨胀数学定义如下:

设A为(x,y)一维平面目标区域,D为指定大小和形状的结构元素,定义于(x,y)坐标上的D所表示区域为D(x,y),那么对于A的膨胀表达式为:

腐蚀定义如下:

设4为(x,y)一维平面目标区域,D为指定大小和形状的结构元素,定义于(x,y)坐标上的D所表示区域为D(x,y),那么对于A的腐蚀表达式为:

在MATLAB库中,提供了imdilate()函数来实现膨胀操作。函数imdilate()有多种调用格式。

IM2=imdilate(IM1,SE)

IM2=imdilate(IM1,SE,PACKOPT)

IM2=imdilate(...,SHAPE)

SE是由strel函数返回的一个结构元素对象或一个结构元素对象序列。IM2=imdilate(IM1,SE)使用结构元素矩阵SE对图像数据矩阵IM1执行膨胀操作,得到图像IM2。IM1可以是灰度图像或二值图像,即分别为灰度膨胀和二值膨胀。如果SE是结构元素对象序列,则执行多重膨胀。IM2=imdilate(IM1,SE,PACKOPT)用来识别IM1是否是packed二值图像。PACKOPT的取值为ispacked或notpacked。IM2=imdilate(...,SHAPE)用来决定输出图像的大小。SHAPE可以取值为same或full。当SHAPE值为same时,可以使得输出的图像与输入图像大小相同。如果PACKOPT取值为ispacked,则SHAPE只能取值为same。

其中,函数strel用来构造各种形状和大小的结构元素,具体格式如下所示:

SE=strel(SHAPE,PARAMETERS)

创建由指定形状shape对应的结构元素。其中shape的种类有

‘arbitrary'

'pair'

'diamond'

'periodicline'

'disk'

'rectangle'

'line'

'square'

'octagon

参数parameters一般控制SE的大小。

例子:

(www.xing528.com)

对二值图像进行膨胀的MATLAB代码实现如下所示:

clear all;

clc;

bw=imread('2.png');

se=strel('disk',8);

bw2=imdilate(bw,se);

figure;

subplot(121);imshow(bw);

subplot(122);imshow(bw2);

在程序中,先读入二值图像,然后通过函数strel()设计盘型结构元素,最后对图像进行膨胀处理操作。程序运行后结果如图8.8所示。

图8.8 二值图像的膨胀处理

在Matlab库中,提供了imerode()函数来实现腐蚀操作。该函数imerode()多种调用格式与函数imdilate()基本相同,在此不再作详细介绍。下面通过灰度图腐蚀操作的例子来详细介绍基本用法。

对灰度图像进行腐蚀的MATLAB代码实现如下所示:

clear all;

clc;

bw=imread('2.png');

se=strel('disk',11);

bw2=imerode(bw,se);

figure;

subplot(121);imshow(bw);

subplot(122);imshow(bw2);

在程序中,先读入二值图像,然后通过函数strel()设计盘型结构元素,最后对图像进行腐蚀处理操作。程序运行后结果如图8.9所示。

图8.9 灰度图像的腐蚀操作

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈