【指纹识别】指纹图像细节特征提取 【含Matlab源码 227期】

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【指纹识别】基于matlab指纹图像细节特征提取 【含Matlab源码 227期】
(https://download.csdn.net/download/TIQCmatlab/62925370)
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab图像处理(初级版)

备注:
点击上面蓝色字体付费专栏Matlab图像处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab图像处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、指纹图像的特征提取简介

指纹图像的特征提取是指纹识别的关键,而指纹匹配通常基于细节点匹配。指纹特征提取是从细化后的指纹图中得到细节特征点(即端点和分叉点),此特征点含有大量的伪特征,既耗时又影响匹配精度。本章采用了边缘去伪和距离去伪,使得特征点去伪前后减小了近1/3,然后提取可靠特征点信息,以便实现指纹匹配。基于MATLAB实现的指纹细节特征提取方法,并给出了去伪算法,算法实现简单快速,而且具有较高的准确率。
1 技术概述
指纹识别技术是一种应用前景非常乐观的生物识别技术,国内外很多机构都在进行相关研究,尽管目前已有多种商用自动指纹识别系统在市场上销售,但是不同商标的指纹识别机,指纹验证识别的快速性、准确性和可靠性都是不同的,一方面是指纹采集的偏差,另一方面也是指纹识别算法的不同,指纹识别算法的好坏,严重影响到指纹识别的准确率。因此如何提高指纹识别的算法的有效性和鲁棒性,一直以来是广大学者的研究热点以及难点。
在指纹自动识别系统中,首先是对指纹进行特征提取,然后根据特征及其相互之间的位置与拓扑关系在预先建立好的指纹库中进行匹配,从而检索到匹配指纹信息。指纹的特征主要指纹脊线的某种构型,如端点、分叉点等,本章也主要是对指纹的端点以及分叉点进行分析。
介绍了一套基于MATLAB 2014a实现的指纹细节特征提取及其后处理算法,以MATLAB 2014a作为指纹图像识别算法仿真的平台,具有较高的准确率,而且可以大大减小仿真的难度。
2 指纹识别系统的工作原理
在这里插入图片描述
3 指纹细节特征的提取
指纹特征去伪操作主要是将冗余的指纹特征的特征点滤除掉。
伪特征一半具有以下特点:大部分处于图像边缘;在图像内部的伪特征点距离较近,两个或多个伪特征同时存在于很小的区域内。
本章根据指纹图像伪特征分布特点提出了两种去伪方法:首先对于图像边缘的点,采用指纹图像切割的方法,即对边缘的点直接切除掉;然后利用最短距离阈值法去除距离较近的特征点。
在这里插入图片描述
在这里插入图片描述

⛄三、部分源代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 指纹图像细节特征提取
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
origin=imread(‘im2.bmp’);
subplot(2,2,1);imagesc(origin);
colormap(gray); xlabel(‘(a)原始图像’)
I=im2bw(origin); % 二值化
%细化指纹图像,用匹配模板法
[M,N]=size(I);
for i=2:M-1
for j=2:N-1
if I(i,j)==0
if (I(i-1,j)==0&I(i,j+1)==0)|(I(i-1,j)==0&I(i,j-1)==0)|(I(i+1,j)==0&I(i,j-1)==0)|(I(i+1,j)==0&I(i,j+1)0)
I(i,j)=1;
else
I(i,j)=0;
end
end
end
end
subplot(2,2,2);imagesc(I);
xlabel(‘(b)细化后的指纹图像’)
%特征点提取(端点或交叉点)
t=0;
for i=2:M-1
for j=2:N-1
if I(i,j)0
n=I(i-1,j-1)+I(i-1,j)+I(i-1,j+1)+I(i,j-1)+I(i,j+1)+I(i+1,j-1)+I(i+1,j)+I(i+1,j+1);
if (n
7|n
5)
t=t+1;
x(t)=j;
y(t)=i;
end
end
end
end
subplot(2,2,3);imagesc(I);
xlabel(‘©细化后的指纹图像’)
hold on;plot(x,y,‘bo’);hold off;
for i=1:t-1
for j=i+1:t %指纹特征去伪
d=sqrt((x(i)-x(j))2+(y(i)-y(j))2);
if d<6 %去除距离较近的特征点
x(i)=-1;y(i)=-1;x(j)=-1;y(j)=-1;
end
end
end
thin_image=~bwmorph(binary_image,‘thin’,Inf);
figure;imshow(thin_image);title(‘Thinned Image’);
% load(‘ridge.mat’)
% load(‘bifurcation.mat’)
% hold on
% plot(ridge_y,ridge_x,‘r*’)
% plot(bifurcation_y,bifurcation_x,‘b.’,‘markersize’,8)

%% Minutiae extraction
s=size(thin_image);
N=3;%window size
n=(N-1)/2;
r=s(1)+2n;
temp((n+1):(end-n),(n+1):(end-n))=thin_image(:😅;
outImg=zeros(r,c,3); % For Display
outImg(:,:,1) = temp .
255;
outImg(:,:,2) = temp .* 255;
outImg(:,:,3) = temp .* 255;
for x=(n+1+10):(s(1)+n-10)
for y=(n+1+10):(s(2)+n-10)
e=1;
for k=x-n:x+n
f=1;
for l=y-n:y+n
mat(e,f)=temp(k,l);
f=f+1;
end

⛄四、运行结果

在这里插入图片描述

⛄五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]刘艳华.基于MATLAB/GUI的指纹识别系统设计[J].信息与电脑(理论版). 2021,33(18)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值