指纹识别基于模板匹配算法实现指纹特征提取matlab源码
Posted Matlab科研工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指纹识别基于模板匹配算法实现指纹特征提取matlab源码相关的知识,希望对你有一定的参考价值。
一、简介
模型参考这里。
二、源代码
clear all clc I=im2bw(imread('1.jpg'));%将读入的图像变为二值图像 subplot(2,2,1);imshow(I);title('原始指纹图像');%显示原始指纹 [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);imshow(I);title('细化指纹图像');%显示细化后指纹 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);imshow(I);title('提取指纹中的特征点(端点和分叉点)') hold on;plot(x,y,'r*');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<3 %用距离阈值的方法去除距离较近的特征点 x(i)=-1;y(i)=-1;x(j)=-1;y(j)=-1; end end end c=0;d=0; for i=1:t if (x(i)>=10&x(i)<max(x)-10)&(y(i)>=10&y(i)<max(y)-10) %去除边缘的特征点 c=c+1;l(c)=x(i);d=d+1;h(d)=y(i); end end x=find(x);y=find(y); subplot(2,2,4);imshow(I);title('去除伪特征点') hold on;plot(l,h,'r*'); hold off;
三、运行结果
四、参考文献
[1]王崇文, 李见为, 周宏文,等. 指纹识别系统的设计与实现[J]. 计算机应用, 2001(12):63-65.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
以上是关于指纹识别基于模板匹配算法实现指纹特征提取matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
语音识别基于mfcc特征模板匹配算法实现语音识别matlab源码含GUI
语音识别基于mfcc特征模板匹配算法实现语音识别matlab源码含GUI