Ir al contenido



Foto

Procesar una imagen mediante Opencv en Lazarus -¿Como se hace?

Iris del ojo humano

  • Por favor identifícate para responder
6 respuestas en este tema

#1 Spyke

Spyke

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 24 mayo 2016 - 12:31

Hola todos, soy nuevo y espero que me ayuden:

Me han encargado a realizar un software para escanear y procesar las manchas del iris del ojo humano mediante una foto o imagen capturada del mismo. Me han dicho que OpenCV me resuelve muchas cosas, pero está destinada para lenguajes como Jaca, C/C++ y python pero no para pascal. Mis dudas son las sigueinte:

1-Como vincular OpenCV(librerias) con el IDE Lazarus

2-Como puedo procesar los contornos del ojo humana para identifcar asi el iris asi como sus machas

Muchas Gracias, espero respuestas de ustedes.


  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.890 mensajes
  • LocationArgentina

Escrito 24 mayo 2016 - 01:05

No te sabría guiar en lo referente al tema de identificación biométrica por medio de la técnica de iris.

Tampoco he usado OpenCV, aunque algo de ese framework he escuchado.

Se que existe un header de OpenCV para Delphi, pero tengo mis dudas de si ese mismo podría servir en Lazarus. De una búsqueda medio rápida he encontrado algo que quizá si pueda servir, alguien ha portado y se ha inspirado en ese header para desarrollar uno en Lazarus. No te doy absolutas esperanzas, pero al menos es algo.

 

Saludos,


  • 1

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.890 mensajes
  • LocationArgentina

Escrito 24 mayo 2016 - 01:43

Ahora bien para manejarse con OpenCV lo mejor sería acudir en ayuda de su propia documentación. Y ya en lo referido a identificación y detección de iris (y facial en general), en su propio foro parece que ya alguien preguntó algo al respecto y le dieron unos artículos para que se familiarice.

 

Lo mejor que puedes hacer es primero familiarizarte con los fundamentos teóricos sobre identificación de iris. No va a ser fácil. El material en español no es mucho, y no muy preciso. Lee fuentes bibliográficas en inglés. Son las que más abundan. Seguramente hay diferentes técnicas y algoritmos para llevar a cabo dicho propósito.

 

Saludos,


  • 1

#4 Spyke

Spyke

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 24 mayo 2016 - 02:18

Gracias por tu respuestas.... (y) (y) (y) :ap: :ap:


  • 0

#5 Spyke

Spyke

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 24 mayo 2016 - 02:26

La cuestion hora es que, como puedo dectectar cual funcion es la que me posibilita realizar el escaneo o procesamiento del iris, pues ya que las librerias para Lazarus de unos de los link que proporcionas (opencv-lazarus-master) contiene cabeceras ya creadas que contiene una gran cantidad de funciones para jugar con los colores de una imagen(histograma de una imagen). Pero muchas gracias, tus link me han dado mucha ayuda, existe alguna respuesta mas con gusto la aceptare


  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.890 mensajes
  • LocationArgentina

Escrito 24 mayo 2016 - 03:38

La cuestion hora es que, como puedo dectectar cual funcion es la que me posibilita realizar el escaneo o procesamiento del iris, pues ya que las librerias para Lazarus de unos de los link que proporcionas (opencv-lazarus-master) contiene cabeceras ya creadas que contiene una gran cantidad de funciones para jugar con los colores de una imagen(histograma de una imagen). Pero muchas gracias, tus link me han dado mucha ayuda, existe alguna respuesta mas con gusto la aceptare

 

Creería que en el mar de las funciones del header que incluye el wrapper para lazarus que te pasé están incluídas todas. Incluso las necesarias para llegar a implementar los filtros, clasificadores, etc. que se requieran para dar forma a un sistema biométrico. Desconozco cuales serán las funciones que necesites. Como he dicho: está la documentación, y justamente he sugerido primero abordar los conocimientos teóricos sobre biometría para que luego, en la práctica, apoyándote de OpenCV llegues a buen puerto.

No es que OpenCV te va a aportar ya de 0 el sistema de reconocimiento. OpenCV es sólo un buen framework de visión artificial: tratamiento de imágenes, filtros, reconocimiento de patrones, etc. Pero no es en sí un framework de biometría.

 

OpenCV efectivamente se usa en algunas herramientas sobre reconocimiento biométrico, más no es que tiene una función como "ExtractIrisFromFace()" OpenCV entiende imágenes y lo que hace es evaluar formas... el significado de esas formas y patrones se lo das vos. OpenCV no entiende que es un ojo, o un Iris... o una cara. Entiende simplemente vectores, gradientes, círculos, colores, saturaciones...

 

La parte del reconocimiento la debes hacer tu.

 

Básicamente cualquier sistema de biometría está compuesto de 3 partes:

1. Reconocimiento de cara

2. Extracción de características

3. Reconocimiento

 

Entre la parte 1 y 2 hay una "zona gris" difusa. Dependiendo de las técnicas empleadas, pueden ser llevadas de forma separada, o hasta casi en forma paralela e inmediata. La 3ra, el reconocimiento propiamente dicho, dependerá de las "características" del rostro que se han seleccionado y el tipo de biometría empleada.

Para el paso 2, por ejemplo para tu caso se puede utilizar una función de energía que evalúa si hay una forma que semeje un ojo... que no es más que un tipo de filtro (matemática al fin y a cabo) que se aplica en una imagen que busca una semejanza a una "forma y color" en particular.

Si dicho proceso tiene éxito, entonces tal "porción" de la imagen se extrae y se emplea en la siguiente etapa para alimentar al sistema que se encargará formalmente del reconocimiento.

 

El subsistema dedicado al reconocimiento consiste, en términos generales, en 2 etapas:

1. Entrenamiento

2. Prueba

 

Hay variadas técnicas; específicas para cada tipo de biometría. Me animo a decir que todas, son en un cierto grado de rigor formulaciones estadísticas... y de más matemática por cierto.

Por ejemplo, para un sistema de reconocimiento facial completo, de cara frontal (y con leve rotación sobre el perfil incluso) se conocen EigenFace, FisherFace, Análisis de Discriminantes, Redes Neuronales, por mencionar algunas.

 

Yo el tema de biometría por iris no lo he investigado. No te sabría guiar en ese camino. Guste o no, el inglés es la mejor herramienta para estas cosas. "Iris Recognition with OpenCV" arroja no pocos resultados. Pero primero, como he dicho, a ir por "Iris Recognition".

 

Saludos,


  • 1

#7 Spyke

Spyke

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 03 octubre 2016 - 01:51

Hola otra vez:

Quisiera saber si alguien me puede explicar como puedo resolver el problema en PASCAL, este es el problema:

Anteriormente he explicado a cerca sobre el problema de escanear el iris del ojo a través de la biblioteca de OpenCV, pero esta vez necesito invocar funcionalidades que se encuentran dentro de un archivo .DLL, por ejemplo, para cargar una imagen a traves de OpenCV se utiliza la funcionalidad -> imread, esta funcionalidad se encuentra implementada en un archivo .pas que usa una interfaz para invocar funcionalidades dentro de una .DLL.

Mi duda surge en COMO SABER cuales son las funciones implementadas(encabezado de las funciones) en una DLL, ejemplo: tipo de dato de retorna, parametros, nombre la funcion, etc, asi como, de que forma invocarlas desde el LAZARUS (IDE para PASCAL) para realizar las funcionalidades antes mencionadas en el tema: Procesar una imagen mediante Opencv en Lazarus -¿Como se hace?, pues en PASCAL existen archivos .PAS que permiten realizar procesar una imagen, pero ESTOS ARCHIVOS .PAS ME DAN MUCHOS ERRORES SUS INTERFACES las mismas que tienen invocaciones a funcionalidades en ALGUNOS ARCHIVOS .DLL


  • 0