静脉检测基于matlab手指静脉图像检测含Matlab源码 1654期

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静脉检测基于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梯度');

%…………………………………………………………………………………………
%形态学处理:膨胀123%…………………………………………………………………………………………
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.

以上是关于静脉检测基于matlab手指静脉图像检测含Matlab源码 1654期的主要内容,如果未能解决你的问题,请参考以下文章

智能锁四大生物识别技术对比分析

图像分割 - 如何检测这种静脉连接? (地标)

图像增强基于matlab Frangi滤波器血管图像增强含Matlab源码 2108期

图像增强基于matlab Frangi滤波器血管图像增强含Matlab源码 2108期

手指静脉细化算法过程原理解析 以及python实现细化算法

角点检测 基于matlab GUI图像角点检测含Matlab源码 2082期