matlab指纹识别

上传人:第*** 文档编号:31074476 上传时间:2018-02-04 格式:DOCX 页数:23 大小:417.13KB
返回 下载 相关 举报
matlab指纹识别_第1页
第1页 / 共23页
matlab指纹识别_第2页
第2页 / 共23页
matlab指纹识别_第3页
第3页 / 共23页
matlab指纹识别_第4页
第4页 / 共23页
matlab指纹识别_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《matlab指纹识别》由会员分享,可在线阅读,更多相关《matlab指纹识别(23页珍藏版)》请在金锄头文库上搜索。

1、指纹识别研究1指纹识别技术研究个人的指纹是独一无二的,两人之间不存在着相同的手指指纹。每个人的指纹是相当固定的,不会随着人的年龄的增长或身体健康程度的变化而变化,但是人的声音等却存在较大变化的可能。 3)指纹样本便于获取,易于开发识别系统,实用性强。目前已有标准的指纹样本库,方便了识别系统的软件开发;另外,识别系统中完成指纹采样功能的硬件部分也较易实现。而对视网膜则难于采样,也无标准的视网膜样本库供系统软件开发使用,这就导致视网膜识别系统难以开发,可行性较低。一个人的十指指纹皆不相同,这样可以方便地利用多个指纹构成多重口令,提高系统的安全性。指纹识别中使用的模板并非最初的指纹图,而是由指纹图中

2、提取的关键特征,这样使系统对模板库的存储量较小。另外,对输入的指纹图提取关键特征后,可以大大减少网络传输的负担,便于实现异地确认,支持计算机的网络功能。近些年来,电子信息技术的飞速发展,特别是传感技术、电子信号处理技术、计算机数据管理技术、计算机网络技术的飞速发展,为指纹识别技术的成型提供了强大的硬件支持。与此同时,图形图像处理学、人工智能学、软件工程学等新兴学科的蓬勃发展也为指纹识别技术的进步提供了强有力的软件支持。指纹识别的发展中,也存在自身的不足,如指纹识别系统性能的测试和评估标准的确立、相关软件的标准化问题都是有待进一步解决的。指纹识别技术作为一项迅猛发展的新技术,有了软硬件等方面的强

3、大保障,同时又有指纹识别自身的诸多优点,相信指纹识别技术一定会有更加美好的发展前景。摘要:随着生物识别技术的不断发展,人们发现每个人的指纹具有唯一性和不变性。因此指纹识别技术逐步发展为一种新的身份识别方式,并且凭借其良好的安全可靠性,大有取代传统身份识别方式的趋势。本文简要介绍了指纹识别的基本步骤,分别是指纹图像预处理、指纹特征提取、指纹匹配。在图像预处理中,依次介绍指纹识别研究2了规格化处理、图像增强、二值化处理和细化处理的方法。预处理后将得到一幅宽度为一个像素的细化二值图像,然后通过特定的端点和交叉点的特征进行指纹匹配。实验表明,该方法效果良好。论文中采用 Matlab 编程实现全部算法。

4、关键词:指纹识别,图像处理,特征提取,特征匹配1引言传统的身份识别技术包括基于密码的身份识别技术和基于令牌的身份识别技术。但是这两种方式都存在着一定的安全风险:令牌容易丢失,密码容易忘记,且它们都容易被窃取或冒充。近年来,依赖人体特征的新型身份识别技术正在兴起,凭借其唯一且不变的特点,生物识别技术逐步成为人们研究的热点。而在生物识别技术中,指纹识别技术已经被广泛的研究和应用。它的基本原理框图如图一所示。图 1 指纹识别的基本原理框图2指纹图像预处理2.1 图像规格化受采集设备参数和环境的影响,采集到的指纹图像可能总体对比度较差。图像归一化的作用就是使所有指纹图像具有相同的灰度均值和方差,从而将

5、每一幅图像的灰度调整到统一的范围,方便后续处理。归一化的算法是:(1 ) 先计算图像的平均值和方差。这部分工作主要通过统计图像中各点像素值得到该图像的直方图,然后利用直方图来计算指纹图像的相关指标。 10()(,)HWijMIIi120()(,)(ijVarIIijMI(2 ) 指定期望经过处理后的图像均值和方差,计算归一化后的图像 G。指纹采集 指纹图像预处理 特征点提取 特征点匹配 输出显示指纹识别研究3200 200(,)(,)(,),VarIijMIijGijijothersr图像规格化的 Matlab 程序如下(其中方差取 Var0=2000,M0=150):% 归一化M=0;var

6、=0;for x=1:mfor y=1:nM=M+I(x,y);endendM1=M/(m*n);for x=1:mfor y=1:nvar=var+(I(x,y)-M1).2;endendvar1=var/(m*n);for x=1:mfor y=1:nif I(x,y)=M1I(x,y)=150+sqrt(2000*(I(x,y)-M1)/var1);elseI(x,y)=150-sqrt(2000*(M1-I(x,y)/var1);endendendfigure, imshow(uint8(I) ;带入指纹图像zhiwen1.bmp 后得到的原始图像和归一化图像见图 2 和图 3:指纹识

7、别研究4图 2 原始指纹图像 图 3 规格化后的指纹图像2.2 图像分割指纹图像通常包括纹线区域和周边的无用区域。如果保留这些无用区域,会致使计算冗余度增加。为此要先将其从待处理区域中去除。通常用的分离方法有像素领域特征的方法和基于像素分布概率的方法等。本文采取对各像素邻域特征进行分析,然后分割图像算法。吧图像分成 T*T 的非重叠块,计算每一块的灰度均值 M 和方差 Var,通过下列条件区分前景与背景:(1 ) 如果 MM1 且 Var=Var1,则认为前景,否则待定;(3 ) 对所有分块划分完毕后,在对待定块进行判决。如果在 8 邻域中,背景景小于等于 4 则认为是前景,否则是背景在编程过

8、程中通过几次调试后对图像进行 3*3 分块处理Matlab 程序如下:% 分割M =3; %3*3H = m/M; L= n/M;aveg1=zeros(H,L);var1=zeros(H,L);% 计算每一块的平均值for x=1:H;for y=1:L;aveg=0;var=0;for i=1:M;for j=1:M;aveg=I(i+(x-1)*M,j+(y-1)*M)+aveg;指纹识别研究5endendaveg1(x,y)=aveg/(M*M);% 计算每一块的方差值for i=1:M;for j=1:M;var=(I(i+(x-1)*M,j+(y-1)*M)-aveg1(x,y).

9、2+var;endendvar1(x,y)=var/(M*M);endendGmean=0;Vmean=0;for x=1:Hfor y=1:LGmean=Gmean+aveg1(x,y);Vmean=Vmean+var1(x,y); endendGmean1=Gmean/(H*L);%所有块的平均值Vmean1=Vmean/(H*L);%所有块的方差gtemp=0;gtotle=0;vtotle=0;vtemp=0;for x=1:Hfor y=1:Lif Gmean1aveg1(x,y)gtemp=gtemp+1;gtotle=gtotle+aveg1(x,y);endif Vmean1G

10、2 & var1(x,y) (3*summ/8),则该像素点的脊线方向为 summin,否则为 summax.确定完方向后就根据该向场对图像进行二值化。Matlab 程序如下:%二值化指纹识别研究8temp=(1/9)*1 1 1;1 1 1;1 1 1;%模板系数 均值滤波Im=double(I);In=zeros(m,n);for a=2:m-1;for b=2:n-1;In(a,b)=Im(a-1,b-1)*temp(1,1)+Im(a-1,b)*temp(1,2)+Im(a-1,b+1)*temp(1,3)+Im(a,b-1)*temp(2,1)+Im(a,b)*temp(2,2)+I

11、m(a,b+1)*temp(2,3)+Im(a+1,b-1)*temp(3,1)+Im(a+1,b)*temp(3,2)+Im(a+1,b+1)*temp(3,3);endendI=In;Im=zeros(m,n);for x=5:m-5;for y=5:n-5;sum1=I(x,y-4)+I(x,y-2)+I(x,y+2)+I(x,y+4);sum2=I(x-2,y+4)+I(x-1,y+2)+I(x+1,y-2)+I(x+2,y-4);sum3=I(x-2,y+2)+I(x-4,y+4)+I(x+2,y-2)+I(x+4,y-4);sum4=I(x-2,y+1)+I(x-4,y+2)+I(

12、x+2,y-1)+I(x+4,y-2);sum5=I(x-2,y)+I(x-4,y)+I(x+2,y)+I(x+4,y);sum6=I(x-4,y-2)+I(x-2,y-1)+I(x+2,y+1)+I(x+4,y+2);sum7=I(x-4,y-4)+I(x-2,y-2)+I(x+2,y+2)+I(x+4,y+4);sum8=I(x-2,y-4)+I(x-1,y-2)+I(x+1,y+2)+I(x+2,y+4);sumi=sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8;summax=max(sumi);summin=min(sumi);summ=sum(sumi

13、);b=summ/8;if (summax+summin+ 4*I(x,y) (3*summ/8) sumf = summin;elsesumf = summax;endif sumf bIm(x,y)=128;elseIm(x,y)=255;endendend指纹识别研究9for i=1:mfor j =1:nIcc(i,j)=Icc(i,j)*Im(i,j);endendfor i=1:mfor j =1:nif (Icc(i,j)=128)Icc(i,j)=0;elseIcc(i,j)=1;end;endendfigure,imshow(double(Icc);title(二值化 );得

14、到的二值化图像如图 6:图 6 二值化后的图像2.4 图像增强在当前的指纹采集条件下,不可避免的会受到环境,皮肤上的油脂、水分、污渍的影响,使采集到的指纹图像出现纹线粘连、纹线断裂等缺陷,对后续的指纹特征提取带来很大困难。所以我们必须对指纹图像进行图像增强处理,例如分离粘连的纹线,连接断裂的纹线,平滑纹线的边缘等,以保证指纹特征提取的可靠性。实验中进行了初步去除空洞和毛刺的处理,程序如下:u=Icc;m,n=size(u) %去除空洞和毛刺指纹识别研究10for x=2:m-1for y=2:n-1if u(x,y)=0if u(x,y-1)+u(x-1,y)+u(x,y+1)+u(x+1,y

15、)=3u(x,y)=1;endelse u(x,y)=u(x,y);endendendfigure,imshow(u)%title(去除毛刺 )for a=2:m-1for b=2:n-1if u(a,b)=1if abs(u(a,b+1)-u(a-1,b+1)+abs(u(a-1,b+1)-u(a-1,b)+abs(u(a-1,b)-u(a-1,b-1)+abs(u(a-1,b-1)-u(a,b-1)+abs(u(a,b-1)-u(a+1,b-1)+abs(u(a+1,b-1)-u(a+1,b)+abs(u(a+1,b)-u(a+1,b+1)+abs(u(a+1,b+1)-u(a,b+1)=

16、1%寻找端点if (u(a,b+1)+u(a-1,b+1)+u(a-1,b)*(u(a,b-1)+u(a+1,b-1)+u(a+1,b)+(u(a-1,b)+u(a-1,b-1)+u(a,b-1)*(u(a+1,b)+u(a+1,b+1)+u(a,b+1)=0 %去除空洞和毛刺u(a,b)=0;endendendendendfigure,imshow(u)%title(去除空洞 )得到的去除毛刺后的图像和再去除空洞后的图像分别如图 7 和图 8:指纹识别研究11图 7 去除毛刺后的图像 图 8 去除空洞后的图像2.5 图像细化二值化后的纹线仍然具有一定的宽度,因为指纹识别只与纹线的走向有关,所以需要对二值图像进行细化,以减少冗余信息,突出纹线的有效特征,便于后续的特征提取。程序如下:v=u;se=strel(square,3);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号