2022年Matlab指纹识别 .pdf

上传人:C****o 文档编号:32527063 上传时间:2022-08-09 格式:PDF 页数:23 大小:1.12MB
返回 下载 相关 举报
2022年Matlab指纹识别 .pdf_第1页
第1页 / 共23页
2022年Matlab指纹识别 .pdf_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《2022年Matlab指纹识别 .pdf》由会员分享,可在线阅读,更多相关《2022年Matlab指纹识别 .pdf(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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

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

3、件等方面的强大保障,同时又有指纹识别自身的诸多优点,相信指纹识别技术一定会有更加美好的发展前景。摘要:随着生物识别技术的不断发展,人们发现每个人的指纹具有唯一性和不变性。 因此指纹识别技术逐步发展为一种新的身份识别方式, 并且凭借其良好的安全可靠性,大有取代传统身份识别方式的趋势。本文简要介绍了指纹识别的基本步骤,分别是指纹图像预处理、指纹特征提取、指纹匹配。在图像预处理中,依次介绍了规格化处理、图像增强、二值化处理和细化处理的方法。预处理后名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -

4、 第 1 页,共 23 页 - - - - - - - - - 指纹识别研究2 将得到一幅宽度为一个像素的细化二值图像,然后通过特定的端点和交叉点的特征进行指纹匹配。实验表明,该方法效果良好。论文中采用 Matlab 编程实现全部算法。关键词 :指纹识别,图像处理,特征提取,特征匹配1引言传统的身份识别技术包括基于密码的身份识别技术和基于令牌的身份识别技术。但是这两种方式都存在着一定的安全风险:令牌容易丢失, 密码容易忘记, 且它们都容易被窃取或冒充。 近年来, 依赖人体特征的新型身份识别技术正在兴起,凭借其唯一且不变的特点,生物识别技术逐步成为人们研究的热点。而在生物识别技术中,指纹识别技术

5、已经被广泛的研究和应用。它的基本原理框图如图一所示。图 1 指纹识别的基本原理框图2指纹图像预处理2.1 图像规格化受采集设备参数和环境的影响,采集到的指纹图像可能总体对比度较差。图像归一化的作用就是使所有指纹图像具有相同的灰度均值和方差,从而将每一幅图像的灰度调整到统一的范围,方便后续处理。归一化的算法是:(1)先计算图像的平均值和方差。这部分工作主要通过统计图像中各点像素值得到该图像的直方图,然后利用直方图来计算指纹图像的相关指标。11001( )( , )HWijM II i jWH112001( )( ( , )( )HWijVar II i jM IWH(2)指定期望经过处理后的图像

6、均值和方差,计算归一化后的图像G。200200( ( , )( ), ( , )( , )( ( , )( ),VarI i jM IMI i jMVarG i jVarI i jM IMothersVar图像规格化的Matlab 程序如下(其中方差取Var0=2000,M0=150) :% 归一化M=0;var=0;for x=1:m指纹采集指纹图像预处理特征点提取特征点匹配输出显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - -

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

8、图 2 原始指纹图像图 3 规格化后的指纹图像2.2 图像分割指纹图像通常包括纹线区域和周边的无用区域。如果保留这些无用区域,会致使计算冗名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - 指纹识别研究4 余度增加。 为此要先将其从待处理区域中去除。通常用的分离方法有像素领域特征的方法和基于像素分布概率的方法等。本文采取对各像素邻域特征进行分析,然后分割图像算法。吧图像分成T*T 的非重叠块, 计算每一块的灰度均值M 和方差 Va

9、r,通过下列条件区分前景与背景:(1)如果 MM1 且 VarVar1,则认为背景(2)如果 M=Var1,则认为前景,否则待定;(3)对所有分块划分完毕后,在对待定块进行判决。如果在8 邻域中,背景景小于等于 4 则认为是前景,否则是背景在编程过程中通过几次调试后对图像进行3*3 分块处理Matlab 程序如下:% 分割M =3; %3*3 H = 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-

10、1)*M,j+(y-1)*M)+aveg;endend aveg1(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).2+var;endend var1(x,y)=var/(M*M);endendGmean=0;Vmean=0;for x=1:Hfor y=1:L Gmean=Gmean+aveg1(x,y); Vmean=Vmean+var1(x,y); endendGmean1=Gmean/(H*L);% 所有块的平均值名师资料总结 - - -精品资料欢迎下载 -

11、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - 指纹识别研究5 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 Vmean1var1(x,y) vtemp=vtemp+1; vtotle=vtotle+var1(x,y);endend

12、endG1=gtotle/gtemp;V1=vtotle/vtemp; gtemp1=0;gtotle1=0;vtotle1=0;vtemp1=0;for x=1:Hfor y=1:Lif G1aveg1(x,y) gtemp1=gtemp1-1; gtotle1=gtotle1+aveg1(x,y);endif 0var1(x,y)G2 & var1(x,y)V2 e(x,y)=1;endif aveg1(x,y) G1-100 & var1(x,y) V2 e(x,y)=1;endendend名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

13、- - - - 名师精心整理 - - - - - - - 第 5 页,共 23 页 - - - - - - - - - 指纹识别研究6 for x=2:H-1for y=2:L-1if e(x,y)=1if e(x-1,y) + e(x-1,y+1) +e(x,y+1) + e(x+1,y+1) + e(x+1,y) + e(x+1,y-1) + e(x,y-1) + e(x-1,y-1) (3*summ/8),则该像素点的脊线方向为summin,否则为 summax. 确定完方向后就根据该向场对图像进行二值化。Matlab 程序如下:%二值化 temp=(1/9)*1 1 1;1 1 1;1

14、 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)+Im(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;f

15、or 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(x+2,y-1)+I(x+4,y-2);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - -

16、- - - - - - 指纹识别研究8 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=s

17、um(sumi); b=summ/8;if (summax+summin+ 4*I(x,y) (3*summ/8) sumf = summin;else sumf = summax;endif sumf b Im(x,y)=128;else Im(x,y)=255;endendendfor i=1:mfor j =1:n Icc(i,j)=Icc(i,j)*Im(i,j);endendfor i=1:mfor j =1:nif (Icc(i,j)=128) Icc(i,j)=0;else Icc(i,j)=1;end ;endendfigure,imshow(double(Icc);title

18、( 二值化 );得到的二值化图像如图6:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23 页 - - - - - - - - - 指纹识别研究9 图 6 二值化后的图像2.4 图像增强在当前的指纹采集条件下,不可避免的会受到环境,皮肤上的油脂、 水分、污渍的影响,使采集到的指纹图像出现纹线粘连、纹线断裂等缺陷, 对后续的指纹特征提取带来很大困难。所以我们必须对指纹图像进行图像增强处理,例如分离粘连的纹线,连接断裂的纹线,平滑纹线的边缘等,以保证指纹特征提取的可靠性。实

19、验中进行了初步去除空洞和毛刺的处理,程序如下:u=Icc;m,n=size(u) % 去除空洞和毛刺for 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)=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)=1ifabs(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)+a

20、bs(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名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 23 页 - - - - - - - - - 指纹识别研究10 )-u(a+1,b)+abs(u(a+1,b)-u(a+1,b+1)+abs(u(a+1,b+1)-u(a,b+1)=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+

21、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:图 7 去除毛刺后的图像图 8 去除空洞后的图像2.5 图像细化二值化后的纹线仍然具有一定的宽度,因为指纹识别只与纹线的走向有关,所以需要对二值图像进行细化,以减少冗余信息,突出纹线的有效特征,便于后续的特征提取。程序如下:v=u;se=strel(square,3);fo=im

22、open(v,se);v=imclose(fo,se); % 对图像进行开操作和闭操作w=bwmorph(v,thin,Inf);%对图像进行细化名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 23 页 - - - - - - - - - 指纹识别研究11 figure,imshow(w)title( 细化图 )得到的图像如图9:图 9 细化后的图像3特征点提取3.1 找出所有的端点和交叉点因为特征点必然是从端点和交叉点里找出,所以在得到细化的图像后,我们首先要找出所有

23、的端点和交叉点。首先对通过定义函数P .m 对图像中每个点的8 邻域位置进行坐标定义,方便后续编程。P .m 程序如下:%-Sub functions-function j = P (img, x, y, i)% get pixel value based on chart:% 4 | 3 | 2% 5 | | 1% 6 | 7 | 8switch (i)case 1, 9 j = img(x+1, y);case 2 j = img(x + 1, y-1);case 3 j = img(x, y - 1);case 4名师资料总结 - - -精品资料欢迎下载 - - - - - - - -

24、- - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - 指纹识别研究12 j = img(x - 1, y - 1);case 5 j = img(x - 1, y);case 6 j = img(x - 1, y + 1);case 7 j = img(x, y + 1);case 8 j = img(x + 1, y + 1);end然后定义函数point.m 来找出细化后图像的所有端点。将一个点的8 个邻域依次两两相减并取绝对值,并将所有结果相加,从细化图像的特征来说,和为2 时为端点,和为6 时为

25、交叉点。程序如下:function txy=point(thin)count = 1;txy(count, :) = 0,0,0;siz=min(size(thin,1),size(thin,2);for x=40:siz - 40for y=40:siz - 40if (thin(y, x) ) CN = 0;for i = 1:8 CN = CN + abs (P(thin, y, x, i) - P(thin, y, x, i + 1);endif (CN = 2) txy(count, :) = x, y,2; count = count + 1;endif (CN = 6) txy(

26、count, :) = x, y,6; count = count + 1;endendendendfor i=1:count - 1 x(i) =txy(i, 1); y(i)= txy(i, 2);endimshow(double(thin);hold on ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - - - - - - - - 指纹识别研究13 plot(x,y,.);运行完程序后,将所有的端点和交叉点全部找出。定义的数组txy 第一项为横

27、坐标,第二项为纵坐标,第三项为2 或 6(2 为端点、 6 为交叉点)。得到的标出端点和交叉点的图像如图10:图 10 标出端点和交叉点的细化图像3.2 纹线光滑处理在指纹图像预处理中,已经对指纹图像进行过去除毛刺和空洞的处理。这里通过定义函数 guanghua.m 进一步对细化后的图像进行光滑处理。基本原理为:找到每个端点,使其沿着纹线的方向移动5 个像素, 如果在 5 个像素之内遇到交叉点,则认为此端点为毛刺,去除此点。guanghua.m 程序如下:function w=guanghua(thin,txy)for j=1:5 txy=point(thin); pxy=txy(find(t

28、xy(:,3)=2),:); n=size(pxy,1);for i=1:n error=0; error=walk(thin,pxy(i,1),pxy(i,2),5);if error=1 thin(pxy(i,2),pxy(i,1)=0;endendendw=thin;imshow(w);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 23 页 - - - - - - - - - 指纹识别研究14 光滑后的图像如图11 所示:图 11 光滑后的图像光滑完后需再次执行

29、point 函数来画出新的端点,如下图所示:图 12 光滑后标出端点和特征点的图像3.3 去除图像边缘的端点可以看出, 在指纹图像的边缘,由于采集仪器的关系,不可避免的多出很多端点,一方面增加了后续工作量,另一方面还可能产生错误,所以有必要将这些边缘的端点去除。本实验中设计了cut 函数来进行处理。函数如下:function txy=cut(thin,txy)s(8,8)=0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 23 页 - - - - - - - - -

30、指纹识别研究15 delta(8,8)=0;n=size(txy,1);for i=1:8for j=1:8 mpi,j=thin(1+31*(i-1):31+31*(i-1),1+31*(j-1):31+31*(j-1); s(i,j)=sum(sum(mpi,j)/(31*31); mpi,j=(mpi,j-s(i,j).2; delta(i,j)=sum(sum(mpi,j);if delta(i,j)=1+31*(i-1)&txy(k,1)=1+31*(j-1)&txy(k,2)r);pxy2=txy(c,:);pxy2=pxy2(find(pxy2(:,3)=2),:);t=size

31、(pxy2,1);if t=0 error=1else plot(x,y,b.); hold on plot(pxy2(:,1),pxy2(:,2),r.);end比如在执行 pxy2,error=single_point(txy,20) 后,会显示出下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - 指纹识别研究17 图 14 执行 single-point 函数后 Matlab 的显示情况由运行结果可知,有3 个端点满

32、足周围半径为20 个像素的圆内没有任何端点和交叉点的条件。这三个点在下图中用红点标出。图 15 满足条件的特征点3.4.2 walk 函数在此,我们还定义了一个walk 函数,用于进一步找出特征点,它的作用是判断离某一端点 num 距离是否有另一端点。函数如下:function error,a,b=walk(thin,x0,y0,num)error=0;thin(y0,x0)=0;t1=0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - - - - -

33、 - - - 指纹识别研究18 for n=1:numif error=1break;else x=x0; y=y0;for x=x0-1:x0+1if error=1break;elsefor y=y0-1:y0+1 t1=sum(sum(thin(y0-1:y0+1,x0-1:x0+1);if (t1=0|t1=2) error=1; a=x0; b=y0;break;elseif (thin(y,x)=1&(x-x0)2+(y-y0)2=0)if (t1=2 ) error=1;break ;else thin(y,x)=0; x0=x; y0=y; a=x0; b=y0; plot(x

34、0,y0,r.)endendendendendendendend3.4.3 last1 函数综合以上两个找特征点的函数,可以设计一个新的last1函数。通过执行pxy3,error2=last1(thin,r,txy,num) 可以找出周围半径为r个像素的圆内没有任何端点或交叉点,并且沿纹线走 num个像素内没有另一个端点或交叉点的端点。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 23 页 - - - - - - - - - 指纹识别研究19 程序如下所示:func

35、tion pxy3,error2=last1(thin,r,txy,num)error=0;pxy2,error=single_point(txy,r);n=size(pxy2,1);l=1;error2=0;for i=1:n error,a,b=walk(thin,pxy2(i,1),pxy2(i,2),num);if error=1 pxy3(l,1)= pxy2(i,1); pxy3(l,2)= pxy2(i,2); pxy3(l,3)= pxy2(i,3); l=l+1; error2=0; plot(pxy2(i,1) ,pxy2(i,2),r+); endend得到的 Matla

36、b运行结果显示为:图16 last1函数的运行结果得到的图像如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 23 页 - - - - - - - - - 指纹识别研究20 图17 执行 last1函数后指纹图像的显示其中红色的端点为满足single_point 函数的端点, 红色的纹线为沿上述端点走一定距离后的纹线,一部分可以一直走到规定距离(这些即是要找的特征点),还有一部分走到端点或叉点停止。至此,每幅指纹图像的特征点均可找出。4特征点匹配4.1 纹线长度匹配

37、上面, 我们已经可以找出每幅指纹图像的特征点,并画出一段纹线。下面就是匹配的问题了。在此,我们设置了三层匹配。首先是纹线长度匹配。对于上面找出的特征点和纹线,每沿着纹线走5 个像素测量一下到原始端点的距离。由distance 函数得到。function d=distance(x0,y0,num,thin)num2=fix(num/5);for i=1:num2 error,a,b=walk(thin,x0,y0,5*i);if error=1 d(i)=sqrt(a-x0)2+(b-y0)2);elsebreak;endend最后会得到一个装有长度信息的数组。试想如果两幅指纹图中的指纹是一样的

38、,则它们会包含相同的特征点和从这个特征点出发画出的纹线,则这两个长度数组对应位置的比例应基本相等 (考虑到老师所给的24幅指纹图像大小相同,这个比例应近似为1) ;最终的函数中定义了一个数 f=(sum(abs(d1./d2)-1) ,所以 f值越接近于 0,这两幅图像的匹配度越高。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 23 页 - - - - - - - - - 指纹识别研究21 4.2 三角形边长匹配找到一个特征点后, 可以找出距离其最近的2 个端点或交叉

39、点, 与原特征点构成三角形,若两幅图像的三角形边长比例相等(本实验中都为1) ,则说明这两幅图像匹配。其中,找到距离最近的端点的函数find_point 如下所示:function pxy=find_point(x0,y0,txy,num)x=txy(:,1);y=txy(:,2);n=length(x);l(1,n)=0;lnn=1;pxy(num,:)=0,0,0;for i=1:n l(i)=sqrt(x(i)-x0)2+(y(i)-y0)2);endll=sort(l);for i=1:numxiao=ll(i+lnn);nn=find(l=xiao);lnn=length(nn);

40、pxy(i,:)=x(nn(1),y(nn(1),txy(nn(1),3);endplot(x0,y0,bo);x0;y0;hold onplot(pxy(:,1),pxy(:,2),ro);在最终程序中定义了一个数ff=(sum(abs(dd1./dd2)-1) ,所以 ff值越接近于 0,这两幅图像的匹配度越高。4.3 点类型匹配找到一个特征点后,在其周围找到 40个端点或交叉点, 统计这 40个点中端点和交叉点的个数。 若两幅图中端点占的比例近似相同,则两幅图像相匹配。在最终函数中定义了一个数fff=abs(f11-f21)/(f11+f12) ,所以 fff值越接近于 0,这两幅图像的

41、匹配度越高。最终程序如下(里面调用到前面一些函数):close all;ticclear;thin1=tuxiangyuchuli(zhiwen8.bmp);thin2=tuxiangyuchuli(zhiwen9.bmp);figure;txy1=point(thin1);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - 指纹识别研究22 txy2=point(thin2);w1,txy1=guanghua(thin1,tx

42、y1);w2,txy2=guanghua(thin2,txy2);thin1=w1;thin2=w2;txy1=cut(thin1,txy1);txy2=cut(thin2,txy2);pxy31,error2=last1(thin1,8,txy1,60)pxy32,error2=last1(thin2,8,txy2,60)error=1; num=20;cxy1=pxy31; cxy2=pxy32; d1=distance(cxy1(1,1),cxy1(1,2),num,thin1); d2=distance(cxy2(1,1),cxy2(1,2),num,thin2); f=(sum(ab

43、s(d1./d2)-1);if f=0.5 error=0;else error=1;end f c11=find_point(cxy1(1,1),cxy1(1,2),txy1,1); c12=find_point(cxy1(1,1),cxy1(1,2),txy1,2); c21=find_point(cxy2(1,1),cxy2(1,2),txy2,1); c22=find_point(cxy2(1,1),cxy2(1,2),txy2,2); cxy1(2,:)=c11; cxy1(3,:)=c12(2,:); cxy2(2,:)=c21; cxy2(3,:)=c22(2,:); x11=c

44、xy1(1,1); y11=cxy1(1,2); x12=cxy1(2,1); y12=cxy1(2,2); x13=cxy1(3,1); y13=cxy1(3,2); x21=cxy2(1,1); y21=cxy2(1,2); x22=cxy2(2,1); y22=cxy2(2,2); x23=cxy2(3,1); y23=cxy2(3,2); dd1(1)=juli(x11,y11,x12,y12); dd1(2)=juli(x12,y12,x13,y13); dd1(3)=juli(x13,y13,x11,y11); dd2(1)=juli(x21,y21,x22,y22); dd2(2

45、)=juli(x22,y22,x23,y23); dd2(3)=juli(x23,y23,x21,y21);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - 指纹识别研究23 ff=(sum(abs(dd1./dd2)-1)if ff=1 error=0;else error=1;end cxy1(2:41,:)=find_point(pxy31(1,1),pxy31(1,2),txy1,40); cxy2(2:41,:)=f

46、ind_point(pxy32(1,1),pxy32(1,2),txy2,40); f11=length(find(cxy1(:,3)=2); f12=length(find(cxy1(:,3)=6); f21=length(find(cxy2(:,3)=2); f22=length(find(cxy2(:,3)=6); fff=abs(f11-f21)/(f11+f12) toc5实验结果本实验中, 取 r=8,num=60,经过反复试验, 可以得到 f 的阈值为0.5,ff 的阈值为1.5,fff 的阈值为0.2。即三幅图像的f,ff,fff 若均小于阈值,则两幅图匹配,显示出MATCH。若三个值中有至少一个值大于阈值,则不匹配,显示出NOT MATCH 。实验中我们进行了数次匹配(每次匹配大概需要70 秒) ,下面列出两组结果:zhiwen8 和 zhiwen7:f=0.3525;ff=0.6803 ;fff=0.1463 。所以匹配。Zhiwen8 和 zhiwen1:f=0.1389;ff=1.5441 ;fff=0.2927 。所以不匹配。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 23 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com