指纹识别基于模板匹配算法实现指纹特征提取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源码的主要内容,如果未能解决你的问题,请参考以下文章

指纹识别基于模板匹配算法解决指纹识别问题matlab源码

基于MATLAB的指纹识别算法仿真实现

语音识别基于mfcc特征模板匹配算法实现语音识别matlab源码含GUI

语音识别基于mfcc特征模板匹配算法实现语音识别matlab源码含GUI

语音识别基于mfcc特征模板匹配算法实现语音识别matlab源码含GUI

毕设题目:Matlab指纹识别