www.gusucode.com > 指纹识别源代码 > 指纹识别源代码/指纹识别的matlab源码/sector_norm.m
function [disk,vector] = sector_norm( image , mode ) % Modified by Luigi Rosa global immagine n_bands h_bands n_arcs h_radius h_lato n_sectors matrice % N=175 size of cropped image (175 x 175) N=h_lato; % Number of sectors M=n_sectors+2; size_m=N*N; mean_s=zeros(M,1); varn_s=zeros(M,1); num_s=zeros(M,1); image1=zeros(h_lato); Mo=100; Vo=100; %-------------- ------------------------------- ----------------- ----------- %---------------------------- MODE 0 ------------------------------------- if mode==0 for ( i=1:1:size_m) %tmp=whichsector(i); tmp=matrice(i); tmp=tmp+1; mean_s(tmp)= mean_s(tmp)+image(i); num_s(tmp)=num_s(tmp)+1; end for (i=1:1:M) mean_s(i)=mean_s(i)/num_s(i); end for ( i=1:1:size_m) tmp=matrice(i); %tmp=whichsector(i); tmp=tmp+1; varn_s(tmp)= varn_s(tmp) + (image(i)- mean_s(tmp))^2; end for (i=1:1:M) varn_s(i)= varn_s(i) / num_s(i); end for ( i=1:1:size_m) tmp=matrice(i); %tmp=whichsector(i); tmp=tmp+1; if (abs(varn_s(tmp))>1) if ((image(i) - mean_s(tmp))<0) image1(i)=Mo - (Vo/varn_s(tmp)*((image(i) - mean_s(tmp))^2))^0.5; else image1(i)=Mo + (Vo/varn_s(tmp)*((image(i) - mean_s(tmp))^2))^0.5; end else image1(i)=Mo; end end disk=image1; vector=varn_s; end %-------------- ------------------------------- ----------------- ----------- %---------------------------- MODE 1 ------------------------------------- if mode==1 for ( i=1:1:size_m) %tmp=whichsector(i); tmp=matrice(i); tmp=tmp+1; mean_s(tmp)= mean_s(tmp)+image(i); num_s(tmp)=num_s(tmp)+1; end for (i=1:1:M) mean_s(i)=mean_s(i)/num_s(i); end for ( i=1:1:size_m) tmp=matrice(i); %tmp=whichsector(i); tmp=tmp+1; varn_s(tmp)= varn_s(tmp) + (image(i)- mean_s(tmp))^2; end for (i=1:1:M) varn_s(i)= varn_s(i) / num_s(i); end for (i=1:1:size_m) tmp=matrice(i); %tmp=whichsector(i); tmp=tmp+1; image1(i)=varn_s(tmp); end vettore=zeros(M,1); for ( i=1:1:size_m) tmp=matrice(i); %tmp=whichsector(i); tmp=tmp+1; vettore(tmp)= vettore(tmp) + abs(image(i)- mean_s(tmp)); end for (i=1:1:M) vettore(i)=vettore(i)/num_s(i); end disk=image1; vector=vettore; end