Programación de un lector de huella digital en Java. Parte 5.

Después de una larga espera seguimos con el tutorial en su quinta parte (si no has leído las partes uno, dos, tres y cuatro te recomiendo que lo hagas antes de continuar). En este caso toca el turno a la identificación de personas por medio de su huella digital. Hasta el momento ya tenemos resueltas las funciones para guardar y verificar así que falta poco para culminar con las funciones básicas.
Recordemos que todos los procedimientos los estamos realizando en la clase procedimientos.Util así que vayamos a dicha clase y creamos un método de nombre identificarPersona() que no recibe argumentos de ningún tipo, en un principo quedará de la siguiente manera:
  /**
    * Identifica a una persona registrada por medio de su huella digital
    */
   public void identificarPersona(){
       
   } 
Ya que tenemos la definición del método debemos de brindarle un comportamiento pero para decirle qué hacer primero debemos entenderlo. Para identificar una persona se necesita tomar una muestra de la huella digital y posteriormente compararla con todas aquellas entre las cuales se encuentra la persona, en este caso, entre todas las huellas registradas, si encontramos un registro que coincida entonces tenemos a la persona que buscamos.
En código se traduce a lo siguiente:
Primero obtenemos todas las huellas de la base de datos...
ResultSet rsIdentificar = identificarStmt.executeQuery();
...posteriormente iteramos a través de todos los resultados...
while(rsIdentificar.next()){
...en cada iteración obtenemos la plantilla de la huella almacenada...
byte templateBuffer[] = rsIdentificar.getBytes("huehuella");
...y la creamos para posteriormente utilizarla...
Template referenceTemplate = new Template(templateBuffer);
...ya que tenemos la plantilla de la base de datos la comparamos con la actual almacenando el resultado de la comparación en una variable...
boolean coinciden = fingerprintSDK.verify(template,referenceTemplate);
...si coinciden hacemos lo pertinente y rompemos el ciclo de iteración y lo cerramos...
if (coinciden){                   
  ui.showImage(GrFingerJava.getBiometricImage(template, fingerprint, fingerprintSDK));                                  
  JOptionPane.showMessageDialog(ui, "La huella es de "+rsIdentificar.getString("huenombre"));
  return;
}

}
...si hemos buscado en todas las huellas y no se encuentra se lo indicamos al usuario...
 JOptionPane.showMessageDialog(ui, "No existe ningún registro que coincida con la huella.");
...y listo!
Al finalizar debemos de encerrar el código entre algunos try-catch para evitar errores al momento de compilar, el método completo queda así:
/**
    * verifica la huella digital actual contra otra en la base de datos
    */
   public void identificarPersona() {
       try {
           //Obtiene todas las huellas de la bd
           ResultSet rsIdentificar = identificarStmt.executeQuery();
           
           //Si se encuentra el nombre en la base de datos
           while(rsIdentificar.next()){
               //Lee la plantilla de la base de datos
               byte templateBuffer[] = rsIdentificar.getBytes("huehuella");
               //Crea una nueva plantilla
               Template referenceTemplate = new Template(templateBuffer);
               
               //compara las plantilas (actual vs bd)
               boolean coinciden = fingerprintSDK.verify(template,referenceTemplate);
               
               //Si encuentra correspondencia dibuja el mapa 
               //e indica el nombre de la persona que coincidió.
               if (coinciden){                   
                   ui.showImage(GrFingerJava.getBiometricImage(template, fingerprint, fingerprintSDK));                                  
                   JOptionPane.showMessageDialog(ui, "La huella es de "+rsIdentificar.getString("huenombre"));
                   return;
               }
               
           } 
           
           //Si no encuentra alguna huella que coincida lo indica con un mensaje
           JOptionPane.showMessageDialog(ui, "No existe ningún registro que coincida con la huella.");
               
       } catch (SQLException e) {
           e.printStackTrace();           
       } catch (GrFingerJavaException e) {
           e.printStackTrace();           
       }
   }
Posteriormente lo único que debemos hacer es mandarlo llamar desde el botón de 'Identificar' y listo! hemos terminado con las 3 funciones principales de un sistema de identificación de huellas digitales, solo necesitas adaptar estos métodos a tu aplicación y tendrás funcionalidad total.
El plan no es terminar con esta serie de tutoriales con este artículo sino ahondar en procedimientos un tanto más especializados como comparaciones realizadas directamente por el servidor (en aplicaciones cliente-servidor) para quitar tráfico a la red por medio de un servidor de aplicaciones, sin embargo, espero sus comentarios y opiniones al respecto, y si tienen alguna consulta dejen su correo para hacerles llegar mi respuesta lo antes posible ya que no he podido contestar los comentarios aquí directamente...

:::Actualización:::
A petición de algunos de ustedes, aquí les dejo una liga para descargar el proyecto en formato comprimido:

Descargar


****Actualización (08/08/2012)****
A petición de todos les dejo la lista de todos los artículos de este tutorial.

Tus comentarios y/o preguntas son bienvenidos.
Si el código te fue útil te invito a que me ayudes a difundirlo desde los botones sociales (Twitter, Facebook, Google+).
De igual manera puedes suscribirte al blog original feed  para que los nuevos artículos lleguen a tu bandeja de correo o lector de Feedsfavorito desde los enlaces del lado derecho de la página.

100 comentarios:

  1. Anónimo dijo...:

    Estimado Monillo:
    he seguido con mucho interes esta guia, y la agradezco profundamente, pero ruego que, por favor, puedas mandar un archivo zip o algo para probarlo en vivo, porque definitivamente Java es la solucion a nuestro problema, pero sigo sin poder hacer andar el compilador...sirve el jcreator para estos efectos? cualquier guia se agradece...
    Atte,
    un ignorate fan de Java

  1. Juan Camilo dijo...:

    Monillo
    Gracias por este tutorial, era lo que estaba buscando, me gusto mucho pq al fin encontre algo con java, estaba ya optando por solucion en .NET, pero te agradeceria si es posible los fuentes en un .zip, por alguna razon, no se que me falta pero no me ejecuta bien en NB.
    Gracias
    Att
    Un Java Fan

  1. Que tal Monillo..
    He seguido muy de cerca este tutorial y la verdad me saco de apuros. Te felicito por la aportacion a la comunidad de desarrolladores.
    Solo una pregunta, sabes si la libreria de griaule deja de funcionar a los 90 dias ??

    Me gustaria estar en contacto mas de cerca este es mi blog y mail http://omixisc.blogspot.com ofm.isc@gmail.com
    Bytes...

  1. Anónimo dijo...:

    Saludos monillo!!
    Estoy muy interesado en este tutorial, muy buenopor cierto, al igual que mis compañeros si puedes facilitar un zip, te lo agradeceria mucho estoy inmerso en un proyecto en java de este estilo y me ayudaria mucho tu aportacion, mi correo es s_alcu@hotmail.com Gracias!

  1. Monillo007 dijo...:

    Gracias a todos por sus comentarios, les comento que ya subí el proyecto de NetBeans para que puedan descargarlo, chequen la parte final del artículo para obtener el vínculo.

    Saludox.

  1. George dijo...:

    muy buen aporte pero tengo dudas este programa hace la funcion de scanner como hacer para que tembien haga la funcion como lector y cada vez que quiera accesar a una carpeta me pida introducir la huella y que la corrobore no se si e entendido bien lo que hace el programa mi correo es jmorenolopez@hotmail.com

  1. George dijo...:

    quisiera saber si tienes este programa de detector de huellas desarrollado en .net si es asi me lo podrias mandar en .zip a jmorenolopez@hotmail.com

    gracias

  1. Monillo007 dijo...:

    George,

    Primero que nada disculpa la tardanza en contestarte, te comento que no tengo el proyecto en .net, de hecho el fin de estos 5 tutoriales es que se aprenda y se entienda la programación como tal, no solamente compartir el proyecto para su descarga. Saludox.

  1. Anónimo dijo...:

    Hola buen dia

    He seguido tu guia (felicidades esta muy bien)y todo me funciona perfecto desde netbeans, pero cuando armo un jar y lo quiero ejecutar desde linea de comandos me envia un error donde me dice que no puede leer la licencia
    ¿Que puedo hacer para solucionar este error?

    Saludos y desde ya mil gracias por tu ayuda y atención

  1. Monillo007 dijo...:

    Verifíca que las librerías de grfingerjava y mysql estén dentro de la carpeta de la última versión del jre de java (c:/archivos de programa/java/jreX.XX/lib/ext), si te sigue dando el error indícame tal cual lo que aparece en la consola para verificar exactamente de qué se trata.

    Saludox.

  1. Anónimo dijo...:

    Hola,

    Antes de nada quería felicitarte por la guía, un gran trabajo. En mi caso particular yo necesito algo más sencillo, sólo tengo que conectar el detector de huella digital a mi aplicación de login (realizada en java), para que cuando pase la huella se autentifique en la aplicación, es decir, no necesito mostrar la huella ni nada de eso, sólo que se autentifique, la idea es comprar el DigitalPersona 4000B que es el mismo que has utilizado tú, ¿crees que con la parte del paquete de procedimientos es sufiente?, ¿vés necesario que compre la SDK Gold/Premium que viene con el DigitalPersona?. Muchas gracias de antemano.

    Un Saludo

    Fernando

  1. Anónimo dijo...:

    Primero que todo gracias por el desarrollo de este proyecto, que ha sido de gran ayuda para nosotros.

    Te sugerimos cosas como:

    1- ¿Como es posible quitar la pantalla de licencia de griaule?, por acá hubo un conocido que lo hizo pero no ha querido colaborarnos con ese apunte.

    2- en nuestro caso el proyecto estamos trabajando la aplicación desde un "Java Desktop Application", ademas no estamos capturando la huella desde el frame principal (que si lo utilizamos como formulario de logeo) y el JFrame en el que estamos capturando la huella se abre despues, sin embargo cuando cerramos este jFrame(en el cual se encuentra implementado todo tu proyecto) y volvemos y le damos iniciar sesion (esto sin cerrar toda la aplicacion) y volvemos a logear y entrar al Jframe aparece un error al inicializar la captura (GrFingerJavaException) y ademas no capturar la huella.

    Esas son los dos únicas huellas digo comentarios que tenemos al respecto del proyecto, por lo demás esta EXCELENTE!!!

    nos gustaría estar en contacto con ustedes, si puedes agregame a tu correo, el mio es:
    umov@hotmail.com.

    gracias.

  1. Anónimo dijo...:

    BBBIIIIIEEENNNNN muchas gracias llevo un bune rato siguiendo tutoriales y arreglandomelas y al final casi temrino pero me da errores, espero que con el ejemplo pueda completar mi proyecto gracias

  1. belen dijo...:

    Hola soy Belen te habia dejado un comentario en la parte 1 porque no habia visto la continuación de tu artículo que en verdad es muy bueno, te felicito!!, ok, ya probe el ejemplo y me da este error To run this application from the command line without Ant, try:
    java -jar "C:\Users\princesa\Desktop\lector\EjemploLectorHuellas\EjemploLectorHuellas\dist\EjemploLectorHuellas.jar"
    y por cierto lo voy a intentar para trabajando con servlets luego te digo como me fue te agradezco y de nuevo felicidades

  1. SeLibre dijo...:

    Saludos amigo, gracias a tu estupendo manual logramos realizar el registro, verificacion e identificacion de huellas con el lector Nigten Hamster II.
    Tengo una duda, lo que pasa es que por ahora estamos trabajando con el SDK gratuito de Griaule, tenemos pensado compralo porque es para uso de una empresa. El problema es que por ahora cada que ejecutamos la aplicacion para el registro de huellas, puede que la aplicacion se ejecute o no. El numero maximo de veces que lo ejecutamos para que funcionara fueron 24 veces,osea que 24 veces la aplicacion no se abrio, aveces la aplicacion se abre a la primera, pero no siempre. Me gustaria saber si al comprar el SDK esto dejara de pasar.
    PD:No hemos probado con tu codigo.
    Gracias por tu ayuda

  1. Anónimo dijo...:

    wey te amo!

  1. Jorge G. dijo...:

    Muchas gracias por tu aporte,
    te pondre de referencia. Ahora, mas bien, tengo una consulta. Estoy aplicando un sistema de seguridad remoto y estaba pensando en usar biometria como metodo de acceso. Tu crees q sea posible mediante un concentrador VPN SSL acceder a la VPN y asi poder entrar al aplicativo, previamente teniendo la lectora de huella dactilar??. Te envio mis datos para poder enviarte el grafico de mi propuesta.

    Saludos,

    Jorge G

  1. Jorge G. dijo...:

    Mis datos son: guardiajgd@hotmail.com

  1. Anahi dijo...:

    Oye muchisimas gracias por este tutorial, funciona perfectamente con mi scanner Upek
    Lo unico malo es que el Griaule es de paga, debería haber un desarrollo de SDK libre, los que anduve buscando no le llegaron a lo que hace Griaule, pero es muy buena iniciativa.
    Gracias por el articulo, ahora podré sacar adelante mi proyecto.

  1. Anónimo dijo...:

    me ha dejado fascinado todo este tutorial mi amigo, te felicito. note que lo realicaste en aprox. 2 meses. yo tengo planeado realizar un sistema de control de asistencia, y un bonche de informacion tan detallada y precisa como la de tus blogs me da los animos suficientes para realizarlo. gracias y sigue asi

    saludos

  1. Anónimo dijo...:

    me puedes pasar el Link para descargar todo el codigo de tu aplicacion. de antemano gracias.
    este es mi correo ck0z@hotmail.com

  1. NESTOR dijo...:

    HOLA SALUDOS QUISIERA SABER SI ME DUEDES AYUDAR CON LA APLICACION QUE ESTA EN TU BLOG YA LA TERMINE PERO CUANDO LA EJECUTO SALE EL SIGUIENTE ERROR
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no grfingerjava in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at com.griaule.grfingerjava.GrFingerJavaNative.loadLibrary(GrFingerJavaNative.java:46)
    at com.griaule.grfingerjava.GrFingerJavaNative.(GrFingerJavaNative.java:28)
    at com.griaule.grfingerjava.GrFingerJava.setLicenseDirectory(GrFingerJava.java:96)
    at procedimientos.Util.setFingerprintSDKNativeDirectory(Util.java:106)
    at interfaz.PantallaPrincipal.main(PantallaPrincipal.java:238)
    Java Result: 1
    QUISIERA SABER SI ME FALTA ALGUNA LIBRERIA YA REVISE LOS PASOS DE LA PRIMERA PARTE

  1. Anónimo dijo...:

    Hola que tal! me puedes pasar el Link para descargar todo el codigo de tu aplicacion? te anticipo que no soy programador java, pero lo intento, nada mas que me lo encargaron en mi trabajo y al principio lo hice con visual basic y me funciona muy bien, de hecho lo tengo con MySql, pero el nuevo Jefe lo quiere implementar en Java, de antemano gracias.
    este es mi correo gedworl@gmail.com

  1. Hussein Alcon dijo...:

    Para los qe no les funciona el enlace por alguna razon es esta.

    http://www.mediafire.com/?5fyytuuidny

  1. oscar dijo...:

    hola, interesante el desarrollo de esta aplicacion, pero me resulta una pregunta y no se si ya te la han hecho, pero como puedo adaptar este tipo de desarrollo a uno que esta ya creado en php y lo que necesito es incorporarle la opcion de lectura de huellas y verificacion en la base de datos??

    agradeceria tu respuesta--

  1. Monillo007 dijo...:

    Qué tal,

    Es posible integrar un módulo de este tipo en una aplicación php por medio de un applet.

  1. Norman David dijo...:

    Hola, primero que todo te felicito por este excelente tuto, aun no lo implemento pero lo he leído todo y esta muy claro, además que las imágenes y las secciones de código están muy detalladas, pero te quiero hacer una pregunta, veo que en el método verify(String nom) se hace la consulta a la BD filtrando el registro por el nombre y al obtenerlo se compara el mapa de la huella, con lo cual me imagino que sera muy eficiente la búsqueda, pero mi pregunta recae en el escenario en el cual no se solicite por ejemplo el nombre sino que solo con la huella se realice la búsqueda, como me lo imagino seria realizar una búsqueda de todas las huellas e iterar el resultado y allí realizar una comparación una a una de cada huella de la BD contra la que buscamos, pero esto a simple vista es costoso en tiempo y recursos si pensamos que se tengan muchos usuarios registrados en la tabla ( no se 1000 o mas pensando en grande ), ahora bajo este escenario que te planteo ves una solución que sea mejor que la que pienso yo? es que la verdad aunque esa opción es la mas básica no veo muchas alternativas.

    Te repito muchas gracias.

  1. Fredy P.B. dijo...:

    Hola,

    he revisado el tutorial y me ha parecido muy bueno, la información es verdaderamente útil. Veo que entre las preguntas que te hicieron está la integración a un programa php, yo trabajo en lenguaje java pero sobre plataformas Web, y tengo precisamente esa idea, como puedo hacer funcionar el lector pero en entorno web?, ya me lo había imaginado con una applet pero me preocupa la idea de que salga un applet muy pesado, y además como superar el tema de permisos para acceder los drivers que se necesitan, me gustaría ponerme en contacto contigo para llevarlo a cabo como proyecto open source.

  1. Anónimo dijo...:

    hola antes que nada estube le yendo el post y megusto por que voy a realizar un proyecto parecido pero necesito descargar tu proyecto para que le pueda enter mejor a un que lo que tu dices esta muy claro lo que me refiero es verlo como trabaja y no lo puedo descargar de link
    megustaria que lo mandaras a mi correo,
    mi correo es pelon_12luis@hotmail.com por favor lo necesito te lo agradeceria mucho, y eres muy bueno programando felecidades.

  1. xenit dijo...:

    hola ke tal amigo...recien acabo de ver tu blog y me parecio super interesante por la manera en que explicas este ejemplo...de verdad muchas gracias m sirvio un buen...

    aaa y para los ke no han podido descargar el ejemplo comprimido...este es el link

    http://www.mediafire.com/?5fyytuuidny

  1. elpaisa dijo...:

    aMIGO MUCHISIMAS GRACIAS POR TU APORTE... QUISIERA PEDIRTE UN GRANDE FAAVOR... AL TRATAR DE CORRER EL PROGRAMA ME SALE UN EROR DE UNA DLL pthreadVC2.dll Y NO SE COMO REPARLO... TE AGRADECERIA SI PUDIERAS COLABORARME... DE VERDAD LO NECESITO... MUCHAS GRACIAS

  1. r2d2 dijo...:

    Hola a todos , quiero agradecer a Monillo007 por esta excelente guía. Esta muy bien explicada y clara de entender.

    Estuve leyendo la parte de Identificar a una persona y en el ejemplo se plantea que hay que traer todas las huellas e ir comprobando una a una para saber saber que persona es. Aparte de esta forma de que otra podemos identificar una persona .. no se algo como un WHERE en la BD ; ya que si los datos en la tabla son muy grandes ( 10.000.0000.000)registros creo que seria un proceso costoso y lento.

    Muchas gracias por sus opiniones sobre esta duda.

    "Para identificar una persona se necesita tomar una muestra de la huella digital y posteriormente compararla con todas aquellas entre las cuales se encuentra la persona, en este caso, entre todas las huellas registradas, si encontramos un registro que coincida entonces tenemos a la persona que buscamos."

    gaso

  1. Anónimo dijo...:

    ola estoy com un probrema com las importaciones que se ocupan en el programa no me funciona unas importaciones son las siguentes import com.griaule.grfingerjava.FingerprintImage;
    import com.griaule.grfingerjava.GrFingerJava;
    import com.griaule.grfingerjava.GrFingerJavaException;
    import com.griaule.grfingerjava.IFingerEventListener;
    import com.griaule.grfingerjava.IImageEventListener;
    import com.griaule.grfingerjava.IStatusEventListener;
    import com.griaule.grfingerjava.MatchingContext;
    import com.griaule.grfingerjava.Template;

    me dice el netbeans que no existe tal importaciones

    si me pueden ayudar xfa.
    gracia.

  1. Anónimo dijo...:

    HOLA HE SEGUIDO TU PROYECTO, YO TRABAJO EN GOBIERNO DEL ESTADO DE MÉXICO COMO DESARROLDOR Y HE TRATADO DE HECHAR ANDAR ALGO SIMILAR PERO TENGO UN PROBLEMA PARA COMPARAR LAS HUELLAS ¿PRODRIAS COLGAR EL PROYECTO PARA QUE VEA LA RUTINA DE COMPARACIÓN CON LA BD? YA QUE EN DONDE LA TENIAS YA NO ESTA DISPONOBLE.

    TE MANDO MIS CORREOS
    abo270381@hotmail.com
    gabriel.correa@edomex.gob.mx

    DE ANTEMANO GRACIAS!!!!!!!

  1. Ivan dijo...:

    alguien me puede pasar el link de la 4ta parte porque no la encuentro porfavor se los agradeceria mucho y si acaso tienen el archivo de descarga tambien porque no me permite descargalo

  1. Monillo007 dijo...:

    Qué tal,

    Al inicio de este artículo están los links a todas las demás partes.

    Un saludo.

  1. grupo dms dijo...:

    Hola estimado amigo...

    He probado su proyecto que esta espectacular, pero al momento de compilar para LANZARLO... me da el siguiente ERROR... :

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no grfingerjava in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at com.griaule.grfingerjava.GrFingerJavaNative.loadLibrary(GrFingerJavaNative.java:46)
    at com.griaule.grfingerjava.GrFingerJavaNative.(GrFingerJavaNative.java:28)
    at com.griaule.grfingerjava.GrFingerJava.setLicenseDirectory(GrFingerJava.java:96)
    at procedimientos.Util.setFingerprintSDKNativeDirectory(Util.java:106)
    at interfaz.PantallaPrincipal.main(PantallaPrincipal.java:238)
    Java Result: 1
    QUISIERA SABER SI ME FALTA ALGUNA LIBRERIA YA REVISE LOS PASOS DE LA PRIMERA PARTE y NO LOGRE CONSEGUIR NADA.

    MUCHAS GRACIAS POR TU AYUDA...

  1. Monillo007 dijo...:

    Qué tal,

    Te comento que la excepción es por que el programa no encuentra los archivos dll en el registro del sistema operativo, verifica que dichos archivos (mencionados en la parte 1) se encuentren en la carpeta c:\windows\system32\ en caso de Xp, para otros sistemas operativos habría que verificar la ruta.

    Un saludo.

  1. Ivan dijo...:

    Muchas gracias ya lo encontre de casualidad todavia tendras el proyecto comprimdo?

    mi correo es iga_3@hotmail.com

    Saludos!

  1. Ivan dijo...:

    Ya lo hize jalar y todo pero no me enciende el lector de huella ¬¬ intente con dos distintos modelos y si me funcionan en el sample del griaule pero en el proyecto nomas no prende =/

  1. XiRiX dijo...:

    Buenas amigo, muy buen tutorial, actualmente me encuentro buscando alternativas para echar a andar el lector eikon, buscando y buscando me encontre con esta pagina, me he descargado tu proyecto de netbeans pero al generar el jar y ejecutarlo, que el lo primero que debo hacer al iniciar el programa? Lo pregunto porque las lineas verdes a que haces referencia no me aparecen, por otro lado si le doy al boton guardar me da una excepcion nullpointerexception en el boton guardar.

    Agradeceria cualquier ayuda de tu parte, mi mail es magroberth@gmail.com

  1. Jacobo dijo...:

    Hola muy bueno el tutorial, pero no de deja descargar, depronto un mirror para descargarlo

    gracias

  1. Edsiño dijo...:

    Hola Monillo:
    Como muchos aqui hemos venido siguiendo los tutoriales, y en lo personal me parece un graqn logro para los que estamos en esta area y de seguro que nos ayudara en gran medida.
    Al correr el codigo que nos dejaste yo tuve unos problemillas, en algunos casos no me corria por eso me dirijo hacia para pedirte que talvez me pudieras enviar el codigo a mi correo eddy_usb2008@hotmail.com.
    De antemano te agradezco por este gran tutorial.
    Atte: Edson.

  1. Monillo007 dijo...:

    Aquí el enlace:

    http://www.mediafire.com/?5fyytuuidny

    Saludox!

  1. Anónimo dijo...:

    Buenisimo, muy claro y sencillo de explicar... anuque yo creo que su elaboracion tuvo su grado de dificultad.. muy bien! :)

  1. Anónimo dijo...:

    Hola muchas gracias por el tuto , quisiera saber si hay alguna manera de hacer las pruebas sin necesitadad de tener un dispositio , podria hacerce con el lector que tiene el mismo pc?

  1. Luis Navarro dijo...:

    Qué tal,

    Es probable que funcione, revisa la lista de lectores compatibles directamente en www.griaule.com.

    Saludos.

  1. hector dijo...:

    hola muy bueno tu tutorial pero a mi me da un problema que no eh podido resolver a la hora de identificar

    com.griaule.grfingerjava.GrFingerJavaException: Unknown error
    at com.griaule.grfingerjava.MatchingContext.verify(MatchingContext.java:338)
    at procedimientos.Util.identificarPersona(Util.java:234)
    at interfaz.PantallaPrincipal.btnIdentificarActionPerformed(PantallaPrincipal.java:265)
    at interfaz.PantallaPrincipal.access$400(PantallaPrincipal.java:28)
    at interfaz.PantallaPrincipal$4.actionPerformed(PantallaPrincipal.java:165)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6267)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6032)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

  1. Luis Navarro dijo...:

    Qué tal,

    Qué sistema operativo, versión del SDK y lector tienes?

    Saludos.

  1. hector dijo...:

    hola el sistema operativo es windows 7, sdk 2009 y lector es digital persona 4000b

  1. Luis Navarro dijo...:

    Qué tal Hector,

    Te comento que este tutorial está basado en la versión 2007 del SDK, el 2009 es bastante parecido pero tiene sus diferencias, para verificar el por qué de tu error será necesario (por lo pronto) que te pongas en contacto con el soporte de Griaule directamente o en su defecto que utilices el 2007 con otro lector ya que el que utilizas tiene problemas de compatibilidad.

    Saludos.

  1. hector dijo...:

    y tambien ya hice la prueba con el sdk 2007. como te digo si me deja guardar y verificar pero a la hora de identificar me da ese error

  1. Luis Navarro dijo...:

    Te recomiendo entonces probar con el proyecto que se puede descargar desde el final del artículo para descartar cualquier posibilidad, si corre sin problemas verifica las diferencias entre ambos proyectos.

    Igual pruebas y me dices cómo te fue.

  1. Anónimo dijo...:

    Hola Luis he tenido inconvenientes para descargar la aplicacion y probarla ya que he tratado el paso a paso y no he podido lograr su buen funcionamiento te agradezco si me puedes colaborar para poder hacer efectiva la descarga.

  1. Luis Navarro dijo...:

    Aquí el link:
    http://www.mediafire.com/?5fyytuuidny

    Si aún no puedes descargarlo deja tu correo y te lo mando.

    Saludos.

  1. Anónimo dijo...:

    Esta parte de Aqui me salen error en tdo caso si tienes la libreriaz podriaz subirlo para descargarlos


    import com.griaule.grfingerjava.FingerprintImage;
    import com.griaule.grfingerjava.GrFingerJava;
    import com.griaule.grfingerjava.GrFingerJavaException;
    import com.griaule.grfingerjava.IFingerEventListener;
    import com.griaule.grfingerjava.IImageEventListener;
    import com.griaule.grfingerjava.IStatusEventListener;
    import com.griaule.grfingerjava.MatchingContext;
    import com.griaule.grfingerjava.Template;

  1. Luis Navarro dijo...:

    Qué tal, al final del artículo tienes la liga para la descarga.

    Saludos.

  1. Anónimo dijo...:

    UNA PREGUNATA... SERA QUE SE PUEDE UTILIZAR CON EL LECTOR DE HUELLA DIGITAL DE MI LAPTOP... ES UNA HP....

  1. Luis Navarro dijo...:

    Qué tal,

    Existe un listado de lectores compatibles directamente en la página del fabricante www.griaule.com.

    Saludos.

  1. johan alvarez dijo...:

    muchas gracias por este aporte, en serio y muy bacano el blog

    saludos y sigue asi

  1. Anónimo dijo...:

    Primero que todo muchas gracias por el tutorial de "Programación de un lector de huella digital en Java" me funciono perfectamente con el lector óptico Microsoft. Ahora lo quise trabajar con un lector de sensor capacitivo, Zvetco P6000 que se encuentra en la lista de lectores compatibles de Griaule, el problema que se me presenta es que cuando coloco por primera vez la huella me la reconoce muy normal, sin embargo al intentar poner otra huella ya sea para realizar cualquier acción no la lee ni la reconoce sólo se queda con la primera imagen que tomó. No se a que se pueda deber este problema pero agradecería cualquier colaboración que me pudieras brindar.

  1. Anónimo dijo...:

    saludos amigo gracias por el tutorial de "Programación de un lector de huella digital en Java" me funciono perfectamente pero me gustaria que me ayudaras o me orientaras en como cambiar el estilo a la huella que se dibuja en el panel .. colores

  1. Anónimo dijo...:

    HOLA SE ME HACE UN TANTO COMPLICADO AUNQUE ESTA MUY FACIL LA GUIA NO ME CORRE YA INTENTE DESCARGAR EL FINGERINSTALLER2007 DESDE TUS ENLACES PERO YA TODOS CASI ESTAN FUERA EN SU LUGAR DESCARGUE EL 2009 E HICE TODO DEACUERDO A LA ESTRUCTURAS PERO AL REEDIRECCIONAR LAS LIBRERIA YA NO ME APARECEN CIERTAS CARPETAS COMO LA EXT CREO QUE POR ALLI ES LO QUE ME ESTA CAUSANDO EL PROBLEMA OJALA Y PUEDAS RESUBIR TU PROYECTO COMPLETO PAR QUE TRATAR DE CORRERLO GRACIAS

  1. Luis Navarro dijo...:

    Qué tal,

    Para cambiar los colores se debe utilizar el método setBiometricImageColors(), la información de su uso se localiza directamente en el javadoc del SDK de Griaule (usualmente en C:\Program Files\Griaule\Fingerprint SDK Java 2007\doc\javadoc).

    Para descargar el proyecto completo puedes ir a http://830d9902.tinylinks.co. Te recomiendo utilizar el SDK 2007 ya que es el que se utilizó para este tutorial y no se tuvo ningún problema. Puedes descargarlo desde el siguiente enlace:

    http://min.us/mvfrHo#1o

    Saludos.

  1. Anónimo dijo...:

    Hola, quisiera saber si hay alguna forma de calcular el tiempo que tarda en reconocer la huella desde que se pone el dedo en el sensor. Había pensado en definirlo en el OnFingerDown y/o OnFingerUp pero no estoy segura de como sería.

    Gracias, Johana

  1. Luis Navarro dijo...:

    Qué tal Johana,

    He revisado el SDK y al parecer no hay un método que lo calcule tal cual, por lo cual tendrías que hacerlo manualmente mediante Hilos (aquí un artículo al respecto).

    Otra opción sería que en el método verificar iniciaras guardando la hora (con segundos y milisegundos) en que comienza el proceso y al identificar la huella hicieras el cálculo del tiempo que transcurrió entre el inicio y el fin del proceso.

    Espero haberte dado una idea :). Saludos.

  1. Anónimo dijo...:

    Gracias por la idea estoy mirando como resolverlo porque necesito calcular el tiempo que pasa desde que pongo el dedo en el lector hasta que se ve la imagen en la aplicación con el template y todo. Johana

  1. Anónimo dijo...:

    Buenas noches, mira quería preguntar como podría volver a cargar una plantilla que tenga en la base de datos a la aplicación porque tengo una base de datos muy grande y no puedo contar con las personas registradas para que vuelvan a poner su huella e identificarlas. Necesito simular que se puso la huella así no sea toda la imagen lo que se muestre. Muchas gracias. Karen

  1. Anónimo dijo...:

    saludos luis navarro tengo este codigo pero nose como implementarlo me puede ayudar lo saque de aqui
    http://lisbioid.googlecode.com/svn-history/r6/trunk/Biometrico/src/Controlador/Main.java


    // Sets the colors of biometric display
    public void setBiometricDisplayColors(Color minutiaeColor,
    Color minutiaeMatchColor, Color segmentColor,
    Color segmentMatchColor, Color directionColor,
    Color directionMatchColor) {

    try {
    // set new colors for BiometricDisplay
    GrFingerJava.setBiometricImageColors(minutiaeColor,
    minutiaeMatchColor, segmentColor, segmentMatchColor,
    directionColor, directionMatchColor);
    } catch (GrFingerJavaException e) {
    // write error to log
    //ui.writeLog(e.toString());
    }

    }

  1. Anónimo dijo...:

    Saludos Luis navarro e estado investigando para cambiar el estilo y es sobre grafico pero de eso no se mucho pude modificar esta linea 1 por la linea 2 y me muestra la huella pero en negro me podrias ayudar como asignarle otro colo saludos te agrecedeceria ante mano..
    //Se dibuja la imagen
    1 // g.drawImage(fingerprintImage, transX, transY, width, height, null);


    2 boolean drawImage = g.drawImage(fingerprint, transX, transY, width, height, Color.blue, nombre);

  1. Anónimo dijo...:

    hola monillo007, como puedo resolver este error, segui los pasos al pie de la letra, utilizo las herramientas que manejaste en el tutorial, pero no entiendo por que sale este error
    com.griaule.grfingerjava.GrFingerJavaException: License not found or read error
    at com.griaule.grfingerjava.MatchingContext.createContext(MatchingContext.java:60)
    at com.griaule.grfingerjava.MatchingContext.(MatchingContext.java:103)
    at procedimientos.Util.inicializarCaptura(Util.java:61)
    at interfaz.PantallaPrincipal.(PantallaPrincipal.java:41)
    at ejemplolectorhuellas.Main.main(Main.java:25)
    Java Result: 1

  1. Luis Navarro dijo...:

    Qué tal,

    El error se debe a que no localiza el archivo de licencia que necesita para ejecutarse, verifica que lo indicado en la parte 1 del tutorial se haya realizado completa y correctamente.

    Saludos.

  1. Anónimo dijo...:

    Hola monillo puedes volver a subir el proyecto en formato comprimido? esque sale borrado!

  1. MikeNF dijo...:

    buenos aportes eh, estoy probando con los colores... Mi pregunta va si se puede manipular las luces con griaule del hardware, por ejemplo del nitgen hamster ii, y si no como podria manipular para este hardware... espero q alguno me responda... Ah si corre muy bien con el SDK2009, por lo menos no tengo problemas... haber como me ira luego... espero una respuesta gracias...

  1. Anónimo dijo...:

    Disculpa puedes resubir tu proyecto? El link esta caido. Saludos!!!

  1. Anónimo dijo...:

    Hola, excelente tuto :).

    Todo muy bien explicado como para no preguntar xD pero aquí voy :P.

    ¿Cómo haría para que la imagen (de la huella) me muestre en otra ventana sin iniciar una nueva instancia de fingerprint?

    Saludos.

    Pd. Todo funciona muy bien.

  1. Anónimo dijo...:

    Funciona muy bien pero pasa muy seguido que identica una huella que no corresponde, ¿ha alguien más le sucede lo mismo?.

  1. Nestor Chirinos dijo...:

    Hola a tos tengo un lector de Biomini Suprema y el SDK no lo Reconose si alguien me puede ayudar a resulver este pequeño proble se lo agradesco de antemano

  1. Anónimo dijo...:

    Mi hermano muchas gracias, que Dios te siga dando conocimiento, muy bien explicado y de facil comprension, de verdad gracias.
    Isaac P. B.

    Solo una pregunta busque la liga para descargar el proyecto, pero no lo encontre, porfa me lo podrias pasar, ya sea que me respondas por aca o si me hace el favor de enviarmelo a mi correo, de antemano muchas muchas gracias.
    emails: cibereternet@hotmail.com, techno-cyber@hotmail.com

  1. Anónimo dijo...:

    Hola Luis, de casualidad sabes como puedo comprar la licencia???, esque me meti a la pagina y vi varios sdk, pero no vi el que es compatible con java, de antemano gracias, saludos.

  1. Luis Navarro dijo...:

    Envíame un correo a monillo007@gmail.com para hacerte llegar la información. Saludos.

  1. Alan dijo...:

    gracias Luis, excelente tuto ....yo tengo 10 licencias pero para el sdk de escritorio ("Fingerprint SDK 2007) y aunque hay una carpeta de java en "samples" no me funciona.

    será q estoy haciendo algo mal o es por q tengo que adquirir por separado la el sdk JAVA?

    (por cierto captcha mas complicado)

  1. Juan Eduardo dijo...:

    Hola que tal mi estimado Luis Navarro me parese mas que excelente tu tutorial ya que nos ayudas a varios con este gran aporte de programacion.
    Te comento que empeze con este proyecto y segui los pasos que has realizado hasta ahorita pero al momento de ejecutarlo me sale el siguiente error:
    ===========================================================
    ========= GRIAULE BIOMETRICS FINGERPRINT SDK 2009 =========
    ========= =========
    ========= TRIAL VERSION =========
    ========= 30-Day Evaluation =========
    ========= =========
    ========= Buy licenses at =========
    ========= www.griaulebiometrics.com =========
    ========= This trial license expired =========
    ========= 125 days ago =========
    ===========================================================
    com.griaule.grfingerjava.GrFingerJavaException: Unknown error
    at com.griaule.grfingerjava.MatchingContext.createContext(MatchingContext.java:95)
    at com.griaule.grfingerjava.MatchingContext.(MatchingContext.java:138)
    at procedimientos.Util.inicializarCaptura(Util.java:34)
    at interfaz.PantallaPrincipal.(PantallaPrincipal.java:32)
    at interfaz.PantallaPrincipal.main(PantallaPrincipal.java:184)
    Java Result: 1
    si me pudieras ayudar te lo agradeseria muchisisismo saludos desde Zacatecas mexico

  1. Anónimo dijo...:

    Hola.. muchas gracias por tu aporte... solamente que he estado trabajando con el SDK 2009 y existe problemas cuando intento correr el programa y el 2007 que mencionas no lo encuentro por ningun lado... me podrias decir donde descargar el 2007 o mandarmelo porfavor?? raul.lerma3@gmail.com
    Muchas Gracias...

  1. n00b dijo...:

    Por que cuando mando a llamar el frame donde se lee la huella desde otro frame(un menu principal) me manda el error de "com.griaule.grfingerjava.GrFingerJavaException: License not found or read error", pero cuando lo corro directamente me funciona bien.

  1. Juan Vama dijo...:

    amigo me puedes mandar a mi correo el fingerprint sdk java 2007 por favor juanvm7910@hotmail.com o juanvama7910@gmail.com

  1. Jamith Mercado dijo...:

    saludos amigo me puede pasar un link para descargar el fingerprint sdk java 2007 a mi correo es jamith.m@hotmail.com o ha este mercadojamith@gmail.com

  1. Anónimo dijo...:

    excelente tutorial 10/10

  1. Roger Chan dijo...:

    Hola me interesa mucho, al final dice que es un formato comprimido, me lo puedes mandar a mi correo libra_gemelo18@live.com.mx es que lo estube checando y no salen algunas imagenes!!

  1. dudino dijo...:

    El archivo ya no esta podrías subirlo nuevamente, gracias

  1. Anónimo dijo...:

    Si, por favor sube el proyecto nuevamente es que ya no existe, si puedes en mega o por otro servidor, gracias de antemano.

  1. Zero007 dijo...:

    Que buen tutorial solo que no eh podido compilar me salen errores me gustaria que pusieras nuevamente el link ya que quise bajar el zip pero no me deja, gracias

  1. Anónimo dijo...:

    hola monillo007 de casualidad podrias subir la base para probar el ejemplo, por que nuestro virdi foh01 no hace nada cuando colocamos el dedo en el lector

  1. aL FINAL ME SALE ERROR ME PUEDES AYUDAR

    import com.griaule.grfingerjava.FingerprintImage;
    import com.griaule.grfingerjava.GrFingerJava;
    import com.griaule.grfingerjava.GrFingerJavaException;
    import com.griaule.grfingerjava.IFingerEventListener;
    import com.griaule.grfingerjava.IImageEventListener;
    import com.griaule.grfingerjava.IStatusEventListener;
    import com.griaule.grfingerjava.MatchingContext;
    import com.griaule.grfingerjava.Template;

  1. rodrigo choque dijo...:

    todas estas librerias pueden ser usadas tambien en eclipse rodrirchz@gmail.com

  1. Anónimo dijo...:

    Alguien tiene el codigo o el proyecto de netbeans lo corro y no me funciona!! para nada!!! mi correo ronyargueta@yahoo.es

  1. Esta caido el link de descarga...¡¡

  1. Porfavor Alguien Puede enviarme el archivo ? el proyecto ? algo en un rar porfavor ? gracias de antemano
    master_guaja@hotmail.com
    porfavor

  1. Miguel Quevedo dijo...:

    Buenas por favor si alguien que dispone del proyecto o los fuentes si podria enviarmelo, a mi email mikelquevedo@gmail.com

  1. Alex PP dijo...:

    Hola monillo podrías volver a poner el archivo ya que el link esta caído y no se pude descargar. gracias.

Publicar un comentario

Este es un espacio abierto, puedes escribir lo que gustes respetando los siguientes puntos:

1.- Lo que escribas esté relacionado con el post, si gustas contactarme puedes hacerlo aqui.

2.- Todo es cuestionable, aunque ten en cuenta que existen formas de hacerlo, evita las agresiones y revisa tu lenguaje antes de publicar un comentario.

3.- Siempre hay tres verdades: tu verdad, mi verdad y la verdad, por lo que opiniones diferentes no necesariamente son equivocadas.

4.- Los comentarios son una forma de discusión abierta, por lo que al publicar uno, implícitamente entras a una discusión, con todo lo que esto representa.

5. Me reservo el derecho de eliminar comentarios que no respeten las condiciones mencionadas anteriormente.

Toma en cuenta que puedes utilizar emoticones en tu comentario, para ver una lista de los disponibles da clic en este enlace.

 
Monillo007 © 2010 | Designed by Trucks, Manual Bookmarking | Elegant Themes