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

2018-11-24 17:30

是悲伤的,所有的日子,无论是轻松的抑或是沉重的,都将成为我此生重要的财富,将作为一份最珍贵的回忆永远留在我的心中。

赵丽辉 2014年5月17日

31

附见1 指纹图像预处理函数代码

function [G,g1,g2,g3,g4]= zhiwenyuchuli(I1) I1=imread(I1); I=rgb2gray(I1); M=0; var=0;

[m n ]=size(I); for x=1:m for y=1:n

M=M+double(I(x,y)); end end

M1=M/(m*n); for x=1:m for y=1:n

var=var+(double(I(x,y))-M1).^2; end end

var1=var/(m*n); for x=1:m for y=1:n if I(x,y)>=M1

I(x,y)=150+sqrt(2000*(double(I(x,y))-double(M1))/double(var1)); else

I(x,y)=150-sqrt(2000*(double(M1)-double(I(x,y)))/double(var1)); end end end g1=I;

%***************************************************************************** 分割

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;

32

for i=1:M

for j=1:M

aveg=I(i+(x-1)*M,j+(y-1)*M)+aveg; end end

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; end end

var1(x,y)=var/(M*M); end end

Gmean=0;Vmean=0; for x=1:H for y=1:L

Gmean=Gmean+aveg1(x,y); Vmean=Vmean+var1(x,y); end end

Gmean1=Gmean/(H*L);%所有块的平均值 Vmean1=Vmean/(H*L);%所有块的方差 gtemp=0;gtotle=0;vtotle=0;vtemp=0; for x=1:H for y=1:L

if Gmean1>aveg1(x,y) gtemp=gtemp+1;

gtotle=gtotle+aveg1(x,y); end

if Vmean1

vtotle=vtotle+var1(x,y); end end end

G1=gtotle/gtemp;V1=vtotle/vtemp; gtemp1=0;gtotle1=0;vtotle1=0;vtemp1=0; for x=1:H for y=1:L

if G1

gtotle1=gtotle1+aveg1(x,y);

33

end

if 0

vtotle1=vtotle1+var1(x,y); end end end

G2=gtotle1/gtemp1;V2=vtotle1/vtemp1; e=zeros(H,L); for x=1:H for y=1:L

if aveg1(x,y)>G2 && var1(x,y)

if aveg1(x,y)< G1-100 && var1(x,y)< V2 e(x,y)=1; end end end for x=2:H-1 for y=2:L-1 if e(x,y)==1

if 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) <=4 e(x,y)=0; end end end end

Icc = ones(m,n); for x=1:H for y=1:L if e(x,y)==1 for i=1:M for j=1:M

I(i+(x-1)*M,j+(y-1)*M)=G1; Icc(i+(x-1)*M,j+(y-1)*M)=0; end end end end end g2=I;

%********************************************************************

34

********* 二值化

temp=(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)+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); end end I=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(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); b=summ/8;

if (summax+summin+ 4*I(x,y))> (3*summ/8) sumf = summin; else

sumf =summax; end

if sumf > b Im(x,y)=128; else

Im(x,y)=255; end end end

for i=1:m

35


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

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

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

马上注册会员

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