【静脉检测】基于matlab手指静脉图像检测【含Matlab源码 1654期】
【摘要】
一、简介
手指静脉识别系统的性能非常依赖于采集图像的质量,但是采集设备在成像和传输时产生的各类噪声,以及开放式使用场景下设备镜面上存在脏污、用户手指存在蜕皮情况等因素都会对图像质量造成极大的影响,增大后...
一、简介
手指静脉识别系统的性能非常依赖于采集图像的质量,但是采集设备在成像和传输时产生的各类噪声,以及开放式使用场景下设备镜面上存在脏污、用户手指存在蜕皮情况等因素都会对图像质量造成极大的影响,增大后续特征提取的难度,最终影响整个系统的识别性能。针对目前现有的图像去噪算法和修复算法在处理手指静脉图像的过程中,并没有准确地利用图像的纹理特征信息,导致去噪后静脉纹理边缘模糊甚至部分静脉信息丢失、修复后静脉边缘断裂等问题,提出了基于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次膨胀后的图像');
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/122287154
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)