1
基于MATLAB的数字图像处理研究
1.8.2.3 6.2.3 图像开运算、闭运算

6.2.3 图像开运算、闭运算

对一个图像先进行腐蚀运算然后再膨胀的操作过程称为开运算,它可以消除细小的物体,在纤细点处分离物体,平滑较大物体的边界时不明显地改变其面积。如果对一个图像先膨胀然后再收缩,我们称之为闭运算,它具有填充物体内细小的空洞、连接邻近物体、在不明显改变物体面积的情况下平滑其边界的作用,同时不明显改变其面积。原图经过开运算后,能够去除孤立的小点、毛刺和小桥(即连通两块区域的小点),消除小物体、平滑较大物体的边界,同时并不明显改变其面积。通常情况下,当有噪声的图像用阈值二值化后,所得到的边界是很不平滑的,物体区域具有一些错判的孔洞,背景区域散布着一些小的噪声物体,连续的开和闭运算可以显著地改善这种情况,这时候需要在连续几次腐蚀迭代之后,再加上相同次数的膨胀,才可以产生所期望的效果。

MATLAB图像处理工具箱中提供了根据形状和大小构造结构元素函数strel(),以及开运算函数imopen()和闭运算函数imclose(),运用各种形状和大小创建结构元素对象函数strel(),以及转换为二值图像函数im2bw()。图6-7是一幅带有杂散点的指纹图像,图6-8是转换后的二值图像,图6-9是经过开运算后的图像,消除了杂散点,但又多了一些缺口,图6-10是经过开运算后,再做闭运算的图像,可以看出,消除了杂散点,而且弥补了缺口。程序代码如下:

f=imread('fingerprint1.jpg');

imshow(f);

g=im2bw(f,0.3);

figure,imshow(g);

s=strel('square',3);

g1=imopen(g,s);

figure,imshow(g1);

g2=imclose(g1,s);

figure,imshow(g2)。

img156

图6-7

img157

图6-8

img158

图6-9

img159

图6-10