手指静脉识别系统的性能非常依赖于采集图像的质量,但是采集设备在成像和传输时产生的各类噪声,以及开放式使用场景下设备镜面上存在脏污、用户手指存在蜕皮情况等因素都会对图像质量造成极大的影响,增大后续特征提取的难度,最终影响整个系统的识别性能。针对目前现有的图像去噪算法和修复算法在处理手指静脉图像的过程中,并没有准确地利用图像的纹理特征信息,导致去噪后静脉纹理边缘模糊甚至部分静脉信息丢失、修复后静脉边缘断裂等问题,提出了基于Gabor纹理特征的手指静脉图像去噪与修复算法研究,在消除噪声或是修复破损区域的同时,充分利用图像的纹理特征信息,起到能更好地保护静脉纹理边缘结构的作用,对静脉血管类图像处理具有很好地借鉴意义。
%clear all;
%clc;
%…………………………………………………………………………………………
%两种均衡化↓
%………………………………………………………………………………………
yuantu=imread(‘387-1.bmp’);%读取图片
huidutu=rgb2gray(yuantu);%灰度化
junhenghua1=adapthisteq(huidutu);%adapthisteq均衡化
junhenghua2=histeq(huidutu);%histeq均衡化
imwrite(huidutu,‘灰度图.bmp’);
imwrite(junhenghua1,’ adapthisteq均衡化.bmp’);
imwrite(junhenghua2,’ histeq均衡化.bmp’);
%输出均衡化图像以及直方图
figure;
subplot(3,2,1);
imshow(huidutu);
title(‘灰度图’);
subplot(3,2,2);
imhist(huidutu);
title(‘灰度图的直方图’);
subplot(3,2,3);
imshow(junhenghua1);
title(‘adapthisteq均衡后’);
subplot(3,2,4);
imhist(junhenghua1);
title(‘adapthisteq均衡后的直方图’);
subplot(3,2,5);
imshow(junhenghua2);
title(‘histeq均衡后’);
subplot(3,2,6);
imhist(junhenghua2);
title(‘histeq均衡后的直方图’);
%…………………………………………………………………………………………
%13x13中值滤波↓
%…………………………………………………………………………………………
figure;
subplot(1,2,1);
imshow(junhenghua2);%fffffffffffffff
xlabel(‘(1)原始图像’);
zhongzhilvbo=medfilt2(junhenghua2,[13,13]);
subplot(1,2,2);
imshow(zhongzhilvbo,[]);
xlabel(‘(2) 1次13x13中值滤波’);
imwrite(zhongzhilvbo,‘13x13中值滤波.bmp’);
%…………………………………………………………………………………………
%边缘检测:sobel算子对水平、垂直进行边缘检测↓
%…………………………………………………………………………………………
hx=[-1 -2 -1;0 0 0 ;1 2 1];%生产sobel垂直梯度模板
hy=hx’; %生产sobel水平梯度模板
gradx=filter2(hx,zhongzhilvbo,‘same’);
sobelx=abs(gradx); %计算图像的sobel垂直梯度
grady=filter2(hy,zhongzhilvbo,‘same’);
sobely=abs(grady); %计算图像的sobel水平梯度
sobel=sobelx+sobely; %得到图像的sobel梯度
sobelxx=mat2gray(sobelx);%将double变成unit8
imwrite(sobelxx,‘soble垂直图.bmp’);
figure;
subplot(2,2,1);
imshow(zhongzhilvbo);
title(‘中值滤波图’);
subplot(2,2,2);
imshow(sobelx,[]);
title(‘图像的sobel垂直梯度’);
subplot(2,2,3);
imshow(sobely,[]);
title(‘图像的sobel水平梯度’);
subplot(2,2,4);
imshow(sobel,[]);
title(‘图像的sobel梯度’);
%…………………………………………………………………………………………
%形态学处理:膨胀1、2、3次
%…………………………………………………………………………………………
B=[0 1 0
1 1 1
0 1 0];%B为结构元
pengzhang1=imdilate(sobelxx,B);%图像sobelxx被结构元素B膨胀
pengzhang2=imdilate(pengzhang1,B);%膨胀两次
pengzhang3=imdilate(pengzhang2,B); %膨胀三次
imwrite(pengzhang1,‘膨胀一次图.bmp’);
figure;
subplot(2,2,1);
imshow(sobelxx);
title(‘未膨胀图像’);
subplot(2,2,2);
imshow(pengzhang1);
title(‘使用B后1次膨胀后的图像’);
subplot(2,2,3);
imshow(pengzhang2);
title(‘使用B后2次膨胀后的图像’);
subplot(2,2,4);
imshow(pengzhang3);
title(‘使用B后3次膨胀后的图像’);
1 matlab版本
2014a
2 参考文献
[1]王明文,唐东明,于耀程,杨淏.手指静脉图像鲁棒边缘检测算法[J].计算机应用研究. 2018,35(01)