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

Wednesday, February 19, 2020

Pesawat 2

#include

void Pesawat(int x,int y,float s)
{
    moveto(-1*s+x,0*s+y);
      lineto(1*s+x,0*s+y);
      lineto(1*s+x,5*s+y);
      lineto(-1*s+x,5*s+y);
      lineto(-1*s+x,0*s+y);

      moveto(-3*s+x,1*s+y);
      lineto(3*s+x,1*s+y);
      lineto(3*s+x,2*s+y);
      lineto(-3*s+x,2*s+y);
      lineto(-3*s+x,1*s+y);

      moveto(-2*s+x,4*s+y);
      lineto(2*s+x,4*s+y);
      lineto(2*s+x,5*s+y);
      lineto(-2*s+x,5*s+y);
      lineto(-2*s+ Pesawat(x,y,100);x,4*s+y);
}


main()
{
    int x,y;
    int x1,y1;
    float s;
    s=20;
    x=100;
    y=100;
    x1=40;
    y1 =500;
   initwindow(500,500);
   while(!kbhit())
   {
      cleardevice();
      x=mousex();
      y=mousey();
      Pesawat(x,y,10);
      Pesawat(x1,y1,20);
      y1=y1-10;
      if (y1<0 p="">      {
          y1=500;
          x1=x1+50;
      }


      //xp=mousex();
      //yp=mousey();
      // circle(xp,yp,20);

      // circle(x,y,20);
      // x=x+2;
      // if(x>500)
      // {
      //     x=0;
       //}
       delay(50);
   }
   closegraph();
}

Tuesday, February 18, 2020

VISIKOM S1

materi di sini

Wednesday, February 12, 2020

Pesawat

 #include
 void Pesawat(float x,float y,float s)
 {    line(0*s+x,0*s+y,1*s+x,1*s+y);
       line(1*s+x,1*s+y,0.5*s+x,4*s+y);
       line(0*s+x,4*s+y,0.5*s+x,4*s+y);
       line(0*s+x,4*s+y,1*s+x,4*s+y);
       line(1*s+x,4*s+y,0*s+x,4.5*s+y);
      line(-0*s+x,0*s+y,-1*s+x,1*s+y);
       line(-1*s+x,1*s+y,-0.5*s+x,4*s+y);
       line(-0*s+x,4*s+y,-0.5*s+x,4*s+y);
       line(-0*s+x,4*s+y,-1*s+x,4*s+y);
       line(-1*s+x,4*s+y,-0*s+x,4.5*s+y);
 }
 main()
 {  float  x1,y1,x2,y2,x,y;
     float s;
     s=20; x1=100;  y1=100; x2=200;  y2=100;
  initwindow(300,300);//Inisialisasi Layar Grafik
   while (!kbhit())
   {   cleardevice();
   x=mousex();
   y=mousey();
   Pesawat(x,y,30);
       y1=y1-1;
       y2=y2-2;
       if (y1<0 y1="300;}</p">       if (y2<0 nbsp="" p="" y2="300;">       Pesawat(x1,y1,10);
       Pesawat(x2,y2,20);
       delay(50);
   }
   closegraph();//Menutup Grafik
 }

Tuesday, February 11, 2020

Buku Visi Komputer

Download Di SINI

Monday, February 10, 2020

Read Data Keras

from keras.models import Sequential
from keras.layers import Dense
import numpy as np

import pandas as pd
def ReadData(sf):
  print("Baca file :",sf)
  df = np.array(pd.read_csv(sf,header=None))
  df1 = pd.DataFrame(df)
  return df1.values

def ReadData2(sf,lw):
    print("Baca file :",sf)
    df = np.array(pd.read_csv(sf,header=None))
    y=df[lw:,3:4]
    x=[];
    for i in range(len(df)-lw):
        dm=np.concatenate((df[i:i+lw,0],df[i:i+lw,1],df[i:i+lw,2]))
        x.append(dm)
    x=np.array(x)
 
    return x,y


sf='Data.csv'
X,Y=ReadData2(sf,20)




model = Sequential()
model.add(Dense(1000, input_dim=60, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(X, Y, epochs=500, batch_size=1)


https://www.pyimagesearch.com/2019/02/04/keras-multiple-inputs-and-mixed-data/

https://drive.google.com/open?id=13R-SxdZVdNG_2CAACgGnTJxX1Tz8f8zF

Sunday, February 09, 2020

Grafika

#include
#include
#include
#include
#includep^'=RSTp
#include
#include
#include
#include
using namespace std;
struct TPoint
{ float x;
  float y;};
struct TMatrix
{
    float m[3][3];
};

void DrawLine(TPoint P1,TPoint P2)
{
    float x1,y1,x2,y2;
    x1 = 250+P1.x ;
    y1 =250-P1.y;
    x2 = 250+P2.x ;
    y2 =250-P2.y;
    line(x1,y1,x2,y2);
}
TPoint SetPoint(float x,float y)
{
    TPoint p;
    p.x = x;
    p.y= y;
    return p;
}


float d2r(float sd )
{
    return sd/180*3.1415926535897932384626433832795;
}
TMatrix MatRotasi(float sd)
{
    TMatrix M;
    M.m[0][0]=cos(sd);M.m[0][1]=-sin(sd);M.m[0][2]=0;
    M.m[1][0]=sin(sd);M.m[1][1]=cos(sd);M.m[1][2]=0;
    M.m[2][0]=0;M.m[2][1]=0;M.m[2][2]=1;
    return M;
}


TMatrix MatSkala(float Sx,float Sy)
{
    TMatrix M;
    M.m[0][0]=Sx;M.m[0][1]=0;M.m[0][2]=0;
    M.m[1][0]=0;M.m[1][1]=Sy;M.m[1][2]=0;
    M.m[2][0]=0;M.m[2][1]=0;M.m[2][2]=1;
    return M;
}

TMatrix MatTranslasi(float Dx,float Dy)
{
    TMatrix M;
    M.m[0][0]=1;M.m[0][1]=0;M.m[0][2]=Dx;
    M.m[1][0]=0;M.m[1][1]=1;M.m[1][2]=Dy;
    M.m[2][0]=0;M.m[2][1]=0;M.m[2][2]=1;
    return M;
}

TMatrix MatKali(TMatrix A, TMatrix B)
{
    TMatrix C;
    int i,j,k;
    for (i=0;i<=2;i++)
    {
        for (j=0;j<=2;j++)
        {
            C.m[i][j]=0;
            for (k=0;k<=2;k++)
            {
                C.m[i][j]=C.m[i][j]+A.m[i][k]*B.m[k][j];
            }
        }
    }

    return C;
}

TPoint Transformasi(TMatrix  M, TPoint Pi)
{
    TPoint Po;
    Po.x=M.m[0][0]*Pi.x+M.m[0][1]*Pi.y+M.m[0][2];
    Po.y=M.m[1][0]*Pi.x+M.m[1][1]*Pi.y+M.m[1][2];
    return Po;

}



void Kotak(TMatrix m)
{
    int i;
    TPoint p[5],p1,p2;
    p[0]=SetPoint(-100,-100);
    p[1]=SetPoint(100,-100);
    p[2]=SetPoint(100,100);
    p[3]=SetPoint(-100,100);
    p[4]=SetPoint(-100,-100);
    for (i = 0;i<4 i="" p="">    {
        p1 = Transformasi(m,p[i]);
        p2 = Transformasi(m,p[i+1]);
        DrawLine(p1,p2);

    }

}

float sd;
int main()
{
    TMatrix m;

     initwindow(500,500);
    do
    {
        cleardevice();
         m=MatSkala(1,1);
    m=MatKali(MatRotasi(d2r(sd)),MatSkala(1,1));
sd =sd+2;
       Kotak(m);

        delay(100);

    }while(!kbhit());
    return 0;
}