Thursday, March 12, 2020

finger print 2

im=double(rgb2gray(imread('biometrik3.jpg')))/255;
[b c]=size(im);
m=sum(sum(im))/(b*c);
v = sum(sum((im-m).*(im-m)))/(b*c);
m0=0.5;
v0=v*0.1;
T=zeros(b,c);

for i=1:b
    for j=1:c
        if im(i,j)>m
            T(i,j) =m0+(v0/v*(im(i,j)-m).^2).^0.5;
        else
             T(i,j) =m0-(v0/v*(im(i,j)-m).^2).^0.5;
        end
    end
end
figure(1),imshow(im)
figure(2),imshow(T)
w=20;
nb=b/w;
mb=zeros(nb,nb);
vb=zeros(nb,nb);

for i=1:nb
    for j=1:nb
        g=im((i-1)*w+1:(i-1)*w+w,(j-1)*w+1:(j-1)*w+w);
        mb(i,j)=sum(sum(g));
        vb(i,j)=sum(sum((g-mb(i,j)).^2))/(w*w); 
    end
end

Gmean=sum(sum(mb))/(nb*nb);
Vmean=sum(sum(vb))/(nb*nb);
NGFrg=sum(sum(mb>Gmean));
TGFrg=sum(sum(mb(mb>Gmean)));
GFrg=TGFrg/NGFrg

NVFrg=sum(sum(vb>Vmean));
TVFrg=sum(sum(vb(vb>Vmean)));
VFrg=TGFrg/NGFrg


NGBkg=sum(sum(mb<=Gmean));
TGBkg=sum(sum(mb(mb<=Gmean)));
GBkg=TGBkg/NGBkg

NVBkg=sum(sum(vb<=Vmean));
TVBkg=sum(sum(vb(vb<=Vmean)));
VBkg=TVBkg/NVBkg
mm=mb>GFrg
vv=vb>VFrg

gg =mm&vv

gg=not(gg)
im2 =im;
for i = 1:nb
    for j=1:nb
        if gg(i,j)==0
            im2((i-1)*w+1:(i-1)*w+w,(j-1)*w+1:(j-1)*w+w)=0;
        end
    end
   
end
figure(10);imshow(im2)
mskx=[0 0 0;-1 0 1;0 0 0];
Gx = conv2(im2,mskx,'same')/2;
msky=[ 0 -1 0;0 0 0;0 1 0];
Gy = conv2(im2,msky,'same')/2;
c=complex(Gx,Gy);
Gms=zeros(nb,nb);
for i = 1:nb
    for j = 1:nb
        cb= c((i-1)*w+1:(i-1)*w+w,(j-1)*w+1:(j-1)*w+w);
       
        Gms(i,j)= sum(sum(cb));
    end
end
Gmsx=real(Gms);
Gmsy=imag(Gms);
Teta=zeros(nb,nb);
[bb cc]=find(Gmsx>=0);
Teta(bb,cc)= 0.5*pi+0.5*atan(Gmsy(bb,cc)./Gmsx(bb,cc));
[bb cc]=find(Gmsx<0 amp="" msy="">=0);
Teta(bb,cc)= 0.5*pi+0.5*atan(Gmsy(bb,cc)./Gmsx(bb,cc))+pi;
[bb cc]=find(Gmsx<0 amp="" msy="" p="">Teta(bb,cc)= 0.5*pi+0.5*atan(Gmsy(bb,cc)./Gmsx(bb,cc))-pi;


figure(10);imshow(im2)

hold on



for i =1 : nb
    for j =1:nb
        y0 = (i-1)*w + w/2;
        x0 = (j-1)*w + w/2;
        y1 = (i-1)*w + w/2+w/2*sin(Teta(i,j));
        x1 = (j-1)*w + w/2+w/2*cos(Teta(i,j));;
        x=[x0 x1];
        y=[y0 y1];
        plot(x,y,'b','LineWidth',1);
    end
end
hold off

Thursday, March 05, 2020

Align

download di sini

Wednesday, March 04, 2020

fingerprint 1

im=double(rgb2gray(imread('biometrik2.png')))/255;
[b c] = size(im);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% M=0;
% for (i=1:b)
%     for (j=1:c)
%         M=M+im(i,j);
%     end
% end
% M=M/(b*c);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M=sum(sum(im))/(b*c);       
V=sum(sum((im-M).^2))/(b*c);
M0=0.3;
V0=V/5;
T=[];
for (i=1:b)
    for (j=1:c)
        if im(i,j)>M
            T(i,j) = M0+(V0/V*(im(i,j)-M)^2)^0.5;
        else
            T(i,j) = M0-(V0/V*(im(i,j)-M)^2)^0.5;
        end
    end
end


figure(1);imshow(im);
figure(2);imshow(T);
w=15;
nmax=b/w;
mmax=c/w;
mb=[];
vb=[];
for m =1:nmax
    for n =1:mmax
        ib= im((m-1)*w+1:(m-1)*w+w,(n-1)*w+1:(n-1)*w+w);
        mb(m,n)= sum(sum(ib))/(w*w);
        vb(m,n) = sum(sum((ib-mb(m,n)).^2))/(w*w);
    end
end
GM=sum(sum(mb))/(nmax*mmax);
VM=sum(sum(vb))/(nmax*mmax);
GFRG=sum(mb(mb>GM))/length(mb>GM);
VFRG=sum(vb(vb>VM))/length(vb>VM);
GBKG=sum(mb(mb<=GM))/length(mb<=GM);
VBKG=sum(vb(vb<=VM))/length(vb<=VM);

for i =1:nmax
    for j=1:mmax
        if ((mb(i,j)        im((m-1)*w+1:(m-1)*w+w,(n-1)*w+1:(n-1)*w+w)=0;
       
        end
    end
end
figure(100)
imshow(im)

Monday, March 02, 2020

Fourier

download disini