开闭操作恢复被噪声污染的指纹纹路

一、 目的

对被噪声污染的指纹进行腐蚀,膨胀,开操作,并思考怎样能更好地修复指纹中的裂缝。

二、代码

先对噪声指纹图像进行腐蚀,接着对噪声指纹图像先后执行开操作、膨胀,最后再对开操作执行闭操作,具体实现代码如下:

%读入噪声指纹图像
img = imread('fingerprint.tif');
figure;
subplot(1,3,1);
imshow(img);
title('噪声指纹图像');
se = ones(3); %结构元
 %腐蚀
img_erode = imerode(img,se); 
subplot(1,3,2);
imshow(img_erode);
title('腐蚀后的图像');
%对原图像进行开操作
img_open = imopen(img,se);
subplot(1,3,3);
imshow(img_open);
title('对原图像进行开操作');
%开操作的膨胀
img_dilate = imdilate(img_open,se);
figure;
subplot(1,3,1);
imshow(img_dilate);
title('开操作的膨胀');
%开操作的闭运算
img_close = imclose(img_open,se);
subplot(1,3,2);
imshow(img_close);
title('开操作的闭操作');
%膨胀后进行腐蚀
img_erode1 = imerode(img_dilate,se);
subplot(1,3,3);
imshow(img_erode1);
title('膨胀后进行腐蚀');

三、结果分析

得到的结果如下:


开闭操作恢复被噪声污染的指纹纹路_第1张图片

开闭操作恢复被噪声污染的指纹纹路_第2张图片

由结果我们可以看到,腐蚀操作消除了原始图像中大部分噪声,但同时也使指纹间产生断裂;而对原图像进行开操作后,图像的轮廓更加平滑,且指纹外部的噪声都被消除,虽然执行开操作之后指纹断裂没腐蚀操作那么严重,但仍有断裂,因此开操作之后执行了闭操作;闭操作使指纹间的断裂连接了起来,但仍有些指纹纹路没有完全修复;开操作之后执行膨胀操作可以使指纹间的大部分断裂得到恢复,但纹路变粗,于是对其进行腐蚀,可以让纹路变细。将开操作后进行闭操作得到的图像与膨胀后进行腐蚀得到的图像进行对比,我们可以发现两者是一样的,这也说明了闭操作就是膨胀后进行腐蚀。

以上的操作并没有将指纹间的纹路完全恢复,这是因为在保持连续性方面没有插入任何条件,而如果根据骨架的概念,使图像最大限度的细化、连通,且受到的腐蚀最小,可以更好地恢复指纹纹路,不过需要多次尝试才能得到比较理想的结果。




你可能感兴趣的:(数字图像处理,指纹恢复,膨胀腐蚀,开闭操作)