【模式识别】基于matlab之指纹图像细节特征提取 【含Matlab源码 227期】

一、简介

指纹图像的特征提取是指纹识别的关键,而指纹匹配通常基于细节点匹配。指纹特征提取是从细化后的指纹图中得到细节特征点(即端点和分叉点),此特征点含有大量的伪特征,既耗时又影响匹配精度。本章采用了边缘去伪和距离去伪,使得特征点去伪前后减小了近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('(c)细化后的指纹图像')
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)+2*n;
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

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 2449341593
往期回顾>>>>>>
【图像识别】基于matlab路面裂缝识别含GUI【含Matlab源码 009期】
【图像识别】基于matlab身份证号码识别【含Matlab源码 014期】
【图像压缩】基于matlab图像处理教程系列之图像压缩【含Matlab源码 024期】
【图像分割】基于matlab图像处理教程系列之图像分割(一)【含Matlab源码 025期】
【图像分割】基于matlab图像处理教程系列之图像分割(二)【含Matlab源码 026期】
【模式识别】基于matlab指纹识别【含Matlab源码 029期】
【模式识别】基于matlab银行卡号识别【含Matlab源码 030期】
【图像聚类】基于matlab FCM和改进的FCM脑部CT图像聚类【含Matlab源码 074期】
【图像评价】基于matlab CCF算法的图像质量评价【含Matlab源码 075期】
【图像增强】基于matlab局部对比度增强的CLAHE算法之直方图增强【含Matlab源码 076期】
【图像融合】基于matlab Frequency Partition之图像融合【含Matlab源码 077期】
【图像评价】基于matlab SVM之图像无参考质量评价【含Matlab源码 078期】
【图像处理】基于matlab DWT+DCT+PBFO改进图像水印隐藏提取含GUI【含Matlab源码 081期】
【图像变换】基于matalb DIBR-3D图像变换【含Matalb源码 082期】
【图像融合】基于matlab CBF算法的图像融合【含Matlab源码 083期】
【图像分割】基于matlab模糊聚类算法FCM的图像分割【含Matlab源码 084期】
【图像分割】基于形态学重建和过滤改进FCM算法(FRFCM)的的图像分割【Matlab 085期】
【图像去噪】基于matlab自适应形态学的图像去噪【含Matlab源码 086期】
【图像增强】基于matlab DEHAZENET和HWD的水下去散射图像增强【含Matlab 087期】
【图像增强】基于matlab PSO寻优ACE的图像增强【含Matlab源码 088期】
【图像增强】基于matlab区域相似变换函数和蜻蜓算法之灰度图像增强【含Matlab源码 089期】
【图像重建】基于matlab图像重建之ASTRA算法【含Matlab源码 090期】
【图像分割】基于matlab四叉树图像分割【含Matlab源码 091期】
【图像分割】基于matlab心脏中心线提取【含Matlab源码 092期】
【图像识别】基于matlab svm植物叶子疾病检测和分类【含Matlab源码 093期】
【图像识别】基于matlab模板匹配之手写数字识别系统GUI界面【含Matlab源码 094期】
【图像识别】基于matlab不变矩的数字验证码识别含GUI界面【含Matlab源码 095期】
【图像识别】基于matlab条形码识别系统【含Matlab源码 096期】
【图像识别】基于matlab RGB和BP神经网络的人民币识别系统含GUI界面【含Matlab源码 097期】
【图像识别】基于matlab cnn卷积神经网络之验证码识别【含Matlab源码 098期】
【图像直线拟合】基于matlab最小二乘法的图像直线拟合【含Matlab源码 100期】
【图像去雾】基于matlab暗通道之图像去雾【含Matlab源码 101期】
【图像分割】基于matlab直觉模糊C均值聚类的图像分割IFCM【含Matlab源码 120期】
【图像分割】基于matlab最大类间方差法(otsu)图像分割【含Matlab源码 121期】
【模式识别】基于matlab银行监控系统人脸识别【含Matlab源码 125期】
【模式识别】基于matlab GUI界面的疲劳检测系统【含Matlab源码 126期】
【图像识别】基于matlab国外车牌识别【含Matlab源码 128期】
【图像分割】基于matlab蚁群优化模糊聚类的图像分割【含Matlab源码 130期】
【模式识别】基于matalb GUI界面的水果检测系统【含Matlab源码 173期】
【模式识别】基于matalb GUI界面的水果分类系统【含Matlab源码 174期】
【模式识别】基于matalb GUI界面的水果分级系统【含Matlab源码 175期】
【模式识别】基于matlab人脸识别之检测脸、眼、鼻子和嘴【含Matlab源码 178期】
基于matlab GUI界面处理录音与音频【含Matlab源码 181期】
【图像处理】基于matlab GUI界面的图像加解密【含Matlab源码 182期】
【模式识别】基于matlab GUI界面BP网络之手写体大写字母识别【含Matlab源码 183期】
【图像分割】基于matlab GUI界面医学影像分割【含Matlab源码 184期】
【图频处理】基于matlab GUI界面环图像处理与音乐播放系统【含Matlab源码 185期】
【图像隐藏】基于matlab Laguerre 变换的图像隐藏【含Matlab源码 193期】
【图像处理】基于matlab dwt函数实现二维小波变换【含Matlab源码 198期】
【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】
【图像边缘检测】基于matlab GUI界面图像边缘检测系统【含Matlab源码 203期】
【图像几何运算】基于matlab GUI界面之图像几何运算系统【含Matlab源码 206期】
【图像处理】基于matlab GUI界面之图像处理系统【含Matlab源码 207期】
【图像识别】基于matlab细胞识别和边缘检测【含Matlab源码 210期】
【模式识别】基于matlab 反馈神经Hopfield的数字识别【含Matlab源码 226期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/113694435