Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir...

82
Centro de Investigaci ´ on y de Estudios Avanzados del Instituto Polit ´ ecnico Nacional Unidad Zacatenco Departamento de Computaci´ on Sistema de software para la medici´ on de la respuesta pupilar Tesis que presenta Leonor Borja Mart´ ınez para obtener el Grado de Maestro en Ciencias en la Especialidad de Ingenier´ ıa El´ ectrica Director de la Tesis Dr. Luis Gerardo de la Fraga exico D.F. Diciembre 2006

Transcript of Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir...

Page 1: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Centro de Investigacion y de Estudios Avanzados

del Instituto Politecnico Nacional

Unidad Zacatenco

Departamento de Computacion

Sistema de software para la medicion de la respuesta

pupilar

Tesis que presenta

Leonor Borja Martınez

para obtener el Grado de

Maestro en Ciencias

en la Especialidad de Ingenierıa Electrica

Director de la Tesis

Dr. Luis Gerardo de la Fraga

Mexico D.F. Diciembre 2006

Page 2: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

ii

Agradecimientos

Al Dr. Luis Gerardo de la Fraga:Por todo su apoyo y motivacion durante todo este perıodo de elaboracion de Tesis. Por

compartir sus conocimientos, por brindar asesorıa siempre que lo necesite, por lasensenanzas de sus cursos y por la atencion que nos brindo a cada uno de nosotros.

Al Dr. Tonatiuh Matos:Por creer en mi y apoyarme para obtener el grado de maestrıa. Por escucharme y

motivarme para llegar hasta aquı.

A mis padres:Por inculcarme valores que me han servido para culminar esta tesis. Por su apoyo

incondicional en momentos difıciles, por su comprension, por su carino, por preocuparsepor mi y por los sacrificios que han hecho para el logro de mis objetivos.

A mis hermanos:Por que en ningun momento me han dejado sola, por todo su apoyo, por las palabras de

motivacion que me han brindado, por su compania en noches de trabajo y por todo sucarino.

A Juan Jesus Flores Barrera:Por compartir conmigo momentos difıciles y alegres durante mi estancia en el

CINVESTAV, por sus palabras de aliento que me han ayudado a superar y a crecercomo persona, porque en ningun momento ha dejado de creer en mi, por ser un gran

apoyo en mi vida, por toda su comprension y por todo su carino.

A Sofia Reza:Por ser mas que una amiga.

A mis amigos.

Al Centro de Investigacion y de Estudios Avanzados del IPN.Al Departamento de Computacion.

Al Consejo Nacional de Ciencia y Tecnologıa.Al proyecto 45306 del Consejo Nacional de Ciencia y Tecnologıa.

Page 3: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Resumen

La pupila es el orificio redondo del iris por el cual penetra la luz en el ojo. Cuandola intensidad de la luz incidente en el ojo es grande, la pupila reacciona disminuyendoel tamano del orificio pupilar. En cambio, cuando la intensidad disminuye, aumenta laabertura pupilar.

La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba devarios estımulos luminosos.

En el laboratorio de Bioelectronica del departamento de Ingenierıa Electrica, del CIN-VESTAV, se desarrollo una metodologıa instrumental para el analisis de las variacionesde respuestas pupilares a estımulos para contraer y dilatar la pupila. Este examen esgrabado en un video analogico con una duracion de 15 minutos, aproximadamente. Elcalculo de la respuesta pupilar, se realiza midiendo el area de la pupila en cada marcodel video analogico con un compas y una regla. Este proceso de medicion es muy tardadoya que por cada segundo se podrıan analizar 30 marcos en video digital, por lo tanto, serealizarıan a mano 15 · 60 · 30 = 27, 000 mediciones.

En esta tesis se diseno un procedimiento para la obtencion automatica de la respues-ta pupilar a partir de video digital. Primero se obtiene cada marco del video usando labiblioteca libre Kino; luego se localiza la posicion del ojo en los primeros marcos. Pos-teriormente, se aplican tecnicas de procesamiento de imagenes para obtener los pıxelesdel perımetro de la pupila. Finalmente, estos pıxeles se ajustan a una elipse usando unalgoritmo de ajuste algebraico para aproximar el area de la pupila con el area de la elipse.

La grafica de la respuesta pupilar es mostrada en una interfaz grafica junto con elvideo, donde ademas se tienen datos del paciente que son obtenidos de una base de datos.La interfaz grafica fue creada utilizando OpenGl, Qt y la biblioteca Kino. El acceso ala base de datos se realiza con el gestor de base de datos Mysql. Esta interfaz tiene lafinalidad de que el usuario pueda observar y registrar el comportamiento de la pupila delpaciente durante el examen de estimulacion.

Page 4: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

iv

Abstract

The pupil is the round, dark opening in the center of the iris of the eye through whichlight goes throw. The pupil changes its outline, depending on the illumination level: witha bright light, the pupil is contracted and in darkness it is dilated.

The calculation of pupil response consists of meassuring the pupil’s area under a seriesof light stimuli.

An instrumental metodology to analyze the variation of the pupil response by stimu-li to contract and to dilate the pupil was developed at the Biolectronics laboratory ofCinvestav’s Electrical Engineering Department. This test is recorded in analog video forabout fifteen minutes long. The calculation of the pupil response takes place by measuringthe pupil area using a ruler and a compass. Using digital video it is possible to analize30 frames per second, this is, 15 · 60 · 30 = 27, 000 measurements if this process is donemanually. Thefore we need automatize the process of calculating the pupil response.

In this thesis a process to get the pupil response automatically was designed. First,using the free software library Kino, we obtain each video frame; then, the eye’s posi-tion is found on the initial frames; later, in order to obtain the perimeter’s pixels of thepupil, standard image processing techniques are applied to the eye’s subimage. Finally,the perimeter is fitted to an ellipse using an algebraic algorithm, and the pupil area isapproximated with the ellipse area.

The graph of the pupil response is showen in a graph interface with the digital video;additionally we have the patient’s profile from a database. The graph interface has beendeveloped using OpengGl, Qt and the library Kino. The database’s access was createdwith Mysql. This interface aims that the user can watch and register the behavior of thepupil during the stimulation test.

Page 5: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Indice general

Lista de Figuras VI

1. Introduccion 11.1. La importancia de la respuesta pupilar . . . . . . . . . . . . . . . . . . . . 11.2. Descripcion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Organizacion de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Teorıa 72.1. El formato de video DV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2. Biblioteca Kino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3. Tecnicas de procesamiento de imagen . . . . . . . . . . . . . . . . . . . . . 10

2.3.1. Segmentacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.2. Correlacion cruzada . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3.3. Morfologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4. Clasificador de mınima distancia . . . . . . . . . . . . . . . . . . . . . . . . 162.5. Ajuste algebraico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3. Desarrollo del Problema 213.1. Digitalizacion del video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2. Procesamiento de marcos del video . . . . . . . . . . . . . . . . . . . . . . 21

3.2.1. Obtencion de marcos . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2.2. Conversion a tonos de grises . . . . . . . . . . . . . . . . . . . . . . 233.2.3. Definicion del area de trabajo . . . . . . . . . . . . . . . . . . . . . 24

3.3. Deteccion de la pupila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.1. Segmentacion por umbral global . . . . . . . . . . . . . . . . . . . . 243.3.2. Operacion morfologica cerrando . . . . . . . . . . . . . . . . . . . . 263.3.3. Extraccion de los objetos y calculo del vector de caracterısticas . . . 263.3.4. Clasificacion de los objetos . . . . . . . . . . . . . . . . . . . . . . . 27

3.4. Calculo de la respuesta pupilar . . . . . . . . . . . . . . . . . . . . . . . . 323.4.1. Extraccion del perımetro de la pupila . . . . . . . . . . . . . . . . . 323.4.2. Eliminacion del brillo de la luz . . . . . . . . . . . . . . . . . . . . . 34

v

Page 6: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

vi INDICE GENERAL

3.4.3. Implementacion del algoritmo de ajuste algebraico a una elipse . . . 353.5. Desarrollo de la interfaz grafica . . . . . . . . . . . . . . . . . . . . . . . . 37

3.5.1. Visualizacion del video digital . . . . . . . . . . . . . . . . . . . . . 383.5.2. Manipulacion del video digital . . . . . . . . . . . . . . . . . . . . . 413.5.3. Visualizacion y manipulacion de la grafica de la respuesta pupilar . 413.5.4. Conexion a una base de datos para mostrar los datos del paciente . 44

4. Resultados y Discusion 474.1. Obtencion de la pupila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5. Conclusiones y Trabajo futuro 535.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

A. Lista de programas desarrollados 57A.1. Procesamiento de video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57A.2. Correlacion cruzada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57A.3. Deteccion de la pupila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58A.4. Respuesta pupilar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59A.5. Interfaz grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

B. Descripcion de la interfaz grafica 61

C. Graficas de la respuesta pupilar 65C.1. Graficas de la respuesta pupilar . . . . . . . . . . . . . . . . . . . . . . . . 65C.2. Graficas con filtrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

D. Scripts desarrolladas 69D.1. Animacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69D.2. Filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Page 7: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Indice de figuras

1.1. Un paciente es sometido a estımulos que consisten en la exhibicion de pan-tallas de color en el monitor de una PC para contraer y dilatar la pupila.Imagenes tomadas en el laboratorio de Biolectronica, CINVESTAV. . . . . 3

1.2. Diagrama del procedimiento general . . . . . . . . . . . . . . . . . . . . . 5

2.1. a) Imagen en tono de grises sometida a b)una tecnica para la deteccion debordes y c) un umbral para realzarlos. . . . . . . . . . . . . . . . . . . . . 12

2.2. Correlacion de f(x, y) y w(x, y) en el punto (s, t) . . . . . . . . . . . . . . 132.3. a)Imagen de un oso sometida a una operacion de b) dilatacion y c)erosion . 152.4. a)Imagen de una mariposa sometida a una operacion de b) dilatacion y

c)erosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.5. Espacio de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1. Para convertir en un formato digital se conecto una videocasettera quesoporta el formato VHS a una camara digital . . . . . . . . . . . . . . . . . 21

3.2. Para su procesamiento el video digital se bajo a la computadora a travesdel puerto firewire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3. Un marco del video de 720× 480 pıxeles. . . . . . . . . . . . . . . . . . . . 233.4. Imagen a escala de grises . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.5. Correlacion entre una a) pupila artificial y b) un marco del video de tamano

720× 480 pıxeles, para obtener una c) subimagen de solo el ojo de tamano220× 150 pıxeles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.6. Imagen sometida al umbral . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.7. Imagen a escala de grises . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.8. Procedimiento para la extraccion de objetos . . . . . . . . . . . . . . . . . 283.9. Tres patrones de las clases (a) pupila separada, (b) pupila y pestanas juntas

y (c) pupila y pestanas unidas. . . . . . . . . . . . . . . . . . . . . . . . . . 303.10. Procedimiento para la clasificacion de objetos . . . . . . . . . . . . . . . . 313.11. Definicion de los parametros para una elipse donde a y b son los semiejes

mayor y menor, respectivamente. . . . . . . . . . . . . . . . . . . . . . . . 323.12. Imagenes de varias elipses construidas con eje a=50 y eje a) b=25, b) b=40,

c) b=70 y d) b=80. El tamano de cada imagen es de 100×100 pıxeles. . . . 33

vii

Page 8: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

viii INDICE DE FIGURAS

3.13. Perımetro correspondiente a las elipses con a=50, y con eje eje a) b=25, b)b=40, c) b=70 y d) b=80. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.14. Para obtener el perımetro se aplica una operacion de erosion a la imagen a)para obtener b), el resultado de restar la imagen erosionada b) a la imagenoriginal a) es el perımetro mostrado en c) . . . . . . . . . . . . . . . . . . 34

3.15. (a) El perımetro es afectado por el brillo de la luz, y esto serıa una fuentede error al aproximar a una elipse, (b) por esta razon la parte afectada noes tomada en cuenta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.16. a) Definicion del lienzo en 3D que utiliza OpenGL, b)Coordenadas de laimagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.17. Diseno de la Interfaz grafica. En la parte izquierda se encuentran cajasde texto para mostrar datos del paciente y de la grafica de la respuestapupilar. En la parte derecha se muestra el video digital y la grafica de larespuesta pupilar. Finalmente en la parte inferior de la interfaz se tienenlos botones de control para la reproduccion del video. . . . . . . . . . . . . 42

3.18. Reproduccion del video digital y dibujado de la grafica de la respuestapupilar. La imagen fue tomada en el marco 2354. . . . . . . . . . . . . . . 44

3.19. Sincronizacion de la grafica de la respuesta pupilar con el video digital. Laimagen fue tomada en el marco 7603. . . . . . . . . . . . . . . . . . . . . . 45

3.20. Interfaz mostrando los datos del paciente despues de realizar la conexion ala base de datos. La imagen fue tomada en el marco 7529. . . . . . . . . . 46

4.1. Elipse de semieje a = 25 y semieje b = 15 rotada en 30o, 45oy 60o . . . . . 494.2. Los pıxeles del perımetro de la Fig. 3.15(a) y la elipse ajustada. . . . . . . 504.3. Animacion a partir de los datos obtenidos por el ajuste algebraico a una

elipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4. Grafica de la respuesta pupilar del video desde el marco 6001 al 12000 . . . 52

B.1. Elementos de la interfaz grafica . . . . . . . . . . . . . . . . . . . . . . . . 62

C.1. Grafica de la respuesta pupilar del video completo. . . . . . . . . . . . . . 65C.2. a) Grafica de la respuesta pupilar desde el marco 1 al 6000. b) Grafica de la

respuesta pupilar desde el marco 6000 al 12000. c) Grafica de la respuestapupilar desde el marco 12000 al 18000. d) Grafica de la respuesta pupilardesde el marco 18000 al 24000. . . . . . . . . . . . . . . . . . . . . . . . . 66

C.3. a) Frecuencia de la grafica de la respuesta pupilar. b) Filtro utilizado parareconstruir la grafica de la respuesta pupilar. . . . . . . . . . . . . . . . . . 67

C.4. Grafica de la respuesta pupilar filtrada del video completo. . . . . . . . . . 67C.5. b) Grafica de la respuesta pupilar filtrada desde el marco 1 al 6000. b)

Grafica de la respuesta pupilar filtrada desde el marco 6000 al 12000. c)Grafica de la respuesta pupilar desde el marco 12000 al 18000. d) Graficade la respuesta pupilar filtrada desde el marco 18000 al 24000. . . . . . . . 68

Page 9: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Capıtulo 1

Introduccion

1.1. La importancia de la respuesta pupilar

La pupila es el orificio redondo del iris por el cual penetra la luz en el ojo y varıa sucontorno en funcion del nivel de iluminacion (entre 2 y 8 mm). Ante una luz brillante secontrae y se dilata en la oscuridad [1].

La evaluacion de la pupila constituye una importante puerta de entrada al diagnosticotopografico con orientacion patogenica y etiologica. Se han desarrollado trabajos acercade la importancia de la musculatura intrınseca de los ojos en el diagnostico de enferme-dades neuropsiquiatricas, prestando especial atencion al comportamiento de las pupilas.Existe una gran relacion con enfermedades nerviosas y mentales y con la accion de algunosneuropsicofarmacos. En adicion, muchos estudios clınicos, neuro-oftalmologicos, y farma-cologicos han procurado establecer la utilidad de la pupila en diagnosticar las lesiones delos caminos visuales y del funcionamiento normal de la retina [2]. Entre los problemasclınicos mas frecuentes se tiene:

1. Cataratas

2. Desprendimiento de retina

3. Colision de nervios opticos

4. Diabetes

En los diabeticos se puede apreciar el dano ocasionado por la enfermedad a traves de larespuesta pupilar.

Los hallazgos cientıficos sobre la respuesta pupilar ante fenomenos psicologicos datande un par de siglos atras, aunque los avances mas importantes se han producido en los

1

Page 10: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2 CAPITULO 1. INTRODUCCION

ultimos cincuenta anos. En los primeros trabajos se relacionaban directamente la dila-tacion pupilar con un amplio conjunto de dimensiones afectivas: preferencias, intereses,atraccion, agrado, motivacion y emocion. Posteriormente se ha observado que esta medidaesta mas relacionada con el esfuerzo cognitivo que con las variables afectivas que se ponenen juego en los distintos fenomenos psicologicos [3].

La respuesta pupilar ha sido de gran interes para fisiologos y neurologos quienes deseananalizar comportamiento de la respuesta pupilar en relacion a las funciones neuronales,pues permite llevar a cabo evaluaciones cuantitativas de patologıas asociadas a la percep-cion visual cromatica tales como la diabetes mellitus [1].

1.2. Descripcion del problema

Respecto a estudios pupilares se han desarrollado e implementado diversas metodo-logıas. En el laboratorio de Biolelectronica del departamento de Ingenierıa Electrica, seelaboro una metodologıa instrumental para el analisis de las variaciones de respuestas pu-pilares a estımulos cromaticos en el proceso de contraccion y dilatacion. El estudio consisteen la adqusicion de las respuestas pupilares a estımulos cromaticos (RPC) en condicionesfotopicas, mediante la tecnica de video-oculografıa (VOG). El diametro pupilar se midecuando la respuesta de la pupila se encuentra en estado estable [4].

Los estımulos a los que es sometido cada paciente, consisten en la exhibicion de panta-llas completas de color en el monitor de una PC, Fig. 1.1, de diferentes longitudes de ondaen el espectro visible de 400nm a 650nm, es decir, en los colores violeta (400-430nm), azul(430-480nm), azul verdoso (480-490nm), verde azulado (490-500 nm), verde (500-510m),verde amarillento (510-560nm), verde amarillo (560-570), amarillo (570-580nm), naranja(580-590nm), naranja rojizo (590-620nm) y rojo (620-650nm) . Estas fueron calculadas ynormalizadas en sus componentes RGB (Red, Green, Blue), de acuerdo a las coordenadasestandar de iluminacion de CIE 1978 [4].

La razon por la que se exhiben pantallas de colores es porque la vision de color tricromi-ca esta compuesta por tres tipos de receptores con diferente sensibilidad espectral paralos colores principales: rojo, verde y azul. Las alteraciones de alguno o de todos producenanomalıas o falta de vision de colores [4], dando origen a:

Acromatopsias: Falta de vision de colores

Discromatopisas: Ceguera parcial a los colores

Protanopes: Ceguera al rojo

Deuteranopes: Ceguera al verde

Page 11: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

1.3. ORGANIZACION DE LA TESIS 3

(a) (b)

Figura 1.1: Un paciente es sometido a estımulos que consisten en la exhibicion de pantallasde color en el monitor de una PC para contraer y dilatar la pupila. Imagenes tomadas en el

laboratorio de Biolectronica, CINVESTAV.

Tritanopes: Ceguera al azul

Alteraciones congenitas: no se perciben los colores entre rojo y verde o daltonismo.

Alteraciones adquiridas: no se perciben los colores entre azul y amarillo.

El calculo de la respuesta pupilar se realiza midiendo el area de la pupila en los marcosdel video analogico con un compas y una regla basandose en una rejilla.Para cada examen se tienen 26 estımulos con duracion de 6 segundos cada uno. Tomandoen cuenta que se tienen 30 marcos por segundo entonces se estarıan realizando 4680 medi-ciones en total, que claramente no pueden realizarse “a mano” y necesita automatizarse.

1.3. Organizacion de la tesis

Nuestro trabajo fue obtener la respuesta pupilar automaticamente. Para ello, se si-guieron los siguientes pasos que estan esquematizados en la Fig. 1.2:

1. Digitalizar el video: El examen pupilar para cada paciente es almacenado en videocon formato VHS (Video Home System), es decir un formato analogico. Para suprocesamiento en la computadora se debe convertir en un formato digital.

2. Procesar el video:

a) Obtener marcos: En el procesamiento de video trabajamos con marcos delvideo, los cuales obtuvimos utilizando la biblioteca Kino.

Page 12: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

4 CAPITULO 1. INTRODUCCION

b) Conversion a tono de grises: Necesitamos que cada marco este en escala decolores grises; por lo tanto, hicimos una conversion del formato RGB a tono degrises.

c) Correlacion cruzada: Se utiliza correlacion cruzada para identificar el area dela pupila y trabajar solo con ese submarco, reduciendo carga y tiempo deprocesamiento.

3. Deteccion de la pupila:

a) Segmentacion por un umbral global: Se aplica un umbral global a cada marcoeliminando la mayor parte del iris y parpados.

b) Operacion morfologica cerrando: Utilizamos una operacion morfologica paradefinir los objetos que se encuentran dentro del marco de trabajo.

c) Extraccion de los objetos y calculo del vector de caracterısticas para cadauno de ellos: Se extraen los objetos y se calcula para cada uno un vector decaracterısticas y se seleccionan aquellos elementos del vector que definen a cadaobjeto.

d) Clasificacion de los objetos: Se realiza un clasificador de mınimas distanciaspara clasificar y obtener la pupila.

e) Extraccion del perımetro de la pupila: Utilizando operaciones morfologicas ob-tenemos el perımetro de cada pupila.

4. Calculo de la respuesta pupilar: Se ajusto el perımetro de la pupila a una elipse conun algoritmo de ajuste algebraico y de este modo calculamos el area de la pupila.

5. Desarrollo de la interfaz grafica:

a) Visualizacion del video digital

b) Visualizacion y manipulacion de la grafica de la respuesta pupilar

c) Sincronizacion de la grafica de la respuesta pupilar con el video digital

d) Conexion a una base de datos para mostrar los datos del paciente.

En el capıtulo 2 se mostrara toda la teorıa necesaria para entender el desarrollo de latesis; estos temas son:

1. El formato de video DV

2. Biblioteca Kino

3. Tecnicas de procesamiento de imagenes

Segmentacion

Page 13: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

1.3. ORGANIZACION DE LA TESIS 5

Digitalizar el videoProcesamiento del video pupila

Detección de la

respuesta pupilar Cálculo de la Visualización de la

interfaz gráfica

Figura 1.2: Diagrama del procedimiento general

Correlacion Cruzada

Morfologıa

Clasificador de mınimas distancias

4. Ajuste algebraico de una elipse.

En el capıtulo 3 se describira todo el procedimiento realizado, para luego pasar alcapıtulo 4 donde se muestran los resultados y su discusion. Finalmente el capıtulo 5contiene conclusiones obtenidas del trabajo de tesis y el trabajo a futuro que se puededesarrollar a partir de este.

Page 14: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

6 CAPITULO 1. INTRODUCCION

Page 15: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Capıtulo 2

Teorıa

2.1. El formato de video DV

El formato de Video Digital denominado en ingles Digital Video (DV) fue creado en1996 como un estandar internacional segun la norma IEC 61834 que define el codec yel tipo de cinta. El DV es un estandar de video con aplicacion domestica, industrial ybroadcast. Se basa en el algoritmo DCT (Transformada de Coseno Discreta) con unacompresion intramarco, es decir, aprovecha la redundancia espacial de cada marco devideo para comprimirla a una razon 5:1. Usa como protocolo de trasmision de datos elIEEE 1394 o Firewire.

El DV es un sistema de video digital por componentes que utiliza una frecuencia demuestreo 4:2:0 en PAL y 4:1:1 en NTSC. Esto es, en las lıneas de video el muestreo de lu-minancia (Y) es el doble que el de crominancia (C). Pero ademas, 4:2:0 explora los coloresen lıneas alternas: en una lınea el rojo y en la siguiente el azul y ası sucesivamente. Por lotanto hay cuatro veces mas informacion de luminancia que de crominancia. La frecuenciade Y es 13,5 MHz y la de C es 6,75 MHz. El DV tiene una profundidad de color de 8 bits [5].

DV hace referencia a videocamaras, magnetoscopios y cintas para video digital. Es-ta denominacion engloba todos los formatos de video digital que usan una cinta de1/4”(6.35mm) de oxido de metal evaporado. Este tipo de cinta tiene tres versiones dis-tintas: Mini, M y L . La mas conocida es la Mini DV que es usada en la gama domestica,aunque tambien se usa en equipos profesionales y semiprofesionales. DV graba video ala misma resolucion que el Betacam Digital (720 pıxeles por lınea de video explorada) ycon una informacion de color del doble de compresion que la del formato D-1 (video sincompresion); como ya se menciono, una relacion de 4:2:0 a 625 lıneas (PAL), y de 4:1:1 a525 lıneas NTSC.

El formato DV graba audio PCM sin compresion. Tiene dos configuraciones posibles

7

Page 16: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

8 CAPITULO 2. TEORIA

de audio. La mas habitual y de mayor calidad permite 2 canales de audio a 48 KHz y 16bits. La otra posibilidad, no usada normalmente por su poca calidad, dispone de 4 canalesa 32 KHz y 12 bits. La configuracion de 2 pistas, 48 KHz y 16 bits permite una calidadmuy similar al resto de formatos de video profesionales y superior al disco compacto (CD).

DV es conocido como DV25 porque el flujo de video resultante es de 25 Mb/s. Anadien-do audio, informacion de track y correccion de errores, la cifra sube hasta 29 Mb/s. Elresultado de informacion es, aproximadamente, de 200 MB por minuto y unos 12 GBpor hora. La Mini DV tiene versiones de 60 y 80 minutos. Las M y L tienen duracionesque van desde 12 a 184 minutos siempre dependiendo de si se trata de DV, DVCAM oDVCPRO, DVCPRO 50 o DVCPRO HD [5].

Para la conectividad, el DV utiliza el interfaz IEEE 1394, tambien conocido comoFirewire e i.Link, que si bien no es parte del formato en sı, esta estrechamente ligado aeste. Cualquier equipo DV, tanto domestico como profesional, lleva un conector Firewire,que puede tener conexion de 6 pines o de 4 pines. El Firewire tambien es usado comopuerto serie de alta velocidad para computadoras aparte del USB [6].

2.2. Biblioteca Kino

Kino es un editor de libre distribucion, no lineal, de video digital para GNU/Linux[7]. Las principales caracterısticas de Kino son las siguiente:

Incluye una excelente integracion con IEEE-1394 para captura, control VTR y gra-bacion de regreso a la camara.

Captura el video a disco en formato Raw DV y AVI en sus dos formas AVI tipo 1y AVI tipo 2 (flujo de audio por separado).

Edicion de audio y video donde se permite intercalar, copiar y pegar partes delvideo.

Exporta y genera videos en los formatos: DV a traves de IEEE1394, Raw DV, AVI(tipo 1 y tipo 2) y en los codecs: MPEG-1, MPEG-2, MPEG-4. Con Kino, ademas,se puede exportar el video en una lista de imagenes.

Las imagenes pueden ser exportadas en formato BMG, GIF, JPEG, PNG, PPM,SVG, Targa, TIFF y XMP.

Genera archivos de audio en formato WAV, MP3 y Ogg Vorbis.

Kino a su vez, utiliza algunas librerıas de GTK+2.0. Esto no significa que solo puedatrabajar sobre el escritorio de GNOME ya que tambien se ejecuta sobre X Window, KDE

Page 17: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2.2. BIBLIOTECA KINO 9

entre otros. Para la comunicacion entre la camara de video y la computadoras a travesdel dispositivo IEEE1394, se requiere una version del nucleo 2.4 o 2.6.

Para poder ejecutarse Kino requiere de ciertas bibliotecas y archivos [7]:

gtk 2.6 : Biblioteca para ejecutar interfaces graficas de usuario (GUI).

gtk-devel: Biblioteca para crear interfaces graficas de usuario (GUI).

glib-devel: Biblioteca de bajo nivel estructura basica de GTK+ y GNOME. Propor-ciona manejo de estructura de datos para C, portabilidad, interfaces para funciona-lidades de tiempo de ejecucion como ciclos, hilos, carga dinamica o un sistema deobjetos.

gnome-libs: Biblioteca principal para el ambiente del escritorio GNOME.

gnome-libs-devel: Biblioteca que permite el desarrollo de la biblioteca gnome-libs.

xdevel: Biblioteca que se utiliza para ejecutar y controlar aplicaciones con graficos.

imlib-devel: Biblioteca para cargar y dibujar diferentes formatos de imagenes.

libxml2: Biblioteca XML C desarrollada para el projecto GNOME.

libxml2-devel: Biblioteca que permite la manipulacion de archivos XML. Incluye unsoporte para leer, escribir o modificar archivos XML y HTML.

audiofile: Biblioteca que provee un API para el acceso a una gran variedad de ar-chivos de audio en el formato AIFF/AIFF-C, WAVE y NeXT/Sun, en una maneraindependiente al archivo y al formato.

libraw1394: Biblioteca que permite el acceso directo a la informacion del dispositivoconectado al puerto IEEE1394.

libdv: Biblioteca que contiene los codecs necesarios para codificar o decodificar elformato DV utilizado por la mayorıa de las camaras de video digital.

Dentro de la biblioteca Kino existe una gran variedad de clases y metodos. Los masimportantes, para cumplir el objetivo de esta tesis, son los que permiten extraer marcosdel video.

Clase PlayList

La clase PlayList contiene toda la informacion del clip de video y una gran variedadde metodos para controlarlo y manipularlo. Kino utiliza esta clase para cargar el video,para obtener toda la informacion de la secuencia del video y para realizar acciones de

Page 18: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

10 CAPITULO 2. TEORIA

edicion y manejo (eliminar o agregar marcos, ir al inicio o fin del video, unir o separarescenas, guardarlo con algun otro formato, etc.).

Los metodos de esta clase que permiten extraer marcos del video son:

bool LoadMediaObject( char ∗filename): Carga el video con nombre y ruta dada enfilename.

int GetNumFrames(): Este metodo regresa el numero de marcos que contiene elvideo.

bool GetFrame(int numFrame, Frame & frame): Recibe como parametros el numero,dentro de la secuencia del video del marco que se quiere obtener y una instancia dela clase frame para copiar su informacion.

Clase Frame

En esta clase se guarda la informacion de audio y video para cada marco del clip devideo. Con los metodos de esta clase se pueden conocer las dimensiones, audio y coloren el formato RGB (Red, Green, Blue) de cada marco. Ademas, esta clase contiene lacodificacion que define la tasa de muestro de audio y video para poder reproducirlo.

Los metodos utilizados por esta clase para poder extraer marcos del video son:

GetFramePool( ): Crea una instancia de la clase Frame y la une a los marcos delvideo previamente cargados en la clase PlayList.

int ExtractRGB( void ∗rgb ): Extrae de cada marco el color de cada pıxel en suscomponentes RGB de acuerdo a las dimensiones del marco.

int GetWidth(): Obtiene el largo del marco en pıxels.

int GetHeight(): Obtiene el alto del marco en pıxels.

2.3. Tecnicas de procesamiento de imagen

2.3.1. Segmentacion

La segmentacion de imagenes tiene su origen en numerosos estudios psicologicos queindican la preferencia de los humanos por agrupar regiones visuales en terminos de pro-ximidad, similitud y continuidad para construir un conjunto de unidades significativas.Existe cierta confusion en torno al concepto de segmentacion ya que si bien algunos auto-res consideran suficiente marcar los puntos de la imagen (pıxeles) con un valor indicativo

Page 19: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2.3. TECNICAS DE PROCESAMIENTO DE IMAGEN 11

de su pertenencia a determinada region o clase. Otros indican que ademas es necesarioproveer un mecanismo que permita una representacion simbolica de las relaciones to-pologicas existentes entre las distintas unidades. En cuanto a la unidad significativa querige la segmentacion, esta suele corresponder a pıxeles, regiones o contornos que mues-tran o disciernen una similitud en cuanto a intensidad, color, textura, movimiento, etc. [8].

El gran desarrollo de las computadoras personales permite encontrar nuevas aplicacio-nes para el procesamiento y analisis digital de imagenes. La segmentacion de las imagenesdigitales es una parte importante para muchas tareas en el analisis y procesamiento digi-tal. Las tecnicas de segmentacion se dividen en cuatro grandes grupos, el primer grupo loconforman las tecnicas de segmentacion basadas en los valores de pıxel. El segundo grupocontiene tecnicas de segmentacion basadas en el area. Las tecnicas basadas en bordes per-tenecen al tercer grupo y, finalmente, las tecnicas basadas en la fısica es el cuarto grupo[8].

Dentro de estas tecnicas destacan: tecnicas de umbralizacion pertenecientes al primergrupo, metodos basados en esquinas pertenecientes al tercer grupo, tecnicas basadas enregiones pertenecientes al segundo grupo y metodos de conectividad-perseverancia perte-necientes al tercer grupo [9].

1. Las tecnicas de umbralizacion toman decisiones con base en la informacion de unpıxel local. Son eficientes cuando los niveles de intensidad de los objetos caen fueradel angulo recto del fondo de la imagen. Esto se debe a que la informacion espaciales ignorada.

2. Los metodos basados en esquinas se centran en la deteccion de contornos. Son efi-cientes cuando se tiene una definicion total del objeto, es decir, todos los bordesestan juntos o completos.

3. Un metodo basado en regiones funciona de la siguiente forma: La imagen es particio-nada en regiones conectadas, agrupando pıxeles vecinos con un nivel de intensidadsimilar. Regiones adyacentes se combinan bajo cierto criterio que implica homoge-neidad o agudeza de los lımites de la region. Finalmente, con criterios muy estrictos,se crea la fragmentacion.

4. El metodo de segmentacion basado en conectividad perseverancia comunmente esllamado modelo del contorno activo. La idea principal es iniciar en algun lımite dela figura representado en la forma de curvas spline e interactivamente modificarloaplicando varias operaciones de erosion-dilatacion de acuerdo a algunas funciones deenergıa. Aunque el modelo de energıa-reduccion no es nuevo, mantenerlo junto conun modelo elastico se muestra interesante y con un grado de dificultad mayor. Comode costumbre, tales metodos tienen el riesgo de quedar atrapados en un mınimo local[9].

Page 20: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

12 CAPITULO 2. TEORIA

(a) (b)

(c)

Figura 2.1: a) Imagen en tono de grises sometida a b)una tecnica para la deteccion de bordes yc) un umbral para realzarlos.

2.3.2. Correlacion cruzada

La correlacion es la forma basica de encontrar una subimagen dentro de otra imagen.Dada una imagen digital f(x,y) de tamano M×N, lo que se desea es determinar si contieneuna region similar de otra region w(x,y) de tamano J×K, donde J ≤ M y K≤ N. En laforma mas simple la correlacion entre f(x,y) y w(x,y) esta dada por:

c(s, t) =∑

x

∑y

f(x, y)w(x− s, y − t) (2.1)

donde s = 0, 1, 2, ...,M − 1, t = 0, 1, 2, ..., N − 1. La Fig. 2.2 muestra el procedimientodonde se asume que el origen de f(x, y) se encuentra en la parte superior izquierda y elorigen de w(x, y) en su centro. Para algun valor de (s, t) dentro de f(x, y), se aplica laecuacion 2.1 y se obtiene el valor de c. Como s y t varıan, w(x, y) se mueve dentro de laimagen y se obtiene c(s, t). El valor maximo de c(s, t) indica la posicion donde w(x, y)coincide con f(x, y). Es importante notar que la precision se pierde para los valores de sy t cerca de los bordes de f(x, y), con un error proporcional al tamano de w(x, y).

La correlacion de la funcion dada en la ecuacion 2.1 tiene la desventaja de ser sensiblea los cambios en la amplitud de f(x, y) y w(x, y), por ejemplo, el duplicar todos los valores

Page 21: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2.3. TECNICAS DE PROCESAMIENTO DE IMAGEN 13

y

x M

N

Origen

(s,t)

w(x−s,y−t)

f(x,y)

J

K

t

s

Figura 2.2: Correlacion de f(x, y) y w(x, y) en el punto (s, t)

de f(x, y) duplica los valores de c(s, t). Con frecuencia se utiliza una aproximacion quesupera esta dificultad y se logra vıa el coeficiente de correlacion, el cual se define como:

r(s, t) =∑

x

∑y[f(x, y)− f(x, y)][w(x− s, y − t)− w]

[∑

x

∑y[f(x, y)− f(x, y)]2

∑x

∑y[w(x− s, y − t)− w]2]1/2

(2.2)

donde s = 1,2,...M-1, t =1,2,...N-1, w es el promedio de intensidad de la mascara (calcu-lado una sola vez), f(x, y) es el promedio de los valores de f(x, y) en la region coincidentecon w(x, y), y las sumatorias toman las coordenadas comunes para ambas imagenes. Elvalor del coeficiente dede correlacion r(s, t) se encuentra en la amplitud de −1 a 1, inde-pendiente de los cambios de la amplitud de f(x, y) y w(x, y) [10].

2.3.3. Morfologıa

La palabra morfologıa comunmente denota una rama de la biologıa que estudia laforma y estructura de los animales y plantas. Se usa la misma palabra en el contexto demorfologıa matematica como una herramienta para extraer componentes de una imagenque son usados en la representacion y descripcion de la region de una figura, tal comobordes, esqueletos, y cubierta convexa. Las tecnicas morfologicas para el pre o post proce-samiento de imagenes es muy variada e interesante, por ejemplo, filtrado, adelgazamientoy podamiento morfologico[11].

El lenguaje de la morfologıa matematica es la teorıa de conjuntos. La morfologıa ofre-ce una unificada y poderosa aproximacion a numerosos problemas de procesamiento de

Page 22: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

14 CAPITULO 2. TEORIA

imagenes. Los conjuntos en la morfologıa matematica representan las figuras de los obje-tos en una imagen [11].

El objetivo de las transformaciones morfologicas es la extraccion de estructuras geometri-cas en los conjuntos sobre los que se opera, mediante la utilizacion de otro conjunto deforma conocida denominado elemento estructural. El tamano y la forma de este elemen-to se escoge, de acuerdo la morfologıa del conjunto sobre el que va a interaccionar y deacuerdo a la extraccion de formas que se desean obtener [12].

Las operaciones morfologicas mas comunes son las siguientes:

Dilatacion

La dilatacion es el proceso de incorporar dentro del objeto todos los puntos del fondode la imagen que lo tocan, dejandolo mas grande en area. Si el objeto es circular de ta-mano 5 pıxels, su diametro incrementa en dos pıxeles por cada dilatacion. Si dos objetosson separados por menos de tres pıxels en algun punto, ellos se conectaran (combinandoseen un objeto). La dilatacion es usada para rellenar huecos en objetos segmentados [11].

La dilatacion se define generalmente como:

D = B ⊕ S = {x, y | (Sx,y)∩ 6= ∅} (2.3)

Esto es, la imagen binaria D que resulta de dilatar B por S es el conjunto de puntos(x, y) tal que si S es trasladada de modo que su origen se encuentra en el punto (x, y),entonces sus interseccion con B es diferente del conjunto vacıo. A S se le conoce comoelemento estructural [11].

Erosion

La erosion es el proceso de eliminar todo los puntos que forman el borde de un objeto,dejandolo mas pequeno en area. Si el objeto es circular de tamano 5 pıxeles, su diametrose decrementa en dos pıxeles por cada erosion. Sı el objeto se reduce a menos de trespıxeles de grosor en algun punto, se deconectara (se separa en dos objetos). Los objetosque no tienen mas de dos pıxeles de grosor, son eliminados. La erosion es usada paraborrar segmentos pequenos de una imagen que son de poco interes [11].

La erosion se define generalmente como:

E = B S = {x, y | Sx,y ⊆ B} (2.4)

Esto es, la imagen binaria E que resulta de erosionar B por S es el conjunto de puntos

Page 23: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2.3. TECNICAS DE PROCESAMIENTO DE IMAGEN 15

(a) (b) (c)

Figura 2.3: a)Imagen de un oso sometida a una operacion de b) dilatacion y c)erosion

(x, y) tal que si S es trasladada de modo que su origen se encuentra en el punto (x, y),entonces esta completamente contenido dentro de B.

Abriendo

El proceso de aplicar una erosion seguida de una dilatacion es llamado abriendo. Estaoperacion morfologica tiene el efecto de eliminar objetos, pequenos y delgados, rompeobjetos en puntos delgados, y generalmente alisa bordes de objetos mas grandes sin generarcambios significativos en su area [11]. La operacion abriendo esta definida como:

B ◦ S = (B ⊗ S)⊕ S (2.5)

Cerrando

El proceso de aplicar una dilatacion seguida de una erosion es llamado cerrando. Estaoperacion morfologica tiene el efecto de rellenar objetos pequenos y delgados, conectarobjetos cercanos, y generalmente alisa los bordes de los objetos sin generar cambios sig-nificativos en su area [11]. La operacion cerrando esta definida como:

B • S = (B ⊕ S)⊗ S (2.6)

A menudo, cuando las imagenes presentan ruido se segmentan utilizando un umbral. Elresultado es que en los bordes no existe una definicion adecuada, o los objetos presentanhuecos, y en el fondo de la imagen hay puntos pequenos que representan ruido. Lasoperaciones de abriendo y cerrando pueden ser utilizadas en estos casos. Algunas vecesaplicaciones consecutivas de erosion seguida por el mismo numero de dilataciones producenefectos no deseados.

Page 24: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

16 CAPITULO 2. TEORIA

(a) (b) (c)

Figura 2.4: a)Imagen de una mariposa sometida a una operacion de b) dilatacion y c)erosion

2.4. Clasificador de mınima distancia

La clasificacion de datos se utiliza para asignar etiquetas correspondientes a grupos concaracterısticas homogeneas, con la propiedad de distinguir objetos dentro de una imagen.La clasificacion sera ejecutada con base en las caracterısticas espectrales definidas, talescomo densidad, color, textura, etc. Puede decirse que la clasificacion divide el espacio decaracterısticas (objetos geometricos, regiones espectrales, etc.) en varias clases basadas enuna regla de decision.

La clasificacion de imagenes analiza las propiedades numericas de los objetos en laimagen y organiza los datos en categorıas. Los algoritmos de clasificacion tıpicamente em-plean dos fases de procesamiento: entrenamiento y prueba. En la fase de entrenamiento, seidentifican propiedades que caracterizan a los objetos en la imagen, y con base en ello, secrea una unica descripcion de cada categorıa de clasificacion, es decir, se crean las clases.En la fase de prueba, estas categorıas son utilizadas para clasificar los elementos de laimagen [13].

La descripcion de clases de entrenamiento es un componente importante dentro delproceso de clasificacion. En una clasificacion supervisada, los procesos estaticos o proce-sos de distribucion libre pueden ser utilizados para extraer descriptores de la clase. Unaclasificacion no supervisada depende de algoritmos de acumulamiento para segmentar au-tomaticamente datos de entrenamiento dentro de clases prototipo. En cualquier caso, elcriterio para construir clases se basa en que cada una debe cumplir los siguientes puntos[13]:

Independencia, un cambio en la descripcion de la clase no cambia la descripcion deotra

Page 25: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2.4. CLASIFICADOR DE MINIMA DISTANCIA 17

9

8

7

6

5

4

3

2

1

Largo

Ancho

1 2 3 4 5 6 7 8 9

Figura 2.5: Espacio de objetos

Discriminacion, los diferentes objetos en la imagen deben tener descripciones dife-rentes

Fiabilidad, todos los objetos que forman una clase deben compartir una descripcionque defina a todo el grupo en conjunto.

Una manera conveniente de construir una descripcion parametrica de este tipo es vıaun vector de caracterısticas (v1, v2, ..., vn), donde n es el numero de atributos que descri-ben a cada objeto y por lo tanto a su clase. Esta representatacion indica que cada objetoocupa un punto y cada clase ocupa un subespacio en un espacio n-dimensional. Visto co-mo tal, el problema de clasificacion es determinar cual clase del subespacio le correspondea cada vector de caracterısticas [13].

Por ejemplo, consideramos una aplicacion donde queremos distinguir dos tipos de obje-tos. Si suponemos que tenemos una sistema de vision capaz de extraer esas caracterısticasdesde un conjunto de objetos, entonces podemos graficar el resultado en el espacio decaracterısticas 2-D, como se muestra en la Fig. 2.5.

Ahora debemos decidir como encontrar la particion numerica del espacio dado el vec-tor de caracterısticas de un objeto para determinar a cual clase pertenece. Una tecnicautilizada es una clasificacion supervisada, conocida como clasificador de mınima distancia.

El clasificador de mınima distancia es utilizado para clasificar e identificar unos ob-jetos de otros dentro de una imagen con base en la distancia que existe entre ellos. La

Page 26: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

18 CAPITULO 2. TEORIA

distancia se define como un indicador de similitud, por lo tanto, la mınima distancia esigual a la maxima similitud [14].

El procedimiento descrito en [10] es el siguiente: Supongamos que cada patron de laclase esta representado por un vector principal:

mınj

=1

N

∑x∈wj

x j = 1, 2, ...,M (2.7)

Nj es el numero de vectores de la clase wj. Una forma de asignar la clase a un vector x esasignandolo a la clase de su prototipo mas cercano. Usando la distancia Euclidiana paradeterminar la cercanıa el problema se reduce a calcular las medidas de las distancias:

Dj(x) = ‖x−mj‖ j = 1, 2, ...,M (2.8)

donde ‖x−mj‖ = (aTa)12 es la norma Euclidiana. Se asigna x a la clase wi si Di(x) es la

distancia mas pequena, es decir, la distancia mas pequena implica que es el que se adecuamejor a la clase.

Este clasificador de mınima distancia proporciona una facil clasificacion con requisitosmınimos de los datos del entrenamiento y complejidad de computo mınima.

2.5. Ajuste algebraico

Existen dos metodos que pueden ajustar un conjunto de pares de coordenadas auna elipse: el ajuste algebraico y el ajuste geometrico. El ajuste algebraico presentaun algoritmo que tiene como ventajas la linealidad, robustez ante ruido y es eficientecomputacionalmente[15][16][17].

El metodo algebraico para ajustar un conjunto de datos a una elipse esta descrito en[18]. Se parte de la formula general de una conica:

F (a,x) = a · x = ax2 + bxy + cy2 + dx + ey + f = 0 (2.9)

donde a y x son los vectores a = [a, b, c, d, e, f ]T y x = [x2 xy y2 x y 1]T . Lafuncion F (a,xi) es llamada distancia algebraica de un punto xi [calculado a partir delas coordenadas (x, y)]. El ajuste a la formula general de la conica puede ser aproximadamiminizando la suma de las distancias algebraicas al cuadrado:

mına

∑Nx=1 | xT

i a |2

Para evitar la solucion trivial a = 0, se debe restringir a. Esto se hace forzando lasolucion a una elipse utilizando la siguiente condicion:

Page 27: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

2.5. AJUSTE ALGEBRAICO 19

b2 − 4ac = aT

0 0 −2 0 0 00 1 0 0 0 0−2 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

a = aTCa = −1

Esto es, la condicion para que la ecuacion general de una conica represente a una elipsees b2 − 4ac < 0. La expresion b2 − 4ac se conoce como discriminante. Aquı simplementese fija la escala del discriminante al valor de −1 .

El problema puede ser reescrito como:

mına ‖ aTXTXa‖ = mına ‖ aTSa ‖

donde

X =

x2

1 x1y1 y21 x1 y1 1

x22 x2y2 y2

2 x2 y2 1...

x2N xNyN y2

N xN yN 1

X es llamada la matriz de diseno, C es la matriz de restriccion y S = XTX, es la

matriz de dispercion. Introduciendo el multiplicador de Lagrange λ, entonces el problemaa ser resuelto es:

S a = λCa

Este sistema es equivalente al problema generalizado de eigenvalores. La solucion esel eigenvector a que corresponde al eigenvalor λ real negativo.

El pseudocodigo para realizar el ajuste algebraico de una elipse es el siguiente:Como entrada se tiene un conjunto de N puntos, p1, ..., pN .

1. Construir la matriz de diseno, X.

2. Construir la matriz de dispersion, S.

3. construir la matriz de restriccion, C.

4. Calcular los eigenvalores del problema generalizado de eigenvalores y seleccionar eleigenvalor λn negativo real.

Page 28: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

20 CAPITULO 2. TEORIA

El ultimo paso fue resuelto utilizando la biblioteca del paquete CLAPACK [19] . Lafuncion que resuelve el problema generalizado de eigenvalores se llama dggev. La salida esla mejor aproximacion a los valores de a, dado por el eigenvector asociado a λn.CLAPACK fue construido haciendo una conversion de las rutinas de LAPACK Fortran aC con una utilidad llamada f2c. La biblioteca completa LAPACK Fortran 77 se ejecutautilizando f2c para obtener codigo en C y despues se modifica para mejorar la legibilidad.El objetivo de CLAPACK es proporcionar LAPACK en el entorno del lenguaje C. CLA-PACK es una paquete de software libre que puede trabajar en Linux/GNU y WindowsNT.

Dentro de la biblioteca de CLAPACK se encuentran rutinas que resuelven sistemassimultaneos de ecuaciones lineales, problemas de eigenvalores, factorizaciones : LU, Cho-lesky, QR, SVD, Schur, Schur generalizado, etc [19].

Page 29: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Capıtulo 3

Desarrollo del Problema

3.1. Digitalizacion del video

Un paciente es sometido a un examen que consiste en la estimulacion de la pupiladurante 15 minutos aproximadamente. Este examen pupilar es almacenado en video conformato VHS (Video Home System), es decir un formato analogico. Para su procesamientoen la computadora se debe convertir en un formato digital DV. El cambio de formato selogro conectando una camara de video digital a una videocasettera que soporta el formatoVHS, ver Fig 3.1. Esta camara de video produce video digital. Utiliza casettes mini-DVy se puede conectar directamente a una computadora a traves del puerto firewire paraalmacenar el video, como se esquematiza en la Fig. 3.2.

3.2. Procesamiento de marcos del video

3.2.1. Obtencion de marcos

Para poder procesar el video es necesario obtener cada marco, para ello utilizamos labiblioteca de la aplicacion Kino [20], que como ya se menciono en la seccion 2.2 en lapagina 8, utiliza las bibliotecas de Gnome, GTK, glib, libdv, xdevel, entre otras.

Figura 3.1: Para convertir en un formato digital se conecto una videocasettera que soporta elformato VHS a una camara digital

21

Page 30: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

22 CAPITULO 3. DESARROLLO DEL PROBLEMA

Figura 3.2: Para su procesamiento el video digital se bajo a la computadora a traves del puertofirewire

El formato de video en el cual se encuentra almacenada la secuencia de video es detipo dv crudo, es decir, se tiene solo un flujo de datos intercalados de audio y video y porlo tanto almacena los marcos en su integridad.

La extraccion de los marcos se describe a continuacion. Primero necesitamos cargarel video y guardar toda su informacion utilizando los metodos de la clase PlayList elcodigo realizado para cargar el video es el siguiente:

int num_frames;

PlayList playlist;

playlist.LoadMediaObject("/home/leonor/video/video.dv");

num_frames = playlist.GetNumFrames();

En este codigo se crea una instancia para la clase PlayList, con el metodo LoadMediaObjectindicamos que la informacion de “video.dv” en la ruta “/home/leonor/video” sera guar-dada en la instancia playlist. Ya cargado el video podemos conocer numero de marcosutilizando el metodo GetNumFrames().

Conociendo el numero de marcos podemos obtener cada uno de ellos y almacenarlosen la clase Frame, con el codigo siguiente:

static unsigned char pixels[ 720 * 480* 3];

Frame &frame = *GetFramePool( ) -> GetFrame( );

for(int i=1; i<num_frames; i++){

playlist.GetFrame( i, frame );

frame.ExtractRGB( pixels );

}

Donde se crea una instancia para la clase Frame. Utilizando la instancia de la clasePlayList obtenemos el marco del video correspondiente al valor de i en la secuenciadel video y guardamos su informacion en la instancia frame. Se extrae el marco y sealmacena en el arreglo pixels en sus componentes RGB. Esto significa que los prime-ros tres valores corresponden al primer pıxel, los segundos tres valores al segundo pıxel

Page 31: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.2. PROCESAMIENTO DE MARCOS DEL VIDEO 23

Figura 3.3: Un marco del video de 720× 480 pıxeles.

Figura 3.4: Imagen a escala de grises

y ası sucesivamente. Cada marco tiene una resolucion de 720 × 576 pıxeles para 25 fps(frames por segundo) y 720 × 480 pıxeles para 30 fps. En este caso estamos trabajandocon 30fps por lo tanto el tamano de cada marco es de 720× 480 pıxeles.

3.2.2. Conversion a tonos de grises

El marco, que ahora es una imagen, es cambiado a tonos de gris con la formula g =0.30R + 0.59G + 0.11B, donde g es el tono de gris calculado a partir de sus componentesRGB.

Trabajar con marcos en tonos de gris nos permite reducir el tamano de almacenamientoy tiempo de computo sin perder la calidad de la imagen.

Los valores obtenidos, despues de la conversion, se almacenan en una estructura llama-da MATRIX la cual pertenece a la biblioteca Scimagen [21]. Esta estructura esta definida

Page 32: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

24 CAPITULO 3. DESARROLLO DEL PROBLEMA

como:

typedef struct {

int element_size;

int type;

unsigned int rows;

unsigned int cols;

void **ptr;

} MATRIX;

donde element size se refiere al tamano del tipo de dato utilizado para almacenar laimagen, type identifica la escala de grises a la que se encuentra la imagen, rows y colses el numero de renglones y columnas que tiene la imagen y finalmente ptr se refiere alalmacenamiento de la imagen por renglones y cada renglon a los valores de cada pıxel ypuede tomar el tipo de dato que se le especifique: char, int, float, double.

3.2.3. Definicion del area de trabajo

En el marco mostrado en la Fig. 3.4 podemos observar que existen areas que no nosinteresan para la deteccion de la pupila (por ejemplo, rejilla y fecha). Por lo tanto, parareducir la carga y tiempo de procesamiento se trabaja solo la imagen del ojo. Para ello,se calcula la correlacion cruzada entre los primeros marcos y una imagen sintetica de unapupila, es decir, una imagen con cırculo negro y el fondo blanco.

La imagen sintetica recorre el marco del video y se calcula el valor de la funcion decorrelacion de la Ec. 2.2, pagina 12, para cada intervalo. El valor maximo de la funcionde correlacion indica la posicion donde la imagen sintetica coincide con el marco de video.Tomamos una imagen un poco mas grande que la pupila. De esta forma en lugar deprocesar una imagen de 720× 480 pıxeles, procesamos una de 220× 150 pıxeles.

3.3. Deteccion de la pupila

A partir de la subimagen que corresponde al ojo se aplican las siguientes tenicas paraaislar la pupila: (1) una segmentacion por un umbral global, (2) la operacion morfologicacerrando, (3) extraccion de los objetos y calculo del vector de caracterısticas para cadauno de ellos; y finalmente (4) clasificacion de los objetos

3.3.1. Segmentacion por umbral global

La segmentacion por un umbral global puede aplicarse porque la toma del video serealiza sobre condiciones controladas de iluminacion. Al aplicar la umbralizacion se resaltala pupila y se elimina la mayor parte del parpado y del iris como se muestra en la Fig. 3.6

Page 33: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.3. DETECCION DE LA PUPILA 25

(a) (b) (c)

Figura 3.5: Correlacion entre una a) pupila artificial y b) un marco del video de tamano 720×480pıxeles, para obtener una c) subimagen de solo el ojo de tamano 220× 150 pıxeles.

Figura 3.6: Imagen sometida al umbral

Page 34: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

26 CAPITULO 3. DESARROLLO DEL PROBLEMA

3.3.2. Operacion morfologica cerrando

Aunque se haya eliminado iris y parpado aun falta eliminar las pestanas. Recordemosque las operaciones morfologicas de abriendo y cerrando pueden ser utilizadas en estos ca-sos donde las imagenes presentan ruido pues aplicaciones consecutivas de erosion seguidapor el mismo numero de dilataciones pueden producir efectos no deseados. Decidimos uti-lizar la operacion cerrando ya que tiene el efecto de rellenar objetos pequenos y delgados,ademas de alisar los bordes de los objetos sin generar cambios significativos en su area.

Como esta descrito en el Capıtulo 2 en la Ec. 2.6 cerrando es el proceso de aplicar unadilatacion seguida de una erosion, ambos con un elemento estructural, que en su formabasica tiene la siguiente forma: 1 1 1

1 1 11 1 1

Sin embargo, este elemento estructural tiende a que la imagen de la pupila se deforme

a un cuadrado. Lo que queremos definir es la pupila que en su mejor forma serıa un cırculo.Pora evitar la deformacion de la pupila a un cuadrado se diseno un elemento estructuralde forma circular de 13 pıxeles de diametro:

0 0 0 0 1 1 1 1 1 0 0 0 00 0 1 1 1 1 1 1 1 1 1 0 00 1 1 1 1 1 1 1 1 1 1 1 00 1 1 1 1 1 1 1 1 1 1 1 01 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 00 1 1 1 1 1 1 1 1 1 1 1 00 0 1 1 1 1 1 1 1 1 1 0 00 0 0 0 1 1 1 1 1 0 0 0 0

Con este elemento estructural la operacion cerrando define la mayor parte de la pupila

y las pestanas, Fig. 3.7, lograndose distinguir objetos dentro de la imagen.

3.3.3. Extraccion de los objetos y calculo del vector de carac-terısticas

De la imagen segmentada se extraen los objetos que contiene. El procedimiento semuestra esquematicamente en la Fig. 3.8, y el algoritmo es el siguiente:

1. La entrada del algoritmo es una imagen

Page 35: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.3. DETECCION DE LA PUPILA 27

Figura 3.7: Imagen a escala de grises

2. Se busca un punto dentro de la imagen iniciando con la esquina superior izquierdapara detectar un objeto

3. Se genera una nueva imagen con el objeto encontrado y se borra de la imagen paraevitar que en el siguiente ciclo se encuentre la misma imagen y que por lo tanto sequede atrapado en el ciclo.

4. Del objeto encontrado se calcula su vector de caracterısticas

El ciclo se repite mientras existan objetos dentro de la imagen.

3.3.4. Clasificacion de los objetos

Se puede diferenciar un objeto de otro a traves de su vector de caracterısticas. Paraeste caso detectaron cuatro caracterısticas que son las que distinguen a la pupila de losdemas objetos: los momentos centrales normalizados [10] η02 y η30, el momento invarianteφ0 y el diametro equivalente. Todos son almacenados en un vector llamado vector decaracterısticas:

valores[counter][0]=equidia;

valores[counter][1]=phi0;

valores[counter][2]=eta02;

valores[counter][3]=eta30;

La variable counter inindica el objeto al que le pertenece ese vector.Con estos datos es posible hacer una clasificacion de objetos utilizando la distancia

euclidiana. Para encontrar el prototipo que defina cada clase se calcula un promediode las cuatro caracterısticas. Es decir, se calculo un promedio para equidia que definea la pupila, un promedio de equidia que defina a pestanas y un promedio de equidia

Page 36: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

28 CAPITULO 3. DESARROLLO DEL PROBLEMA

Figura 3.8: Procedimiento para la extraccion de objetos

Page 37: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.3. DETECCION DE LA PUPILA 29

para pupilas y pestanas unidas o juntas. De igual forma se obtiene el promedio para losmomentos centrales normalizados η02 y η30 y para el momento invariante

Cuando el algoritmo de extraccion de objetos ha terminado entonces se realiza laclasificacion con un clasificador de mınimas distancias basado en la distancia euclidiana:

d =√

(prototipo 12 + valores[objeto][0]2) + ... + (prototipo n2 + valores[objeto][n− 1]2) (3.1)

para n = 1, 2, 3, 4 donde prototipo 1 indica el prototipo para equidia, prototipo 2 el pro-totipo para phi 0, prototipo 3 el prototipo para eta 02 y prototipo 4 el prototipo paraeta 30. En total se calcularon 3 distancias. Para la primer distancia se utilizaron los pro-totipos que definen a una pupila, en la segunda se utilizaron los prototipos que definen alos objetos pestanas y para la tercer distancia se utilizaron los prototipos que definen alos objetos donde las pestanas y la pupila se encuentran unidas o juntas.

Se ahı se analizaron tres casos:

1. Pupila separada,

2. Pupila y pestanas juntas, y

3. Pupila y pestanas unidas.

Caso 1: Pupila separada

Este es el caso deseable, donde el clasificador se encarga de obtener directamente lapupila como en la Fig. 3.9(a).

Caso 2: Pupila y pestanas juntas

En este caso (mostrado en la Fig. 3.9(b)) la pupila y las pestanas pueden separarseaplicando una erosion, volvemos a clasificar y dilatamos la pupila; aquı se uso como ele-mento estructural un cırculo de 7 pıxeles de diametro.

Caso 3: Pupila y pestanas unidas

En el ultimo caso, la pupila y pestanas estan unidas y ya no es posible separarlas conninguna operacion morfologica. Por lo tanto, estas imagenes se desechan, ver Fig 3.9(c).Los objetos que no entran en alguno de estos casos tambien son desechados.

Despues de aplicar la operacion morfologica cerrando se realizan los siguientes pasos(Fig. 3.10):

1. Extraccion de objetos dentro de la imagen. Como se mostro en la seccion 3.3.3, enesta fase se calcula el vector de caracterısticas para cada uno.

Page 38: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

30 CAPITULO 3. DESARROLLO DEL PROBLEMA

(a)

(b)

(c)

Figura 3.9: Tres patrones de las clases (a) pupila separada, (b) pupila y pestanas juntas y (c)pupila y pestanas unidas.

Page 39: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.3. DETECCION DE LA PUPILA 31

Inicio

Caso 3

Caso 1

Caso 2

A

A

Activar bandera para

indicar que ha entrado

al caso 2 B B

objetos dentro de la

imagen

Extracción de los

objetos

Clasificación de

Obtención del

perímetro de la pupila

Fin

Aplicar operación

de dilatación

Verificar

entrado al caso 2

si previamente ha

Aplicar operación de

dilatación

Figura 3.10: Procedimiento para la clasificacion de objetos

2. Clasificacion de objetos de la imagen. Aquı se calculan las 4 distancias para cadaobjeto y se asigna a la clase correspondiente. Si cae en el primer caso pasa directa-mente a la siguiente fase. Para el tercer caso ya no se utiliza esa imagen y para elsegundo caso:

a) Se aplica una erosion con un elemento estructural de un cırculo de 15 pıxelesde diametro.

b) Se vuelve a clasificar.

c) Si despues de la clasficacion cae en el caso 1 se dilata la pupila con un elementoestructural de un cırculo de 15 pıxeles de diametro para reconstruirla.

Page 40: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

32 CAPITULO 3. DESARROLLO DEL PROBLEMA

y

b

x

a

Figura 3.11: Definicion de los parametros para una elipse donde a y b son los semiejes mayor ymenor, respectivamente.

3.4. Calculo de la respuesta pupilar

3.4.1. Extraccion del perımetro de la pupila

Se hizo el siguiente experimento. Se generaron 11 elipses utilizando la ecuacion generalde la elipse:

x2

a2+

y2

b2= 1 (3.2)

Cambiando a la forma implicıta para a y b en la Fig. 3.11:

F (x, y) = b2x2 + a2y2 − a2b2 (3.3)

para un punto (x, y) y a, b dadas. F (x, y) < 0 si el punto esta dentro de la elipse. F (x, y) =0 si el punto esta sobre la elipse.

Para obtener las elipses, al semieje a se le asigno el valor de 25. Es decir, un diametrode 50, mientras que al semieje b se le asignaron valores para obtener ejes desde 30 hasta80 con incrementos de 5. Cuatro ejemplos de estas imagenes se muestran en la Fig. 3.12.

A las imagenes generadas se le aplico un algoritmo para la obtencion del perımetroque utiliza la operacion morfologica erosion. El perımetro es igual a: A − (A B), estoes, a la imagen original se le resta la imagen erosionada para ası obtener el perımetro dela elipse. Los puntos que definen el perımetro son guardados en un archivo, uno para cadaelipse. El elemento estructural utilizado es: 0 1 0

1 1 10 1 0

En la Fig. 3.13 se muestra el perımetro correspondiente a las cuatro imagenes de la

Fig. 3.12.

Page 41: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.4. CALCULO DE LA RESPUESTA PUPILAR 33

(a) (b) (c) (d)

Figura 3.12: Imagenes de varias elipses construidas con eje a=50 y eje a) b=25, b) b=40, c)b=70 y d) b=80. El tamano de cada imagen es de 100×100 pıxeles.

(a) (b) (c) (d)

Figura 3.13: Perımetro correspondiente a las elipses con a=50, y con eje eje a) b=25, b) b=40,c) b=70 y d) b=80.

Page 42: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

34 CAPITULO 3. DESARROLLO DEL PROBLEMA

(a) (b)

(c)

Figura 3.14: Para obtener el perımetro se aplica una operacion de erosion a la imagen a) paraobtener b), el resultado de restar la imagen erosionada b) a la imagen original a) es el perımetro

mostrado en c)

Aplicamos este mismo procedimiento para las imagenes de pupilas obtenidas de laclasificacion de objetos Fig. 3.14

Los puntos que definen el perımetro de la pupila son guardados en un archivo.

3.4.2. Eliminacion del brillo de la luz

Trabajando con los marcos del video notamos que algunos de ellos eran afectados porel brillo de la luz del monitor cuando se aplico el examen, como se observa en la Fig.3.15(b). Para evitar una fuente de error al realizar la aproximacion, el hueco generado porel brillo de la luz no es tomado en cuenta.

Para cada video el brillo de la luz siempre tiene la misma posicion y por lo tanto elmismo angulo. El brillo siempre cae entre un angulo 38o a 42o. Por lo tanto, al guardarlos puntos que definen el perımetro de la pupila se descartan aquellos que caen entre estosangulos.

Page 43: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.4. CALCULO DE LA RESPUESTA PUPILAR 35

(a) (b)

Figura 3.15: (a) El perımetro es afectado por el brillo de la luz, y esto serıa una fuente de erroral aproximar a una elipse, (b) por esta razon la parte afectada no es tomada en cuenta.

3.4.3. Implementacion del algoritmo de ajuste algebraico a unaelipse

De acuerdo al algoritmo de ajuste algebraico a una elipse mostrado en el capıtulo 2,el primer paso es construir la matriz de diseno X con el archivo de puntos.

strncpy( namein, argv[1], 64 );

num_puntos = 0;

archivo = fopen (namein,"r");

fscanf(archivo,"%d ",&num_puntos);

for (i=0; i<num_puntos; i++)

fscanf(archivo,"%d %d\n",&puntos[i][0],&puntos[i][1] );

//Construir la matriz Design X

for(filas=0; filas<num_puntos; filas++) {

X[filas][0]=puntos[filas][0]*puntos[filas][0];

X[filas][1]=puntos[filas][0]*puntos[filas][1];

X[filas][2]=puntos[filas][1]*puntos[filas][1];

X[filas][3]=puntos[filas][0];

X[filas][4]=puntos[filas][1];

Page 44: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

36 CAPITULO 3. DESARROLLO DEL PROBLEMA

X[filas][5]=1;

}

El siguiente paso es calcular la matriz transpuesta de la matriz de diseno XT y conella la matriz de dispersion S.

// Transpuesta de la Matriz Design X

for(filas = 0; filas < N; filas ++)

for(columnas = 0; columnas < num_puntos; columnas ++)

Xt[filas][columnas]=X[columnas][filas];

// Multiplicaci{on de Matrices para obtener la Matriz S

for (filas=0; filas<N; filas++)

for (columnas=0; columnas<N; columnas++){

suma = 0.0;

for (k=0; k<num_puntos; k++){

suma = suma + (Xt[filas][k] * X[k][columnas]);

}

scatter[filas][columnas] = suma;

}

El tercer paso es construir la matriz C. En esta implementacion del algoritmo la matrizC fue declarada e inicializada con lo siguientes valores:

int C1[6][6] = {{0, 0,-2, 0, 0, 0},

{ 0, 1, 0, 0, 0, 0},

{-2, 0, 0, 0, 0, 0},

{ 0, 0, 0, 0, 0, 0},

{ 0, 0, 0, 0, 0, 0},

{ 0, 0, 0, 0, 0, 0}};

El ultimo paso fue resuelto utilizando el paquete CLAPACK [19]. La funcion queresuelve el problema generalizado de eigenvalores se llama dggev. La salida es la mejoraproximacion a los valores de a, dado por el eigenvector asociado a λn.

La elipse puede tener una representacion alternativa con base en los parametrosa, b, xc, yc y θ, donde (xc, yc) son las coordenadas del centro de la elipse y θ el angulode rotacion del eje mayor. Estos parametros se calculan a partir de la formula general dela conica (Ec. 2.9) como sigue:

El semieje a y el semieje b, estan definidos [22] como:

Page 45: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.5. DESARROLLO DE LA INTERFAZ GRAFICA 37

a =

√2(af2+cd2+gb2−2bdf−acg)

(b2−ac)[(c−a)

r1+4b2

(a−c)2]

b =

√2(af2+cd2+gb2−2bdf−acg)

(b2−ac)[(a−c)

r1+4b2

(a−c)2]

el centro de la elipse es (xc, yc), donde:

xc = cd−bfb2−ac

yc = af−bdb2−ac

y el angulo de rotacion es:

θ =(12

)cot−1

(c−a2b

)a partir de la ecuacion general de un curva cuadratica [23]:

ax2 + 2bxy + cy2 + 2dx + 2fy + g = 0

Los vectores para a, b, c, d, f y g se obtienen a partir de los valores de los coeficientespara la ecuacion general de la conica, que puede escribirse como:

a′x2 + b′xy + c′y2 + d′x + e′y + f ′ = 0

Por lo tanto, los valores a sustituir en las expresiones para calcular los semiejes son:a = a′, b = b′/2, c = c′, d = d′/2, f = e′/2, g = f ′.

Antes de aplicar el algoritmo a las pupilas encontradas primero observamos el resultadode aplicar el algoritmo de ajuste algebraico a los puntos que forman el perımetro de cadaelipse obtenida con la ecuacion 3.2. El error de aproximacion en promedio es de 1.3.Este error se obtiene al promediar todos los resultados de restar el valor original menosel calculado. La aproximacion se califica como buena por lo que se procedio al ajustealgebraico para las pupilas detectadas. Con esta aproximacion obtuvimos el area de lapupila utilizando la formula para calcular el area de una elipse:

A = πab (3.4)

Finalmente graficamos la respuesta pupilar con la herramienta de GNU/Linux gnuplot.

3.5. Desarrollo de la interfaz grafica

Para mostrar la grafica de la respuesta pupilar se diseno una interfaz grafica quepermitiera la manipulacion del video digital y de la grafica. Las herramientas utilizadaspara la visualizacion del video son QT [24], OpenGL y nuevamente la biblioteca Kino.

Page 46: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

38 CAPITULO 3. DESARROLLO DEL PROBLEMA

3.5.1. Visualizacion del video digital

Como primer paso para la visualizacion en la interfaz, se carga el video y se obtieneel numero de marcos que contiene. Esta operacion se hace en el constructor de la claseInterfaz que es la encargada de mostrar el video y mostrar la grafica de la respuestapupilar. El codigo es el siguiente:

Interfaz::Interfaz( QWidget *parent, const char *name )

: QGLWidget( parent, name )

{

frames=1;

if(playlist.LoadMediaObject("/home2/leonor/Tesis/video/video.dv"))

{

printf("\nEl video se ha cargado correctamente\n");

num_frames = playlist.GetNumFrames();

}

else

printf("\nEl video no se cargo\n");

...

}

La instancia de la clase Frame es inicializada en el metodo que se encarga de dibujartanto los marcos como la grafica en el widget. El codigo es el siguiente:

void Interfaz::paintGL(void)

{

...

Frame &frame = *GetFramePool( ) ->GetFrame( );

frame.decoder->quality = DV_QUALITY_BEST;

show_frame(frame);

show_grafica();

...

}

Para mostrar el marco extraemos el color en sus componentes RGB y utilizamos la fun-cion glDrawPixels de OpenGL para dibujarlo en la pantalla. La funcion glDrawPixels

(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid

*pixels) de OpenGL dibuja un bloque de pıxeles en el widget y recibe como parametrosel ancho y el alto de la imagen en pıxeles. Un formato que indica el espacio de color delos pıxels que hay que dibujar estos pueden ser:

GL COLOR INDEX: Pıxeles de color indexados.

Page 47: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.5. DESARROLLO DE LA INTERFAZ GRAFICA 39

GL LUMINANCE: Pıxeles en escala de grises.

GL LUMINANCE ALPHA: Pıxeles en escala de grises mas alfa.

GL RGB: Pıxeles RGB.

GL RGBA: Pıxeles RGBA.

GL RED: Pıxeles rojos.

GL GREEN: Pıxeles verdes.

GL BLUE: Pıxeles azules.

GL ALPHA: Pıxeles alfa.

GL STENCIL INDEX: Valores del buffer de estarcido1.

GL DEPTH COMPONENT: Valores del buffer de profundidad.

El siguiente parametro es una variable que indica el tipo de los valores de pixel copia-dos. Los tipos validos son:

GL BYTE: Valores con signo de 8 bits (-128 a 127).

GL UNSIGNED BYTE: Valores sin signo de 8 bits (0 a 255).

GL BITMAP: Mapa de bits (0 a 1).

GL SHORT: Valores con signo de 16 bits (-32768 a 32767).

GL UNSIGNED SHORT: Valores sin signo de 16 bits (0 a 65535).

GL INT: Valores con signo de 32 bits (-2147483648 a 2147483648).

GL UNSIGNED INT: Valores sin signo de 32 bits (0 a 4294967295).

GL FLOAT: Valores de coma flotante de 32 bits.

y finalmente GLvoid *pixels es un apuntador a la informacion de los pıxeles de la ima-gen [25].

El metodo para mostrar el marco es el siguiente:

1Tecnica que consiste en dibujar una misma imagen de forma repetitiva.

Page 48: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

40 CAPITULO 3. DESARROLLO DEL PROBLEMA

x

y

z

(a) (b)

Figura 3.16: a) Definicion del lienzo en 3D que utiliza OpenGL, b)Coordenadas de la imagen

void Interfaz:: show_frame(Frame &frame)

{

int i,j;

GdkPixbuf *image;

playlist.GetFrame( frames, frame );

frame.ExtractRGB( pixels );

glDrawPixels(720, 480, GL_RGB, GL_UNSIGNED_BYTE, pixels);

}

OpenGL tiene como referencia el origen en el centro del widget, ver Fig. 3.16(a),mientras que para el marco el origen se encuentra en la esquina superior izquierda (Fig.3.16(b)). Esto provoca que al utilizar la funcion glDrawPixels el marco se vea al reves.

Para dibujar correctamente el marco se utilizaron dos funciones de OpenGL: glRasterPos2iy glPixelZoom.

Con la funcion glRasterPos2i (GLint x, GLint y) especificamos la posicion rasteren el punto (x, y).

Con la funcion glPixelZoom(GLfloat xfactor, GLfloat yfactor ) podemos ajus-tar el tamano del mapa en la posicion raster especificada. Esta funcion acepta dos parame-tros en punto flotante especificando los factores de escala x y y de la imagen. Las opcionesson las siguientes:

glPixelZoom(1.0,1.0): No escala la imagen

glPixelZoom(-1.0,1.0): Invierte la imagen horizontalmente

Page 49: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.5. DESARROLLO DE LA INTERFAZ GRAFICA 41

glPixelZoom(1.0,-1.0): Invierte la imagen verticalmente

glPixelZoom(1/w, 1/w): Dibuja la imagen a 1/w de su tamano.

Se hace el llamando a ambas funciones antes de realizar el dibujado de los marcos:

void Interfaz::paintGL(void)

{

...

glRasterPos2i(-2,2);

glPixelZoom(1.0, -1.0);

...

Frame &frame = *GetFramePool( ) ->GetFrame( );

frame.decoder->quality = DV_QUALITY_BEST;

show_frame(frame);

show_grafica();

...

}

Para hacer el cambio de marcos, utilizamos una clase de Qt llamada QTimer quepermite modificar una variable automaticamente en un tiempo determinado. Para estecaso hacemos con QTimer el incremento en uno de la variable cada 1

30de segundo, que

determina el numero de marco.

3.5.2. Manipulacion del video digital

Qt utiliza senales y ranuras para la comunicacion entre objetos. Una senal es emitidacuando un evento particular ocurre y con base en esta se realiza un accion que recibe unaranura.

A la interfaz grafica le agregamos botones de manipulacion del video, como son: repro-ducir, retroceder en uno, avanzar en uno y parar. Cada uno de ellos tiene asignado unaranura ante una senal de click del raton. Para cada ranura se decrementa, se aumenta ose detiene el conteo de marcos, respectivamente.

3.5.3. Visualizacion y manipulacion de la grafica de la respuestapupilar

El area de la pupila obtenida con el ajuste algebraico para cada marco es almacenadoen un archivo. Para visualizarlo se creo una estructura llamada REGISTRO con los siguientes

Page 50: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

42 CAPITULO 3. DESARROLLO DEL PROBLEMA

Figura 3.17: Diseno de la Interfaz grafica. En la parte izquierda se encuentran cajas de textopara mostrar datos del paciente y de la grafica de la respuesta pupilar. En la parte derecha semuestra el video digital y la grafica de la respuesta pupilar. Finalmente en la parte inferior de

la interfaz se tienen los botones de control para la reproduccion del video.

Page 51: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.5. DESARROLLO DE LA INTERFAZ GRAFICA 43

atributos:

typedef struct{

float x;

float y;

}REGISTRO;

donde x indica la posicion en la coordenada x de OpenGL , y la posicion en la coordenaday para OpenGL. Se crea un buffer de tipo REGISTRO para leer un bloque del archivo ycuando este ya ha sido mostrado se lee el siguiente bloque del mismo tamano desde archivo.El codigo para dibujar la grafica es el siguiente:

glBegin(GL_LINES);

glColor3f( 1.0, 1.0, 1.0 );

for( k=0; k<frames && k<tam_bloque; k++)

{

glVertex3f(xpos[k], buffer[k]*0.0001,0.0);

glVertex3f(xpos[k+1], buffer[k+1]*0.0001,0.0);

}

glEnd();

Las funciones glBegin(GL_LINES) y glEnd() indican el inicio y el fin de un ciclo delıneas. Dentro de estas incluimos funciones de tipo glVertex3f(float x, float y, float z)

que dibujan la lınea, para todos los puntos dentro del bloque leido.

La grafica de la respuesta pupilar se dibuja al mismo tiempo que se reproduce el video.Ambos empiezan desde el marco 1. Hemos mostrado como dibujar la grafica de la respues-ta pupilar y esta avanza conforme avanza el numero de marco que se esta reproduciendo.Por lo tanto, la grafica nunca debe sobrepasar al numero de marco actual. Cuando algunboton de manipulacion del video ha sido presionado, la accion que ocurre para el videotambien ocurre para la grafica. La grafica representa lo que se este mostrando en el video(Fig. 3.19), por ejemplo, si el ojo parpadea entonces la grafica se encuentra en el puntomas bajo. De lo contrario, cuando la pupila esta dilatada entonces la grafica se encuentraen un punto alto.

Para la manipulacion de la grafica, hemos dibujado sobre ella una lınea roja. Al pre-sionar esta lınea y moverla se puede retroceder o avanzar en la grafica de la respuestapupilar y por lo tanto en el video digital. Esto se hizo de la siguiente forma: (1) se dibujala lınea de forma independiente a la grafica y al video, (2) se sincroniza con la grafica y

Page 52: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

44 CAPITULO 3. DESARROLLO DEL PROBLEMA

Figura 3.18: Reproduccion del video digital y dibujado de la grafica de la respuesta pupilar. Laimagen fue tomada en el marco 2354.

en consecuencia con el numero de marco que se esta dibujando. Por esta razon, se tieneque al mover la lınea roja se modifica tanto la grafica como el numero de marco.A la interfaz se le agrego un boton para alejar y acercar la grafica de la respuesta pupilar ycuadros de texto para desplegar informacion tanto del video como de la grafica. La infor-macion que se muestra en estos cuadros de texto es: marco actual, color, longitud de onday area de la pupila del marco. Para realizar estas acciones se realiza una consulta para sa-ber el numero de marco y determinar el color y la longitud de onda. El area de la pupila seobtiene del buffer donde se ha guardado el bloque de datos leidos desde el archivo de areas.

3.5.4. Conexion a una base de datos para mostrar los datos delpaciente

Para almacenar la informacion de cada examen correspondiente a cada paciente, serealizo una conexion a una base de datos. La base de datos fue creada con MySQL ya queQt incluye un modulo QtSql para la integracion de base de datos a las aplicaciones. Unavez instalado el driver de MySQL para Qt se comprueba que se encuentre disponible:

if(QSqlDatabase::isDriverAvailable("QMYSQL3"))

printf("El driver esta disponible");

else

Page 53: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

3.5. DESARROLLO DE LA INTERFAZ GRAFICA 45

Figura 3.19: Sincronizacion de la grafica de la respuesta pupilar con el video digital. La imagenfue tomada en el marco 7603.

printf("El driver no esta disponible");

Despues se carga la base de datos, previamente creada, con la informacion necesariapara iniciar la conexion:

QSqlDatabase *db = QSqlDatabase::addDatabase("QMYSQL3");

db->setHostName("localhost");

db->setDatabaseName("examen");

db->setUserName("root");

db->setPassword("");

if(db->open())

printf("\nLa base de datos se cargo correctamente");

else

printf("\nLa base de datos no se cargo correctamente");

Una vez abierta la base de datos podemos acceder a ella con la clase QSqlQuery queprovee una interfaz para ejecutar declaraciones de tipo SQL y realizar operaciones con elresultado de la consulta. Nosotros hacemos una consulta a la base de datos para obtenerlos datos del paciente y despues desplegarlo en la interfaz de Qt.

Page 54: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

46 CAPITULO 3. DESARROLLO DEL PROBLEMA

Figura 3.20: Interfaz mostrando los datos del paciente despues de realizar la conexion a la basede datos. La imagen fue tomada en el marco 7529.

QSqlQuery consultaBD("SELECT * from pacientes;", db);

if(consultaBD.next()){

QString query1= consultaBD.value(0).toString();

messNombre->setText(query1);

messNombre->setFont( QFont( "Times", 10, QFont::Normal ) );

}

Con este codigo se extrae de la tabla pacientes el primer valor que corresponde alnombre del paciente. Esta operacion se repite para los siguientes campos que se van adesplegar.

Page 55: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Capıtulo 4

Resultados y Discusion

4.1. Obtencion de la pupila

En el capıtulo 3 se describen los pasos y tecnicas utilizadas para la resolucion delproblema. Inicialmente tenemos un sistema que procesa cada marco de un video digitalque muestra la estimulacion de la pupila de un paciente. Aplicando tecnicas estandar deprocesamiento de imagenes se logro detectar la pupila.

Se genero un video de la pupila detectada para observar su comportamiento ante laestimulacion y verificar que en el video solo se observara la pupila y no algun otro objetoque cause error en la grafica de la respuesta pupilar.

La salida de la funcion dggev de CLAPACK es la siguiente:

47

Page 56: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

48 CAPITULO 4. RESULTADOS Y DISCUSION

SalidaINFO=0

Eigenvalores:2251.397856-35.401989

947349330.16007129683.716912

-1368468.418290707.123551

Eigenvectores:0.000211 0.000000 -0.000618 -0.021063 0.061831 -1.0000000.000108 -0.000000 0.000318 -0.010826 -0.031779 1.000000

-0.000000 -0.000000 -0.000000 -0.044547 -0.000000 1.0000000.000000 0.000000 -0.000000 0.046670 -0.000000 1.000000

-0.000000 0.000000 -0.000000 -0.005473 -0.036821 1.0000000.000000 0.000400 -0.000000 -0.020000 -0.020000 1.000000

angulo 0.000000Semieje a : 24.524744Semieje b : 14.314020Diametro a: 49.049488Diametro b: 28.628041

donde el valor de INFO indica si al realizar el calculo del problema generalizado de eigen-valores hubo un error.

Del vector de eigenvalores se escoge el unico elemento real negativo, que correspondeen fila, a los valores solucion para a, b, c, d, eyf , respectivamente, en la matriz de eigenvec-tores. Por ejemplo, en la salida anterior para el perımetro de una elipse con eje a = 50 y ejeb = 30 pıxeles, se observa que en la segunda posicion del vector de eingenvalores se encuen-tra el unico valor negativo real de −35.401989. El eigenvector correspondiente es la segun-da fila de la matriz de eigenvectores: 0.000108 −0.000000 0.000318 −0.010826 −0.0317791.000000. Los elementos columna indican los valores para los parametros a, b, c, d, e y fde la Ec. 2.9 en el capıtulo 2, pagina 17. Para el calculo de semiejes y diametro se utilizala representacion alternativa vista en la seccion 3.4.2, pagina 38.

Inicialmente aplicamos el algoritmo de ajuste algebraico a los puntos que forman elperımetro de cada elipse obtenida con la ecuacion 3.2. Los resultados se muestran en lasiguiente tabla:

Page 57: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

4.1. OBTENCION DE LA PUPILA 49

Figura 4.1: Elipse de semieje a = 25 y semieje b = 15 rotada en 30o, 45oy 60o

Datos DatosElipse Reales Aproximados

a b a bElipse 1 50 30 49.049488 28.628041Elipse 2 50 35 49.159024 32.832781Elipse 3 50 40 48.796484 38.730837Elipse 4 50 45 49.015354 42.894376Elipse 5 50 50 48.784072 48.784072Elipse 6 50 55 48.849684 52.942503Elipse 7 50 60 48.857511 58.817974Elipse 8 50 65 48.848994 63.103197Elipse 9 50 70 48.717312 68.899949Elipse 10 50 75 48.901333 73.101028Elipse 11 50 80 48.752749 78.980952

Tambien se hicieron pruebas rotando una imagen y calculando nuevamente el semiejea, semieje b y ademas el angulo de rotacion. El angulo fue calculado como:

θ =

(1

2

)tan−1

(2b

a− c

)(4.1)

Datos DatosElipse Reales Aproximados

a b θ a b θElipse 1 50 30 30 49.049488 28.628041 36.734653Elipse 1 50 30 45 49.049488 28.628041 44.952422Elipse 1 50 30 60 49.049488 28.628041 66.734653

Page 58: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

50 CAPITULO 4. RESULTADOS Y DISCUSION

Figura 4.2: Los pıxeles del perımetro de la Fig. 3.15(a) y la elipse ajustada.

Al aplicar el algoritmo de ajuste algebraico a las pupilas encontradas, eliminamos delperımetro el borde afectado por el brillo de la luz y observamos que el ajuste de la elipseno se ve afectado, como puede observarse en la Fig. 4.2.

Se programo una script para generar una animacion en donde se observa la reconstruc-cion de las pupilas a partir de los datos obtenidos por el ajuste algebraico a una elipse.El script genera la animacion en gnuplot de tal forma que se visualiza el comportamientode la pupila. Una elipse reconstruida se observa en la Fig 4.3.

El script realizado se muestra en el apendice C.Los resultados anteriores muestran los valores para los ejes en pıxeles. Recordemos

que al aplicar el examen de estimulacion se coloca una rejilla debajo del ojo, sobre elparpado. Esta rejilla es colocada a cada paciente, debido a que la profundidad para cadaojo es distinta ası como la colocacion de la camara. El tamano de la rejilla es de apro-ximadamente 3.5 cm, cada separacion corresponde a 5 mm. Para obtener el area de lapupila en milımetros se obtuvo la distancia euclidiana entre las coordenadas en pıxelesque equivalen a 10 milımetros con base en la rejilla. Sin embargo, la distancia no es unalınea recta por lo que a esta distancia hay que dividirla entre

√2. La ecuacion utilizada

queda de la siguiente forma:

dm =10√

2√(x2 − x1)2 + (y2 − x1)2

(4.2)

La grafica del examen de la respuesta pupilar se muestra en la Fig. 4.4. Cuando elvalor del area es cero, indica un parpadeo. Los picos de la grafica muestran la dilataciony los puntos mas bajos indican la contraccion. La duracion de la dilatacion es mayor que

Page 59: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

4.1. OBTENCION DE LA PUPILA 51

Figura 4.3: Animacion a partir de los datos obtenidos por el ajuste algebraico a una elipse.

la de contraccion debido a que la duracion de cada pantalla negra es de 20 seg, mientrasque cada pantalla de estimulacion dura 6 seg.

Page 60: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

52 CAPITULO 4. RESULTADOS Y DISCUSION

0

5

10

15

20

25

30

35

40

45

50

6000 7000 8000 9000 10000 11000 12000

Are

a(m

m2)

Frames

Grafica de la respuesta pupilar

Figura 4.4: Grafica de la respuesta pupilar del video desde el marco 6001 al 12000

Page 61: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Capıtulo 5

Conclusiones y Trabajo futuro

5.1. Conclusiones

Con este proyecto de tesis, se ha obtenido un sistema que calcula automaticamente larespuesta pupilar a partir de un video digital. Este video digital contiene la estimulacion ala que un paciente fue sometido. Este examen es guardado en un video analogico (VHS).Para su procesamiento se paso a formato digital con ayuda de una camara de video digital,una videocassettera que soporta el formato VHS y una computadora con puerto firewire.

El sistema esta dividido en dos partes:En la primera se tiene un subsistema que calcula de forma automatica la respuesta

pupilar utilizando tecnicas estandar de procesamiento de imagenes, donde, para leer el vi-deo se utilizo la biblioteca Kino. En este subsistema tenemos un procedimiento para aislarla pupila automaticamente. Este procedimiento consiste en procesar un video, detectar lapupila y realizar un ajuste algebraico. El procedimiento es el siguiente:

1. Digitalizar el video

2. Procesar el video:

Obtencion de marcos

Conversion a tono de grises

Obtencion de area de trabajo utilizando correlacion cruzada

3. Deteccion de la pupila:

Segmentacion por un umbral global

Operacion morfologica cerrando

Extraccion de los objetos y calculo del vector de caracterısticas

Clasificacion de los objetos

53

Page 62: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

54 CAPITULO 5. CONCLUSIONES Y TRABAJO FUTURO

4. Calculo de la respuesta pupilar:

Extraccion del perımetro de la pupila eliminando el brillo de la luz

Ajuste algebraico a una elipse

En el segundo subsistema se tiene una interfaz para la visualizacion de video y manipu-lacion para el video y para la grafica obtenida con ayuda de las herramientas: Qt, OpenGLy nuevamente la biblioteca Kino. Esta interfaz cuenta con las siguientes caracterısticas:

1. Visualizacion del video digital

2. Visualizacion y manipulacion de la grafica de la respuesta pupilar

3. Sincronizacion de la grafica de la respuesta pupilar con el video digital

4. Conexion a una base de datos para mostrar los datos del paciente.

El ajuste algebraico sigue siendo muy bueno si no tomamos en cuenta las areas afec-tadas por el brillo de la luz utilizado en la estimulacion.

Ambos subsistemas fueron ejecutados sobre el sistema operativo Linux Red Hat En-terprise, con 1GHz de memoria RAM y con una tarjeta de video GForce. El tiempo deejecucion para el primer subsistema es de 27 minutos y para el segundo es de 25 minutos.En total el tiempo para obtener el area de la pupila a partir del video digital es de 52minutos que mejora, en mucho, el tiempo que se toma para el calculo del area a manoutilizando la regla y el compas.

La biblioteca Kino y Scimagen [21] son fundamentales para el procesamiento de video,ya que son la base del programa. La aplicacion Qt permitio el desarrollo de toda la interfazgrafica ası como OpenGL.

Una pregunta inicial fue: ¿Que sucede cuando el color de los ojos es oscuro, se podra di-ferenciar entre iris y pupila?, para responderla fui sometida al examen de estimulacion yaque el color de mis ojos es cafe oscuro. Con el video grabado es con el que realice este tra-bajo de Tesis. Ahora se puede saber con certeza que el color de los ojos no es un problemapara poder calcular la respuesta pupilar a traves de este sistema.

5.2. Trabajo futuro

Uno de los objetivos de este proyecto de tesis es la deteccion de anomalıas o falta devision de colores [4], que dan origen a:

Acromatopsias: Falta de vision de colores

Page 63: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

5.2. TRABAJO FUTURO 55

Discromatopisas: Ceguera parcial a los colores

Protanotanopes: Ceguera al rojo

Deuteranopes: Ceguera al verde

Tritanopes: Ceguera al azul

Alteraciones congenitas: no se perciben los colores entre rojo y verde o daltonismo.

Alteraciones adquiridas: no se perciben los colores entre azul y amarillo.

Con este trabajo se obtiene la grafica de la respuesta pupilar que describe el compor-tamiento de la pupila ante el examen de estimulacion, por lo que como trabajo futurose probara este software para la deteccion, en menor tiempo despues de la aplicaciondel examen, de dichos padecimientos logrando de esta forma apoyar al laboratorio deBioelectronica y a la medicina en general.

Page 64: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

56 CAPITULO 5. CONCLUSIONES Y TRABAJO FUTURO

Page 65: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Apendice A

Lista de programas desarrollados

A.1. Procesamiento de video

Para el procesamiento del video digital se desarrollo un programa donde se realizanlas siguientes funciones:

Obtencion de marcos. En esta funcion se carga la informacion del video digital enmemoria y se extrae cada marco que lo compone.

Entrada: Nombre y ruta del video digital.Salida: Marcos del video.

Conversion a tonos de grises. Cada marco pasa por un proceso de conversion de untono de colores en formato RGB a un tono de colores grises.

Entrada: Un marco del video digital en formato RGB.Salida: Un marco del video digital en tonos de colores grises.

Obtencion de area de interes. Del marco en tono de colores grises se extrae el areadonde se encuentra la pupila para continuar trabajando con este submarco.

Entrada: Un marco de tamano 720× 480 pıxeles en tonos de colores grises.Salida: Un marco de tamano 220× 150 pıxeles.

A.2. Correlacion cruzada

Para obtener el submarco de tamano 220× 150 pıxels, se desarrollo un programa queencuentra una imagen de una pupila artificial en un marco del video digital. Para ello se

57

Page 66: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

58 APENDICE A. LISTA DE PROGRAMAS DESARROLLADOS

programo la funcion de correlacion visto en la seccion 2.3.2 en la pagina 11.

Entrada: Dos imagenes, una pupila artificial y un marco del video.Salida: Coordenadas del marco en donde ha sido encontrada la imagen de la pupila arti-ficial.

A.3. Deteccion de la pupila

Para detectar la pupila, se desarrollo un programa que realiza las siguientes funciones:

Segmentacion por umbral global. En esta funcion se aplica un umbral global de 30.

Entrada: Submarco en tono de grises.Salida: Submarco con un umbral de 30.

Operaciones morfologicas: erosion, dilatacion y cerrando, con un elemento estructu-ral de forma circular. Para la deteccion de la pupila aplicamos la operacion cerrando,que a su vez utiliza una dilatacion seguida de una erosion.

Entrada: Un submarco con umbral de 30 y el tamano del diametro para el elementoestructural.Salida: El submarco sometido a la operacion morfologica cerrando.

Extraccion de objetos. En esta funcion se buscan y se extraen todos los objetosdentro de ella. Ademas, es aquı donde se calcula el vector de caracterısticas paracada uno.

Entrada: Submarco con la operacion morfologica cerrando.Salida: Un vector de objetos encontrados con su respectivo vector de caracterısticas.

Clasificacion de objetos con un clasificador de mınima distancia. En esta funcioncada objeto es clasificado en tres grupos diferentes: (1) pupila, (2) pupila y pestanasjuntas, (3) pupila y pestanas unidas, o simplemente desechadas cuando no entranen alguno de estos casos. Recordemos que cada submarco tiene asociado un vectorde objetos donde para cada uno existe un vector de caracterısticas.

Entrada: Un vector de objetos con su respectivo vector de caracterısticas.Salida: Si la pupila fue detectada, se regresa un submarco con la pupila encontraday en caso contrario, se regresa un submarco vacıo.

Creacion de un video con las pupilas detectadas. Con los submarcos obtenidos delproceso de clasificacion de objetos se genera un video.

Page 67: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

A.4. RESPUESTA PUPILAR 59

Entrada: Submarco con las pupila detectada o en caso contrario un submarco defondo negro.Salida: Video digital en formato blanco y negro que muestra el comportamiento dela pupila ante el examen de estimulacion.

A.4. Respuesta pupilar

Para el calculo de la respuesta pupilar se desarrollo un programa que carga el videode las pupilas detectadas para extraer cada marco y realiza las siguientes funciones:

Obtencion del perımetro de la pupila. Para cada marco se obtienen los puntos queforman el perımetro de la pupila y se almaclmacenan en un archivo.

Entrada: Un marco del video de las pupilas detectadas.Salida: Un archivo correspondiente a los puntos que definen el perımetro de la pupilaen dicho marco.

Calculo del area de la pupila. Con la funcion de sistema system se ejecuta el pro-grama de ajuste algebraico a una elipse.

Entrada: El archivo de puntos que definen el perımetro de la pupila para el marcoactual.Salida: El area de la pupila con los parametros obtenidos del ajuste algebraico.

A.5. Interfaz grafica

Para la interfaz grafica se realizo un programa en Qt con los siguientes metodos:

Visualizacion del video digital. Para lograr la visualizacion se carga la informaciondel video, se extrae cada marco y se dibuja en el widget de la interfaz.

Entrada: El video digital en el formato de colores RGB, que muestra la estimulaciona la que fue sometida el paciente.Salida: La visualizacion del video en el widget de la interfaz grafica.

Visualizacion de la grafica de la respuesta pupilar.

Entrada: El archivo de areas correspondiente a la pupila de cada marco del videodigital.Salida: La visualizacion de la grafica de la respuesta pupilar en el widget de lainterfaz grafica.

Page 68: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

60 APENDICE A. LISTA DE PROGRAMAS DESARROLLADOS

Manipulacion del video.

Entrada: El archivo de puntos que definen el perımetro de la pupila para el marcoactual.Salida: El area de la pupila con los parametros obtenidos del ajuste algebraico.

Manipulacion de la grafica de respuesta pupilar. En este metodo se define el areaactiva para el raton, el movimiento de la grafica ante la accion de click y la on con elvideo digital. La manipulacion de la grafica se controla con una lınea vertical sobrela grafica.

Entrada: Coordenadas en las que se realizo la accion.Salida: Redibujado de la grafica hacia la posicion establecida y asignacion al marcocorrespondiente.

Conexion a una base de datos. Dentro de este metodo se verifica la disponibilidaddel driver, si esta disponible, se procede a establecer la conexion con la base de datospreviamente creada.

Entrada: Los valores iniciales para establecer la conexion: nombre del host, nombrede la base de datos, nombre del usuario y password.Salida: Los valores de los campos consultados a la base de datos.

Page 69: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Apendice B

Descripcion de la interfaz grafica

En la interfaz grafica se han incluido elementos que hace mas facil el analisis, lainteraccion y la informacion del video digital, de la grafica de la respuesta pupilar y delpaciente que es sometido a un examen de estimulacion pupilar.

Los elementos se muestran en la Fig. B.1 y se describen a continuacion:

1. Datos personales del paciente sometido al examen de estimulacion. Estos datos son:Nombre, Edad y Edad con DM (Diabetes Mellitus).

2. Datos de la curva, tales como el color y la longitud de onda por el que esta pasandola estimulacion de la pupila. Otros datos que se incluyen son el area de la pupila yel marco correspondiente.

3. Esta informacion tambien se obtiene de la base de datos donde se encuentra alma-cenada la informacion del paciente. Aquı se incluye, de forma general, el resultadodel examen.

4. En la parte superior del widget se muestra el video digital del paciente sometido alexamen de estimulacion.

5. En la parte inferior del widget se muestra la grafica de la respuesta pupilar.

6. Botones de control para el video digital y la grafica de la respuesta pupilar, donde:

“>” reproduce el video

“| >” avanza en 20 marcos

“>>” avanza en un marco

“<<” retrocede en un marco

“< |” retrocede en 20 marcos

“Detener” detiene la reproduccion del video

61

Page 70: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

62 APENDICE B. DESCRIPCION DE LA INTERFAZ GRAFICA

Figura B.1: Elementos de la interfaz grafica

Page 71: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

63

“Reiniciar” se posiciona desde el primer marco del video

“Zoom” permite acercar o alejar la grafica de la respuesta pupilar

Page 72: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

64 APENDICE B. DESCRIPCION DE LA INTERFAZ GRAFICA

Page 73: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Apendice C

Graficas de la respuesta pupilar

C.1. Graficas de la respuesta pupilar

La grafica de la respuesta pupilar la obtuvimos a partir del archivo de las areas calcu-ladas con el algoritmo de ajuste a una elipse. En la Fig. C.5 se muestran varios intervalosde la grafica.

C.2. Graficas con filtrado

La grafica de la respuesta pupilar tiene un perıodo T =26 segundos. Los primeros 20segundos indican el comportamiento de la pupila cuando se muestra la pantalla negray los 6 segundos restantes muestran el comportamiento de la pupila ante las pantallasde color en el espectro visible. Este perıodo equivale a 780 marcos del video digital Fig.C.3(a). Se observo que la senal de la grafica es de muy baja frecuencia (1/26 = 0.0384Hz). Por esta razon, se diseno un filtro FIR pasa bajas [26], basado en la Fig. C.3(b),

0

10

20

30

40

50

0 5000 10000 15000 20000 25000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar

Figura C.1: Grafica de la respuesta pupilar del video completo.

65

Page 74: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

66 APENDICE C. GRAFICAS DE LA RESPUESTA PUPILAR

0

10

20

30

40

50

0 1000 2000 3000 4000 5000 6000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar

(a)

0

10

20

30

40

50

6000 7000 8000 9000 10000 11000 12000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar

(b)

0

10

20

30

40

50

12000 13000 14000 15000 16000 17000 18000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar

(c)

0

10

20

30

40

50

18000 19000 20000 21000 22000 23000 24000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar

(d)

Figura C.2: a) Grafica de la respuesta pupilar desde el marco 1 al 6000. b) Grafica de la respuestapupilar desde el marco 6000 al 12000. c) Grafica de la respuesta pupilar desde el marco 12000

al 18000. d) Grafica de la respuesta pupilar desde el marco 18000 al 24000.

Page 75: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

C.2. GRAFICAS CON FILTRADO 67

(a)

-1.5-1

-0.5 0

0.5 1 Pass band (dB)

-80

-60

-40

-20

0Stop band (dB)

-700-600-500-400-300-200-100

0

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Frequency

Phase (degrees)

(b)

Figura C.3: a) Frecuencia de la grafica de la respuesta pupilar. b) Filtro utilizado para reconstruirla grafica de la respuesta pupilar.

0

10

20

30

40

50

0 5000 10000 15000 20000 25000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar filtrada

Figura C.4: Grafica de la respuesta pupilar filtrada del video completo.

utilizando las siguientes instrucciones de Octave [27]:

b = fir1(60,0.01,’low’);

s = filter( b, 1, x );

donde b es un arreglo de puntos y s es la senal filtrada. De esta forma, los parpadeos en lasenal de la respuesta pupilar se elimaran ya que son una senal de muy alta frecuencia. Lasenal filtrada puede verse en la Fig. C.5(a) donde se nota que ya no existen los parpadeos.

Page 76: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

68 APENDICE C. GRAFICAS DE LA RESPUESTA PUPILAR

0

10

20

30

40

50

0 1000 2000 3000 4000 5000 6000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar filtrada

(a)

0

10

20

30

40

50

6000 7000 8000 9000 10000 11000 12000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar filtrada

(b)

0

10

20

30

40

50

12000 13000 14000 15000 16000 17000 18000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar filtrada

(c)

0

10

20

30

40

50

18000 19000 20000 21000 22000 23000 24000

Are

a(m

m2

)

Marcos

Grafica de la respuesta pupilar filtrada

(d)

Figura C.5: b) Grafica de la respuesta pupilar filtrada desde el marco 1 al 6000. b) Grafica dela respuesta pupilar filtrada desde el marco 6000 al 12000. c) Grafica de la respuesta pupilardesde el marco 12000 al 18000. d) Grafica de la respuesta pupilar filtrada desde el marco 18000

al 24000.

Page 77: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Apendice D

Scripts desarrolladas

D.1. Animacion

Script utilizada para la animacion del examen de estimulacion con el area obtenidadel programa de ajuste algebraico.

die "Args: data_file\n" unless $ARGV[0];$file_name = $ARGV[0];$i=0;while ( <> ) {

if ( $_ !~ /^# / ) {@data = split (’ ’,$_);$xc[$i] = $data[0];$yc[$i] = $data[1];$a[$i] = $data[2];$$b[$i] = $data[3];$alfa[$i] = $data[4];$i++;}

}$n = $i;open ( GNU, ’|gnuplot’ ) || die "Can’t find \"gnuplot\" program\n";select (GNU);$| = 1; # Make unbuffered!!!print <<’FIN’xc=1yc=1a= 1b= 1alfa=0x(t) = a*cos(t)y(t) = b*sin(t)

xp(t) = x(t) + y(t) + xc

69

Page 78: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

70 APENDICE D. SCRIPTS DESARROLLADAS

yp(t) = -x(t) + y(t) + yc

set xrange [0:720]set yrange [0:480]set parametricset trange [0:2*pi]plot xp(t), yp(t)FIN;

for( $i=0; $i < $n; $i++ ) {print <<ENDxc=$xc[$i]yc=$yc[$i]a=$a[$i]b=$b[$i]alfa=$alfa[$i]replotEND

;sleep 1;}close( GNU );

D.2. Filtro

La siguiente script muestra el filtro ejecutado sobre Octave [27] para filtrar la graficade la respuesta pupilar.

f = "finalareas2.dat";[ARCH, mesg] = fopen( f, "rt" );if ( ARCH < 0 )usage( mesg );endif

i = 1do[index, x(i), c] = fscanf( ARCH, "%f %f", "C" );i++;until ( c != 2 )fclose( ARCH );

b = fir1(60,0.01,’low’);

s = filter( b, 1, x );

[ARCH, mesg] = fopen( "a.txt", "wt" );

Page 79: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

D.2. FILTRO 71

if ( ARCH < 0 )usage( mesg );endifn = length ( s )i = 1dofprintf( ARCH, "%i %f\n", i, s(i) );i++;until ( i == n )

Page 80: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

72 APENDICE D. SCRIPTS DESARROLLADAS

Page 81: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

Bibliografıa

[1] A.C. Guyton. Fisiologıa Humana. 1967. Segunda Edicion.

[2] Hector D’Onofrio Jorge A. Ure. Los movimientos oculares en la practica neuropsiquiatrica, Junio1999.http://www.imagendv.com/tutorial/fiche avi/fiche avi.htm.

[3] Raul Cabestrero Alonso y Antonio Crespo. La respuesta pupilar como detector de emociones. InIV Semana de Investigacion. Departamento de Psicologıa Basica II, Facultad de Psicologıa, UNED,18-22 Nov 2002. http://www.uned.es/psicologia/IVSemana/simposios/raul cabestrero.htm.

[4] D. Rodrıguez Guzman, A. Zu niga Lopez, and E. Suaste Gomez. Respuestas pupilares a estımuloscromaticos en el espectro visible de 400nm a 650nm, en el estado estable. Revista Mexicana deFısica, pages 365–370, Agosto 2005.

[5] DV. http://en.wikipedia.org/wiki/DV.

[6] Javier E.&Duir. Formatos AVI DV, 2001.http://www.imagendv.com/tutorial/fiche avi/fiche avi.htm.

[7] LinuxDV (Digital Video for Linux). http://www.kinodv.org.

[8] Conde Acevedo A. Padilla Vivanco G. Urcid Serrano J.J. Baez Rojas, M.L. Guerrero. Segmentacionde imagenes de color. Revista Mexicana de Fısica, pages 1–2, Diciembre 2004.

[9] Computer vision. http://people.csail.mit.edu/seth/pubs/taskforce/section3 5.html.

[10] Rafael C. Gonzalez. Digital Image Processing. Addison Wesley, 1996.

[11] Kenneth R. Castleman. Digital Image Processing. Prentice Hall, 1996.

[12] Francisco Gabriel Ortiz Zamora. Procesamiento morfologico de imagenes en color. aplicacion a lareconstruccion geodesica, 2002.

[13] Ashley Walker Erik Wolfart Robert Fisher, Simon Perkins. Image processing learning resources,2004. http://homepages.inf.ed.ac.uk/rbf/HIPR2/hipr top.htm.

[14] Yura Gabriel. Minimum Distance Classifier.http://www.profc.udec.cl/∼gabriel/tutoriales/rsnote/cp11/cp11-6.htm.

[15] Radim Halır. Robust Bias-Corrected Least Squares Fitting Of Ellipses, 2000.http://citeseer.ist.psu.edu/halir00robust.html.

[16] R. Halir and J. Flusser. Numerically Stable Direct Least Squares Fitting of Ellipses, 1998. Halir, Rand Flusser, J (1998) Numerically Stable Direct Least Squares Fitting of Ellipses. in Skala, V (ed.)Proc. Int. Conf. in Central Europe on Computer Graphics, Visualization and Interactive DigitalMedia. 125–132.

73

Page 82: Unidad Zacatenco Sistema de software para la medici´on de ...La respuesta pupilar consiste en medir el area de la pupila del ojo bajo una prueba de varios est´ımulos luminosos.

74 BIBLIOGRAFIA

[17] Radim Halır. Direct and specific least-square fitting of hyperbolae and ellipses. Journal of ElectronicImaging, 13:492–503, July 2004. Institute of Information Theory and Automation, Academy ofSciences of the Czech Republic, Czech Republic.

[18] A. Fitzgibbon, M. Pilu, and R.B. Fisher. Direct least square fitting of ellipses. IEEE Trans. Patter.An. and Mach. Int., 21(5):476–480, May 1999.

[19] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum,S. Hammarling, A. McKenney, and D. Sorensen. LAPACK Users’ Guide. Society for Industrial andApplied Mathematics, Philadelphia, PA, third edition, 1999.

[20] O. Tykhomyrov. Making movies with kino. Linux Journal, Dec 2004.

[21] Ricardo Landa Becerra y Luis Gerardo de la Fraga Julio Cornejo Herrera, Adriana Lara Lopez. Unalibrerıaa para procesamiento de imagen: scimagen. VIII Conferencia de Ingenierıa Electrica, 4, 5 y6 de septiembre del 2002. CINVESTAV.

[22] E.W. Weisstein. Ellipse, from mathworld–a wolfram web resource. http://mathworld.wol-fram.com/Ellipse.html.

[23] E.W. Weisstein. Quadratic curve, from mathworld–a wolfram web resource. http://mathworld.wol-fram.com/QuadraticCurve.html.

[24] Trolltech, 2006. http://www.trolltech.com/.

[25] Uwe Behrens. Gl commands, 1995. http://www.mevis.de/opengl/opengl.html.

[26] Andreas Antoniou. DIGITAL FILTERS: analysis, design, and applications. McGrawHill, Inc, Secondedition, 1993.

[27] John W. Eaton. Octave, 2006. http://www.gnu.org/software/octave/.