数字图像处理在指纹识别中的应用本科毕业设计(8)

2018-11-24 17:30

for j =1:n

Icc(i,j)=Icc(i,j)*Im(i,j); end end

for i=1:m for j =1:n

if (Icc(i,j)==128) Icc(i,j)=0; else

Icc(i,j)=1; end; end end g3=Icc;

%***************************************************************************** %去空洞和毛刺 u=Icc;

[m,n]=size(u); %去空洞和毛刺 for x=2:m-1 for y=2:n-1 if u(x,y)==0

if u(x,y-1)+u(x-1,y)+u(x,y+1)+u(x+1,y)>=3 u(x,y)=1; end

else u(x,y)=u(x,y); end end end

for a=2:m-1 for b=2:n-1 if u(a,b)==1 if

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))~=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; end end

36

end end end g4=u;

%***************************************************************************** %细化 v=~u;

se=strel('square',3); fo=imopen(v,se);

v=imclose(fo,se); %对图像进行开操作和闭操作 w=bwmorph(v,'thin',Inf);%对图像进行细化 G=w; end

37

附件2 指纹匹配函数代码

1.特征匹配

(1)zhiewnpipei1()函数

function [ error ] = zhiwenpipei1( pxy31,pxy32,thin1,thin2,txy1,txy2) 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(abs((d1./d2)-1))); if f<=0.05 error1=0; else

error1=1; end

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=cxy1(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)=juli(x22,y22,x23,y23); dd2(3)=juli(x23,y23,x21,y21); ff=(sum(abs((dd1./dd2)-1))); if ff<=0.05 error2=0; else error2=1; end

cxy1(2:41,:)=find_point(pxy31(1,1),pxy31(1,2),txy1,40);

38

cxy2(2:41,:)=find_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); if fff<=0.05 error3=0; else

error3=1; end

if(error1==0&&error2==0&&error3==0) error=0; else error=1; end end

(2)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); else break; end end

(3)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); end

ll=sort(l); for i=1:num xiao=ll(i+lnn);

39

nn=find(l==xiao); lnn=length(nn);

pxy(i,:)=[x(nn(1)),y(nn(1)),txy(nn(1),3)]; end

(4)juli()函数

function [d] = juli(x1,y1,x2,y2 ) d=sqrt((abs(x1-x2)).^2+(abs(y1-y2)).^2); end

2.特征点提取及找特征点函数 (1)tezhengdiantiqu()函数

function [G2,txy,pxy] = tezhengdiantiqu( thin ) [m n]=size(thin); txy=point(thin);

[w,txy]=guanghua(thin,txy); thin1=w; G2=thin1;

txy=cut(thin1,txy);

[pxy,error2]=last1(thin1,8,txy,20); end

(2)point()函数

function txy=point(thin) count = 1;

txy(count, :) = [0,0,0];

siz=min(size(thin,1),size(thin,2)); for x=40:siz - 40 for y=40:siz - 40 if (thin(y, x) ) CN = 0; for i = 1:8

CN = CN + abs (P(thin, y, x, i) - P(thin, y, x, i + 1)); end if (CN == 2)

txy(count, :) = [x, y,2]; count = count + 1; end

if (CN == 6)

txy(count, :) = [x, y,6]; count = count + 1; end end end end

for i=1:count - 1 x(i) =txy(i, 1);

40


数字图像处理在指纹识别中的应用本科毕业设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:直线、平面垂直的判定及其性质一课一练2(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: