import numpy as np
import funciones
import matplotlib.pyplot as plt
from scipy import linalg
from scipy import misc
%matplotlib inline
A2=np.array([[1,2,3,4,5,0,0,0],[7,8,9,10,11,0,0,0],[7,80,9,100,11,0,0,0],[1,20,3,40,5,0,0,0],[7,80,900,100,11,0,0,0],[1,20,300,40,5,0,0,0]]).T
Nvec2=np.array([2,2,2])
G2=funciones.getG(A2,Nvec2)
x2=A2[:,5]
print x2.shape
sigma2=0.5
C2=funciones.GetCentroides(A2,Nvec2,G2,sigma2)
Kax2=np.matrix([funciones.GaussianKernel(A2[:,i],x2,sigma2)for i in xrange(A2.shape[1])])
y2=G2.T*Kax2.T
np.argmin([linalg.norm(y2-c2) for c2 in C2])
print funciones.Clasificar(A2,G2,x2,sigma2,C2)
AgustÃn y Carlos clasificaron las siguientes imagenes
donde consideraremos las siguientes clasificaciones Clase 1 : L : Left Loop Clase 2 : R : Right Loop Clase 3 : W : Whorl Clase 4 : A : Arch Clase 5 : T : Tented Arch
Clase 1 : L f22 f16 f13 f09 f07 f04 s16 s14 s07 s04
Clase 2 : R f23 f14 f03 s17 s13 s09
Clase 3 : W f21 f15 f11 f10 f02 s10 s02
Clase 4 : A f25 f20 f19 f18 f12 f08 f06 f01 s20 s18 s01
Clase 5 : T f24 f05 s24 s08 s05
def GetImagenDireccional(Imagen):
Imagen2=funciones.get_imagen_direccional(Imagen*1.0)
return Imagen2.ravel()
def MatrizA():
L=np.array(["huellas/f22.png", "huellas/f16.png", "huellas/f13.png", "huellas/f09.png"])#, "huellas/f04.png", "huellas/s07.png"])
R=np.array(["huellas/f03.png", "huellas/s17.png", "huellas/s13.png"])
W=np.array(["huellas/f15.png", "huellas/f11.png", "huellas/f10.png", "huellas/f02.png"])
A=np.array(["huellas/f20.png", "huellas/f19.png", "huellas/f18.png", "huellas/f12.png"])#, "huellas/f08.png", "huellas/f06.png", "huellas/f01.png", "huellas/s18.png" ])
T=np.array(["huellas/f24.png" ,"huellas/f05.png", "huellas/s24.png", "huellas/s08.png"])#, "huellas/s05.png"])
Nvec=np.array([L.shape[0],R.shape[0],W.shape[0],A.shape[0],T.shape[0]])
#Nvec=np.array([R.shape[0],T.shape[0]])
Name=np.hstack([L,R,W,A,T])
#Name=np.hstack([R,T])
Im0=GetImagenDireccional(np.flipud(misc.imread(L[0]).T)/255.)
MA=np.zeros([Im0.shape[0], np.sum(Nvec)])
for i in xrange(np.sum(Nvec)):
print i
MA[:,i]=GetImagenDireccional(np.flipud(misc.imread(Name[i]).T)/255.)
I=MA[:,i]
return MA, Nvec
def ClasificarHuella(A,G,Imagen,sigma,C):
return funciones.Clasificar(A,G,funciones.get_imagen_direccional(Imagen).ravel(),sigma,C)
A,Nvec=MatrizA()
G=funciones.getG(A,Nvec)
np.savetxt('Amatriz2.d',A)
np.savetxt('Nvec2.d',Nvec)
np.savetxt('Gmatriz2.d',G)
sigma=0.5
C=funciones.GetCentroides(A,Nvec,G,sigma)
np.savetxt('Centroides2.d',C)
A=np.loadtxt('Amatriz' )
Nvec=np.loadtxt('Nvec' )
G=np.loadtxt('Gmatriz' )
C=np.loadtxt('Centroides' )
namL=np.array(["huellas/f22.png", "huellas/f16.png", "huellas/f13.png", "huellas/f09.png", "huellas/f04.png", "huellas/s07.png"])
namR=np.array(["huellas/f03.png", "huellas/s17.png", "huellas/s13.png"])
namW=np.array(["huellas/f15.png", "huellas/f11.png", "huellas/f10.png", "huellas/f02.png"])
namA=np.array(["huellas/f20.png", "huellas/f19.png", "huellas/f18.png", "huellas/f12.png", "huellas/f08.png", "huellas/f06.png", "huellas/f01.png", "huellas/s18.png" ])
namT=np.array(["huellas/f24.png" ,"huellas/f05.png", "huellas/s24.png", "huellas/s08.png", "huellas/s05.png"])
Name=np.hstack([namL,namR,namW,namA,namT])
Im=np.flipud(misc.imread('huellas/f13.png').T)/255.0
DirIm=funciones.get_imagen_direccional(Im)
print funciones.Clasificar(A,G,DirIm.ravel(),0.5,C)
figf13=plt.figure()
plt.pcolormesh(Im)
figf13.savefig('Imf13.png')
figDf13=plt.figure()
plt.pcolormesh(DirIm.T,cmap=plt.cm.gray)
figDf13.savefig('DirImf13.png' )
Im=np.flipud(misc.imread('huellas/s07.png').T)/255.0
DirIm=funciones.get_imagen_direccional(Im)
print funciones.Clasificar(A,G,DirIm.ravel(),0.5,C)
figs07=plt.figure()
plt.pcolormesh(Im)
figs07.savefig('Ims07.png')
figDs07=plt.figure()
plt.pcolormesh(DirIm.T,cmap=plt.cm.gray)
figDs07.savefig('DirIms07.png' )
Im=np.flipud(np.flipud(misc.imread("huellas/archloco.png").T))/255.0
DirIm=funciones.get_imagen_direccional(Im)
print funciones.Clasificar(A,G,DirIm.ravel(),0.5,C)
figarchloco=plt.figure()
plt.pcolormesh(Im)
figarchloco.savefig('ImArchLoco.png')
figDarchloco=plt.figure()
plt.pcolormesh(np.flipud(DirIm.T),cmap=plt.cm.gray)
figDarchloco.savefig('DirImArchLoco.png' )
Im=np.flipud(misc.imread("huellas/s13.png").T)/255.0
DirIm=funciones.get_imagen_direccional(Im)
print funciones.Clasificar(A,G,DirIm.ravel(),0.5,C)
figs13=plt.figure()
plt.pcolormesh(Im)
figs13.savefig('Ims13.png' )
figDs13=plt.figure()
plt.pcolormesh(DirIm.T,cmap=plt.cm.gray)
figDs13.savefig('DirIms13.png' )
Im=np.flipud(misc.imread("huellas/huellaloca.png")[:,:,0])/255.0
print ClasificarHuella(A,G,Im,sigma,C)
plt.pcolor(Im)
Im=np.flipud(misc.imread("huellas/huellachueca.png")[:,:,0].T)/255.0
print ClasificarHuella(A,G,Im,sigma,C)
plt.pcolor(Im)