Transcript
Page 1: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Sistema de Captura y Análisis Digitalde Imágenes para el Estudio del Proceso

de Maduración del Tomate

Documentación de Proyecto de GradoIngeniería Electrónica e Ingeniería en

Telecomunicaciones

Marcos AitcinGonzalo ArocenaMartín Piñeyro

Tutor: Dr. Álvaro Pardo

Facultad de IngenieríaUniversidad Católica del Uruguay

Montevideo, UruguaySeptiembre 2010

Page 2: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL

II

Page 3: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Tabla de Contenidos

Tabla de Contenidos III

Lista de Figuras VII

Lista de Tablas XI

1. Introducción 11.1. Marco del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Motivación y Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3. Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4. Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5. Resumen de de la documentación . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2. Generalidades del Análisis de Imágenes Digitales 72.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2. La imagen Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3. Procesamiento digital de imágenes . . . . . . . . . . . . . . . . . . . . . . . . . 82.4. Justificación de las herramientas a utilizar en el proyecto . . . . . . . . . . . . . 12

3. Módulo de captura 133.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2. Descripción general del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1. Configuraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.2. Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.3. Iluminación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2.4. Interfaz con cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.2.5. Cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3. Descripción del primer prototipo implementado . . . . . . . . . . . . . . . . . . 203.4. Prototipo Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4.1. Estructura y soportes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4.2. Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.4.3. Controlador del motor . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.4.4. Iluminación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.4.5. Cámara Utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5. Aplicación para el módulo de Captura . . . . . . . . . . . . . . . . . . . . . . . 31

III

Page 4: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Tabla de Contenidos

4. Módulo de procesamiento 354.1. Descripción General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.2. Detección de Contornos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2.1. Coordenada y máxima y coordenada y mínima . . . . . . . . . . . . . . 394.2.2. Radios máximos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3. Procesamiento de la información de contornos . . . . . . . . . . . . . . . . . . . 414.3.1. Reordenamiento de la información . . . . . . . . . . . . . . . . . . . . . 414.3.2. Normalización de la información de contornos . . . . . . . . . . . . . . 43

4.4. Aspectos geométricos de las proyecciones bidimensionales . . . . . . . . . . . . 454.4.1. Proyección de ancho constante . . . . . . . . . . . . . . . . . . . . . . . 464.4.2. Proyección de ancho constante con corrección vertical . . . . . . . . . . 494.4.3. Proyección pseudicilíndrica de igual superficie . . . . . . . . . . . . . . 54

5. Módulo de análisis 655.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.2. Análisis de la Imagen de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.2.1. Detección de Manchas . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2.2. Cuantificación de superficie . . . . . . . . . . . . . . . . . . . . . . . . 705.2.3. Generación de reportes . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6. Calibración 756.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.2. Modelo Pinhole de la cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.3. Método de Calibración de OpenCV . . . . . . . . . . . . . . . . . . . . . . . . 80

7. Software implementado 857.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.2. Estructura General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.3. Módulo de Captura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867.4. Módulo de Procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877.5. Módulo de Análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

8. Validación 998.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.2. Ensayo realizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.3. Medidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

8.3.1. Promedio de superficie total cubierta por el patrón . . . . . . . . . . . . 1038.3.2. Desviación estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038.3.3. Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

8.4. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038.4.1. Interpretación de los resultados experimentales . . . . . . . . . . . . . . 103

9. Conclusiones 1079.1. Conclusiones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.2. Conclusiones particulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

9.2.1. Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

IV

Page 5: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Tabla de Contenidos

A. Introducción al procesamiento de imágenes 113

B. Resultados obtenidos aplicando corrección por calibración 121B.1. Resultados Experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

C. Gestión de Proyectos 123C.1. Plan de Trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Bibliografía 127

V

Page 6: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Tabla de Contenidos

VI

Page 7: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Lista de Figuras

1.1. Modulo de Captura y sus partes . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Modulo de Análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1. Matriz que representa una imagen digital . . . . . . . . . . . . . . . . . . . . . . 82.2. Primer Ejemplo Segmentación . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3. Segundo Ejemplo de Segmentación . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1. Esquema Multi-cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2. Cámara fija con espejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3. Cámara rotando entorno a la pieza . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.4. Servomotores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5. Motor Paso a Paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6. Pruebas con Servomotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.7. Corrimiento del eje del tomate respecto al de rotación por la utilización de una base plana 233.8. Marco vertical y elementos de sujeción . . . . . . . . . . . . . . . . . . . . . . . . 243.9. Soporte superior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.10. Esquema de soporte de cámara y marco horizontal y vertical . . . . . . . . . . . . . . 263.11. Tabla de excitación de las Bobinas . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.12. Diagrama lógico del ULN2003A . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.13. Caja de luz construida con foamboard . . . . . . . . . . . . . . . . . . . . . . . . . 283.14. Pruebas con los tres tipos de fuentes de luz . . . . . . . . . . . . . . . . . . . . . . . 293.15. Cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.16. Prototipo final construido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.17. Captura de pantalla del módulo de captura . . . . . . . . . . . . . . . . . . . . . 323.18. Diagrama de flujo de la aplicación de captura . . . . . . . . . . . . . . . . . . . 33

4.1. Procesamiento previo a la detección de contornos . . . . . . . . . . . . . . . . . . . 374.2. Proceso de ajuste del valor de umbral . . . . . . . . . . . . . . . . . . . . . . . . . 384.3. Primer imagen de una secuencia. En la misma se representa el primer huso de la secuencia

y al mismo tiempo las coordenadas y máxima y mínima del contorno que se estádetectando en ese instante. Puede verse que dicho contorno no aporta información útilpara calcular el huso 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.4. En verde: Contorno detectado. En Azul: Contorno procesado (puntos del contornocomprendidos entre yMin e yMax) . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.5. Radio máximo y puntos en el eje y superficie de la primer captura de la secuencia deimágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

VII

Page 8: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Lista de Figuras

4.6. La información de contorno de una determinada zona de la pieza se adquiere en unacaptura que no es aquella en la cual dicha zona se encuentra frente a la cámara. Estohace que sea necesario re ordenar la información . . . . . . . . . . . . . . . . . . . . 42

4.7. Interpolación para obtener un punto en la superficie del tomate para cada punto del ejeprincipal. Se puede apreciar el rango de coordenadas y presente en todos los contornos(eje horizontal en este caso) y un punto interpolado entre dos puntos detectados . . . . . 44

4.8. Ejemplo de una situación en la cual debido a un mal ajuste de threshold el contornodetectado presenta mas de un punto con determinada coordenada y . . . . . . . . . . . 45

4.9. Efecto de la perspectiva horizontal en dos longitudes de arco tomadas en zonas diferentesde la pieza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.10. Efecto de la perspectiva vertical en dos longitudes de arco tomadas en zonas diferentes dela pieza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.11. Proyección de ancho constante. El ancho de las secciones rectangulares se determina apartir del promedio de los radios máximos de los contornos detectados. . . . . . . . . . 48

4.12. Comparación de las representaciones bidimensionales de ancho constante generadas apartir de 40, 100 y 200 fotos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.13. Proyección del primer rectángulo que compone la representación bidimensional concorrección vertical. Se puede ver la correspondencia entre los pixeles de la proyeccióny los de la imagen origen. También se muestra el punto a partir del cual se comienza aconstruir la proyección y el sentido en el que se realiza . . . . . . . . . . . . . . . . . 51

4.14. Proyección de ancho constante con corrección vertical generada con secuencia de 40imágenes. Pueden apreciarse las diferencias en el ancho y alto de los rectángulos quela compornen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.15. Proyección de ancho constante con corrección vertical generada con secuencia de 200imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.16. Regiones trapezoidales definidas en la zona central de una imagen de la secuencia. Lospixeles contenidos dentro de cada trapecio deben transformarse para formar la proyecciónbidimensional de igual área . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.17. Resulatdo de definir regiones trapezoidales variando el paso. Cuanto menor es el pasoaumenta la cantidad de trapecios utilizados para cubrir la zona. . . . . . . . . . . . . . 56

4.18. Resultado de proyectar los trapecios definidos en la primer imagen de la secuencia. Dellado izquierdo la proyección y del lado derecho la imagen original. La proyección deestos trapecios se ubica en el centro de la representación bidimensional por lo que no haydeformaciones ni traslaciones de los mismos en sentio horizontal. . . . . . . . . . . . 57

4.19. Determinación de la coordenada x de un punto cualquiera de la superficie del tomate. Lacoordenada x del punto proyectado queda determinada por la longitud del arco de ánguloθ. La coordenada y se determina usando la longitud de arco del contorno correspondienteal punto en cuestión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.20. Proyección de los trapecios definidos en la segunda y tercer imagen de la secuencia . . . 594.21. Proyección completa generada transformando los trapecios definidos sobre el eje vertical

de cada imagen de una secuencia de 40 . . . . . . . . . . . . . . . . . . . . . . . . 604.22. Proyección completa incluyendo la información de color. Dicha información se mapea en

la imagen destino utilizando la herramienta OpenGL . . . . . . . . . . . . . . . . . . 614.23. Proyección pseudocilíndrica de igual superficie generada a partir de una secuencia de 40

imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

VIII

Page 9: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Lista de Figuras

4.24. Proyección pseudocilíndrica de igual superficie generada a partir de una secuencia de 200imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.1. Ventana en la cual se despliega la proyección y se detecta su contorno exterior. Se disponede un trackbar para que el usuario pueda ajustar el umbral. En la esquina inferior izquierda,un botón que permite aceptar la detección y proceder con el análisis. . . . . . . . . . . 66

5.2. Ventanas que permiten al usuario seleccionar la region de la proyección en la cual seencuentra el elemento que quiere medir. Una vez definida esta región el usuario puedeajustar manualmente el valor del umbral que determina el contorno que se detecta . . . . 67

5.3. Resultado de los diferentes métodos de interpolación proporcionados por OpenCV . . . 695.4. Imagen que se incluye en el reporte. Las zonas de interés en las que se tomaron medidas

se identifican mediante un recuadro numerado . . . . . . . . . . . . . . . . . . . . . 725.5. Interfaz que permite que el usuario selecciones el ensayo que desea visualizar . . . . . . 725.6. Ejemplo de la información presentada en los reportes . . . . . . . . . . . . . . . . . 73

6.1. Formación de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.2. Esquema del modelo pinhole y sus parámetros . . . . . . . . . . . . . . . . . . . 766.3. Modelo Pinhole Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.4. Mapeo de la distorción radial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7.1. Diagrama de bloques del software implementado en este proyecto . . . . . . . . . . . 857.2. Diagrama de flujo de principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887.3. Diagrama de flujo de cargarImagen . . . . . . . . . . . . . . . . . . . . . . . . . 897.4. Diagrama de flujo de detectarContorno . . . . . . . . . . . . . . . . . . . . . . . 917.5. Diagrama de flujo de procesarContornos . . . . . . . . . . . . . . . . . . . . . . . 937.6. Diagrama de flujo de proyectarSuperficie . . . . . . . . . . . . . . . . . . . . . . 947.7. Diagrama de flujo de getYorigen . . . . . . . . . . . . . . . . . . . . . . . . . . . 967.8. Diagrama de flujo de analizarImagen . . . . . . . . . . . . . . . . . . . . . . . . 98

8.1. Vista frontal de la esfera (pelota de golf) con patrones circulares adheridos a susuperficie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

8.2. Proyecciones bidimensionales de esfera con patrones . . . . . . . . . . . . . . . . . . 1018.3. Imágenes resultantes de la medición de la superficie de los patrones en las tres

proyecciones. La numeración de los patrones se mantiene en las tres proyecciones. . . . 1028.4. Histograma de las medidas de porcentaje de superficie total cubierta por el patrón

para cada proyección. Los intervalos considerados son de 0.1 %. . . . . . . . . . 104

A.1. Imagen y su histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113A.2. Distribución de Probabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114A.3. Ejemplo de ecualización de histograma . . . . . . . . . . . . . . . . . . . . . . 115A.4. Otro ejemplo de ecualización de histograma . . . . . . . . . . . . . . . . . . . . 116A.5. Especificación Histograma Imagen Original . . . . . . . . . . . . . . . . . . . . 116A.6. Resultado de aplicar Ecualización de Histograma . . . . . . . . . . . . . . . . . 117A.7. Resultado de aplicar Especificación de Histograma . . . . . . . . . . . . . . . . 117A.8. Histograma Especificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118A.9. Filtrado Espacial Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119A.10.Reducción de ruido sal y pimienta utilizando medianfilter . . . . . . . . . . . 119

IX

Page 10: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Lista de Figuras

B.1. Histograma de las medidas con calibración de porcentaje de superficie totalcubierta por el patrón para cada proyección. Los intervalos considerados son de0.1 %. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

X

Page 11: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Lista de Tablas

8.1. Medidas de la pelota y el patrón . . . . . . . . . . . . . . . . . . . . . . . . . . 1038.2. Comparación de las medidas tomadas en las tres proyecciones . . . . . . . . . . 104

B.1. Comparación de las medidas tomadas en las tres proyecciones . . . . . . . . . . 121

XI

Page 12: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Lista de Tablas

XII

Page 13: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Resumen

La industria alimenticia tiene la necesidad de realizar el seguimiento del proceso demaduración de una gran variedad de productos. Teniendo en cuenta que durante este proceso lasfrutas y verduras presentan cambios visibles (color, forma, tamaño, aparición de manchas, etc) lastécnicas de análisis de imágenes digitales son una herramienta muy adecuada para llevar a caboesta tarea. Tradicionalmente los sistemas diseñados para analizar objetos en la etapa de producciónutilizan cámaras de altas prestaciones de uso industrial. El elevado costo de estos dispositivosmuchas veces dificulta el acceso a dicha tecnología.

Teniendo esto en cuenta surgió la inquietud de investigar la viabilidad de desarrollar unsistema de análisis de alimentos que utilice tecnología de bajo costo. Específicamente se pretendeprescindir de cámaras de uso industrial sustituyéndolas por cámaras Web de uso doméstico. Setomó contacto con un grupo de investigadores del LATU que actualmente está llevando a caboun estudio acerca del proceso de maduración del tomate y por esta razón el presente proyectose enfocará a dicho producto. A través de la Ing. Maria José Crosa, el LATU está apoyandoeste proyecto, proporcionando su conocimiento y experiencia en el área del análisis de productosalimenticios. A partir de la interacción con el LATU se han logrado definir objetivos concretos paraeste proyecto de forma tal que el sistema resultante será efectivamente una herramienta adecuadapara el análisis del proceso de maduración del tomates.

El objetivo del proyecto es desarrollar un sistema que permita tomar medidas para estudiar enforma precisa el proceso de maduración del tomate. Se pretende que el sistema sea en principioun instrumento de apoyo en el laboratorio y de resultar útil sea un equipo de apoyo para losproductores o acopiadores de la industria. El sistema permite mediante el registro de un conjuntoimágenes la visualización de toda la superficie del tomate. Se realiza a partir de estas imágenes unmapeo que despliega la superficie del tomate en una nueva imagen de forma de mantener el área demanera de tener una mejor visualización y poder usar sobre esta herramientas para cuantificacióndel área de las manchas.

XIII

Page 14: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Resumen

XIV

Page 15: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 1

Introducción

1.1. Marco del Proyecto

Los sistemas de control de calidad en el ámbito agro-industrial han tenido grandes adelantosdebido al avance de técnicas tales como el procesamiento digital de imágenes. La actividad agro-industrial de nuestro entorno regional y nacional hace pensar en la necesidad de implementarsistemas de visión artificial para el control de calidad de frutas. La idea de este trabajo esdesarrollar una herramienta que permita llevar a cabo ensayos no destructivos del producto,realizar el seguimiento y estudiar la evolución de una muestra representativa. Una de lascaracterísticas principales de este sistema es que se basa en análisis de imágenes tomadas coniluminación y cámaras de bajo costo y desarrollado con herramientas gratuitas. La contraparteespecializada en el control de calidad aplicado a la industria alimenticia durante el desarrollo deeste proyecto fue el Laboratorio Tecnológico del Uruguay (LATU) a través del la Ing. María JoséCrosa.

1.2. Motivación y Descripción

Los integrantes de este proyecto nos hemos interesado en el análisis digital de imágenes apartir de observar la multiplicidad de terrenos en los que puede aplicarse esta disciplina. Si biendurante la carrera no hemos trabajado específicamente con imágenes, recibimos amplia formaciónen las materias básicas que conforman el marco teórico necesario para abordar el tema (Cálculonumérico, Programación, Electrónica, Análisis de Señales, entre otras).

Llegado el momento de elegir un proyecto de fin de carrera hemos manifestado nuestro interésde trabajar en un proyecto vinculado al análisis digital de imágenes al Departamento de IngenieríaElectrónica (DIE) y surgió la posibilidad de trabajar en un proyecto asociado al estudio de losalimentos, concretamente al seguimiento del proceso de maduración del tomate. La necesidadsurgió de un grupo de investigadores del LATU, mantuvimos varias reuniones con ellos y pudimosrecavar la siguiente información para comenzar a desarrollar el proyecto:

1

Page 16: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 1. Introducción

ANTECEDENTES: Actualmente los cambios en el aspecto durante el proceso de maduracióndel tomate, se registran fotográficamente y el análisis de los mismos es cualitativo, dado que nose define la iluminación del ambiente ni la distancia a la que son tomadas ni se llevan a cabomediciones de superficie. Si bien existen equipos que permiten cuantificar los cambios en el color,éstos no son útiles cuando el alimento presenta diferentes colores. Estos equipos no son capacesde medir las áreas cubiertas por cada color.

Teniendo esto en cuenta se plantearon como objetivos primarios para la investigación los siguientespuntos.

OBJETIVOS DEL DESARROLLO:

Cuantificar el área invadida por lesiones en la cáscara.

Lograr condiciones reproducibles para la adquisición de las imágenes.

Para lograr los objetivos de este proyecto el trabajo fue dividido en etapas. En la etapa inicialse realizo una búsqueda de información acerca de los avances más recientes en este terreno. Sepretendió en esta etapa poder concluir que lenguaje de programación y librerías se utilizarán.Formó también parte de la etapa inicial la generación de material fotográfico adecuado necesariopara realizar pruebas durante el desarrollo. En esta etapa se estudiaron distintos sistemas deiluminación y captura, determinando que tipo de luces eran las adecuadas para las condicionesdeseadas y las cámaras disponibles.

A continuación se profundiza en el procesamiento digital de imágenes. Es aquí donde sedesarrollaron los algoritmos necesarios para cuantificar e identificar los cambios planteados enel objetivo del presente documento. Durante esta etapa se utilizaron conjuntos de imágenes dediferentes tomates. Se determinaron las características que tienen que tener las imágenes parapoder llevar a cabo el procesamiento con el objetivo de definir los requerimientos del sistema decaptura que se implemento en la siguiente etapa.

Luego se trabajó en el prototipo. Las características del prototipo estuvieron determinadas porla información recolectada en las etapas anteriores. Se definió como iba a ser la interacción entreel dispositivo de captura y el objeto a analizar (tomate) y se trabajó en los aspectos mecánicos,electrónicos y lumínicos del proyecto. Finalizada esta etapa se realizó el testeo del sistemacompleto con el objetivo de llevar a cabo los ajustes y modificaciones necesarias para conseguir elfuncionamiento deseado.

El proyecto se divide en dos módulos principales:

1. Módulo de Captura: Este módulo está compuesto por el hardware necesario para adquirirlas imágenes.

A grandes rasgos el módulo de captura está compuesto por:

Recinto que permite trabajar en condiciones de luz controladas para que la luzambiente no afecte el funcionamiento del sistema. Es parte de este proyecto el diseñoy la construcción del mismo.

2

Page 17: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 1. Introducción

Figura 1.1: Modulo de Captura y sus partes

Elementos de iluminación adecuados para asegurar que las características de lasimágenes adquiridas son las necesarias para que el módulo de análisis funcionecorrectamente. Se investigó cuál es el elemento lumínico mas adecuado y se determinóla ubicación optima para dichos elementos en relación a la pieza.

Soporte móvil (ubicado dentro del recinto anteriormente descrito) que permite exponera la cámara toda la superficie del tomate que se está analizando. La rotación de estesoporte se da entorno a un solo eje. Este mecanismo está basado en un motor del tipopaso a paso, un micro-controlador y componentes electrónicos que funcionan comodriver del motor.

Cámara Web estándar de uso doméstico.

Software necesario necesario para interactuar con cámara web y soporte móvil.

Elemento que permite posicionar en forma adecuada la cámara respecto al resto delmódulo de captura. Es importante que dicho elemento permita que las muestras seantomadas siempre en las mismas condiciones.

2. Módulo de Procesamiento: Este modulo incluye el hardware de procesamiento(computadora) y el software para el análisis de las imágenes adquiridas. El software estaráconformado por cuatro módulos principales:

Segmentación y detección.

Procesamiento de información de contornos.

Reconstrucción de superficie.

Análisis de las regiones de interés.

Generación de reportes para usuarios.

3

Page 18: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 1. Introducción

Figura 1.2: Modulo de Análisis

1.3. Definición del problema

En la actualidad los costos de producción de frutas y verduras se ven afectados por variosfactores, la competencia regional, el costo de la tierra, el precio de los insumos, entre otroshacen que cada ves sea más necesaria la búsqueda de una producción en gran escala. Para estolos pequeños y medianos productores buscan formas de asociarse o agruparse de manera debajar costos y lograr mayor volumen en el conjunto para de esta manera tener mayor poder denegociación tanto para la venta de la producción como para la compra de insumos necesarios . Esaquí donde la tecnología toma un papel preponderante, tanto en la producción como en posteriorcomercialización de los productos. Es sabido que aplicando distintas tecnologías se han logradobajar costos de producción y mejorar rendimientos tradicionales intensificando la producción.

La población mundial crece día a día por lo tanto la demanda de alimentos es cada día mayorteniendo como fuente la misma cantidad de recursos naturales. En nuestro caso la necesidad deusar tecnologías al servicio de la producción se ve planteada desde el momento que es aplicadaa una fruta de estación, el tomate. El mismo es naturalmente una fruta de verano pero con el finde obtener oferta de tomate durante todo el año , se utilizan métodos de maduración artificial. Setrata de almacenar grandes volúmenes de tomate en cámaras de atmósfera controlada de manerade poder demorar o acelerar el proceso de maduración y lograr de esta forma una oferta anual,esto claramente es un beneficio para los productores ya que pasan a tener una demanda continua alo largo de todo el año.

El control de estos sofisticados sistemas se puede realizar mediante una inspección visual deuna determinada cantidad de muestras, confiando en la experiencia del operario. Otra alternativaes utilizar un sistema como el propuesto en este proyecto, que permite cuantificar de manerasistemática los indicadores necesarios para llevar un proceso de maduración controlado. Entreotras cosas también es posible mediante el uso de está tecnología la detección temprana de posiblesenfermedades que de no ser detectadas a tiempo podrían expandirse por toda la producción. Deesta manera entre otras cosas se pude llevar un mejor seguimiento de las mencionadas cámaras asícomo mejorar el seguimiento del proceso de maduración, control de enfermedades entre otras.

Nuestro trabajo de investigación parte de una necesidad planteada por la Ing. María JoséCrossa del LATU de poder contar con un dispositivo capaz de registrar y medir los cambios quese producen en la superficie del tomate a lo largo del proceso de maduración. En este sentidose planteo la necesidad de tomar medidas de manchas para estudiar su evolución. Al estar estas

4

Page 19: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 1. Introducción

sobre un volumen irregular es difícil obtener información utilizando instrumentos de mediciónconvencionales. Por otro lado se plantea el problema de que el ensayo debe ser no destructivopara poder observar la evolución de la muestra por lo que el uso de cámaras y procesamientode imágenes parecería ser una alternativa válida. Como antecedentes encontramos publicacionesrelacionadas a la materia como ser:

Predicting Ripening Stages of Bananas de F. Mendoza y P. Dejmek de las universidades dePontificia Universidad Católica de Chile y Lund University de Suecia entre otros.

Assessing mango anthracnose using a new three-dimensional image-analysis technique to

quantify lesions on fruit de G. Corkidi y K. A. Balderas-Ruíz de las universidades de Image

Analysis Laboratory, Centro de Ciencias Aplicadas y Desarrollo Tecnológico, UNAM y

Department of Cellular Engineering Biocatalysis, Instituto de Biotecnología, UNAM.

1.4. Objetivos del proyecto

El objetivo del presente proyecto es desarrollar un sistema que mediante la captura y elposterior análisis de imágenes digitales permita:

1. Generar una proyección pseudocilíndrica de igual área de la superficie del tomate. Estatransformación permitirá a partir de la imagen resultante tomar medidas de superficie enregiones de interés.

2. Identificar en forma automática o asistido por un operador regiones particulares de lasuperficie que resultan de interés para el estudio de proceso de maduración del tomate.

3. Proporcionar un reporte de cada muestra estudiada que permita comparar resultados deestudios sucesivos de las muestras y extraer conclusiones.

4. Estimar el volumen de la pieza en cada estudio que se realice. Este punto se plantea comoopcional.

1.5. Resumen de de la documentación

Capítulo 2 - Generalidades del Análisis de Imágenes Digitales En este capítulo se introducenlos fundamentos básicos para el análisis digital de imágenes. El capítulo 2 se complementa enal apéndice A donde se desarrollan las pruebas iniciales que se realizaron para introducirse en eltema.

Capítulo 3 - Módulo de captura Se describe el proceso que se llevó a cabo para generar estemódulo. La construcción de un primer prototipo y luego a partir de los resultados, la descripcióncompleta del prototipo final construido.

Capítulo 4 - Módulo de procesamiento Descripción general de los fundamentos utilizados enmódulo de procesamiento. Detalles de los algoritmos que se desarrollaron para lograr las distintasproyecciones.

5

Page 20: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 1. Introducción

Capítulo 5 - Módulo de análisis Detallamos el módulo que desarrollamos para analizar lainformación obtenida utilizando el módulo de captura. Así como la forma en que el usuario recibela información e interactua con la aplicación.

Capítulo 6 - Calibración Se presenta el marco teórico del tema. Se describe el modelo decámara utilizado. Se presenta la aplicación de los algoritmos de calibración.

Capítulo 7 - Software implementado En este capítulo se incluyen los casos de uso del softwareimplementado.

Capítulo 8 - Validación Se comparan los resultados experimentales obtenidos en las 3proyecciones y se determina cual es el mejor resultado. El efecto de la calibración en los resultadosse presenta en el apéndice B

Capítulo 9 - Conclusiones En este capítulo se presentan las conclusiones y posible trabajo afuturo.

6

Page 21: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 2

Generalidades del Análisis de ImágenesDigitales

2.1. Introducción

En el análisis digital de imágenes se trata de transformar la información disponible en unaimagen o cuadro de vídeo en una decisión o nueva representación. Esta disciplina tiene un ampliocampo de aplicación como ser, sensado remoto, automatismos, vehículos guiados por computadoray medicina entre otros.

En este capitulo repasaremos los fundamentos teóricos y el estado del arte en lo que respecta ala generación de soluciones utilizando el análisis y procesamiento de imágenes. Una característicaimportante para el diseño de sistemas de procesamiento de imágenes es la capacidad de obtenerrápidamente prototipos que permitan evaluar posibles soluciones. Esto se verá reflejado en unareducción de costos y tiempo.

2.2. La imagen Digital

Existe un concepto intuitivo en nosotros de lo que es una imagen, por ejemplo la imagen quecaptura el ojo humano en la retina o la imagen capturada por una cámara de televisión. El mundoreal es intrínsecamente tridimensional sin embargo en una imagen obtenemos una representaciónbidimensional del mundo. Cuando esta representación bidimensional queda definida por bitsllamamos a esta representación imagen digital.

Una imagen digital se define como una función discreta en dos dimensiones f(x,y), donde x ey son las coordenadas espaciales planas, y la amplitud de f es la intensidad de la imagen en elpunto (x, y). Para definir la amplitud en el caso de imágenes monocromáticas se utiliza el terminoescala de grises. En el caso de imágenes color se utiliza un conjunto de imágenes independientesque contienen la información de color. Por ejemplo cuando se trabaja con el espacio de color RGB,se utiliza una imagen para cada uno de los canales (Rojo, Verde y Azul). El color de cada pixel dela imagen color que se está representando queda determinado por la amplitud de cada una de estasimágenes en el pixel correspondiente.

7

Page 22: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 2. Generalidades del Análisis de Imágenes Digitales

Las imágenes digitales se representan como matrices; habitualmente se identifica como origendel sistema al punto superior izquierdo al cual le corresponden en la matriz los indices (0, 0).

Figura 2.1: Matriz que representa una imagen digital

2.3. Procesamiento digital de imágenes

El procesamiento se suele dividir en 3 niveles, uno bajo donde se hacen operacionesprimarias, como reducir ruidos o realce de contrastes. En el nivel medio, se realizan tareas comosegmentación, clasificación y reconocimiento de objetos. Este nivel esta caracterizado por tenerimágenes como entradas y atributos extraídos de las imágenes como salidas, por ejemplo formasde los objetos detectados, medidas, etc. En el tercer nivel, alto, se toman decisiones en base alos datos obtenidos; es en este nivel que se ubica el campo normalmente conocido como "visiónartificial".

En lo que respecta a este proyecto el procesamiento realizado llega hasta el nivel medio. Teniendoen cuenta los objetivos planteados para esta tesis, se utilizará como entrada un conjunto deimágenes y como salida se obtendrán datos útiles para el estudio del proceso de maduración deltomate.

Es parte de este proyecto el estudio del procesamiento de imágenes, es por esto que se destinocierto tiempo al entendimiento de los algoritmos y técnicas mas utilizadas.

Para esta primer etapa se decidió utilizar MATLAB 1 por tratarse de una herramienta que habíamosutilizado previamente (en otros ámbitos) y por contar con un toolbox específico para el análisisde imágenes. Adicionalmente se tomó conocimiento de la existencia del libro Digital ImagePorcessing using MATLAB [15] el cual desarrolla los fundamentos del análisis de imágenesdigitales utilizando este lenguaje.

Alguna de las pruebas realizadas en esta etapa se incluyen en el apéndice A. En este apéndice

1MATLAB R© es un lenguaje de alto nivel y ambiente interactivo que permite hacer análisiscomputaciónal y tareas intensivas de forma mas rápida que los lenguajes tradicionales como C, C++ yotros.

8

Page 23: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 2. Generalidades del Análisis de Imágenes Digitales

se incluye una breve descripción de algunas de las funciones estudiadas y la teoría asociada aellas, así como también los resultados obtenidos al utilizarlas. El trabajo realizado en esa etapapermitió identificar los aspectos del procesamiento de imágenes mas aplicables a nuestro proyecto.A continuación se profundizará en uno de estos: La segmentación de imágenes.

Segmentación de imágenes

En el contexto del procesamiento de imágenes digitales, segmentación refiere al proceso departicionar una imagen en múltiples conjuntos de pixeles. El objetivo de la segmentación essimplificar y/o cambiar la representación de una imagen a algo que sea mas significativo y fácilde analizar. Los pixeles de un determinado conjunto definido luego de segmentar una imagen sonsimilares en cierta característica o propiedad como por ejemplo: Color, intensidad o textura.

Dada la imagen de una escena en la que están presentes múltiples objetos, generalmente es posibleencontrar cierta característica común entre los pixeles que corresponden a un mismo objeto. Poresta razón es posible utilizar la segmentación como método para identificar mediante un algoritmoun objeto o región de interés en una imagen.

Segmentación de imágenes por color

Para segmentar una imagen utilizando como criterio el color, es necesario definir un puntoen el espacio de color en el cual se está trabajando (que llamaremos umbral) y un cierto rangoentorno al mismo. Una vez realizado esto el proceso de segmentación consiste en determinar paracada pixel de la imagen si su valor está dentro de dicho rango o no.

Si trabajamos en el espacio de color RGB el rango antes mencionado quedará representado porun cierto volumen centrado en el punto correspondiente al umbral. El algoritmo de segmentacióncalculará la distancia en el espacio de color entre el umbral y cada pixel de la imagen y determinarási dicho pixel pertenece o no al rango. Es habitual en la segmentación por color tomar utilizar dostipos de distancias entre puntos del espacio RGB:

Euclídia: Es la que comúnmente llamamos distancia entre dos puntos del espacio y secalcula a partir de la fórmula de Pitágoras.

Mahalanobis: Está basada en correlaciones entre los valores de un subconjunto de pixelesde la imagen.

Al momento de implementar una rutina de segmentación por color la forma de definir elumbral y el rango antes mencionado es mediante la selección de una región de la imagen que sequiere segmentar. Este umbral es un parámetro fundamental que debe ingresarse en la función desegmentación. Existe un método estadístico que permite llegar a un umbral razonable que consisteen calcular, para cada una de las matrices R, G y B la desviación estándar de los pixeles quepertenecen a la región seleccionada. Los valores de los pixeles contenidos dentro de esta regiónson entonces los que determinan el umbral y el rango que el algoritmo considerará para decidir

9

Page 24: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 2. Generalidades del Análisis de Imágenes Digitales

cuales se aceptan o rechazan (se aceptan los que están dentro del rango y se rechazan los que estánfuera del mismo)[31].

El resultado de una rutina de segmentación es una matriz con la mismas dimensiones que la imagenque se esta procesando. Los elementos de esta matriz serán exclusivamente ceros o unos, indicandopara cada pixel de la imagen si pertenece o no al rango. A partir de esta matriz de ceros y unos seidentificara en la imagen original la zona de interés.

Aplicación de la segmentación

En este proyecto la segmentación se aplica con el objetivo de identificar en las imágenes queregión corresponde al fondo de la escena y que región corresponde al tomate.

Para probar lo anteriormente descrito se desarrolló una aplicación que permite seleccionar unaregión en la imagen original y en función del umbral y el rango calculado a partir de los pixelescontenidos en la misma, visualizar el resultado de la segmentación utilizando las distanciasEuclidiana y Mahalanobis. Las figuras 2.2 y 2.3 muestran los resultados obtenidos con estáaplicación.

Figura 2.2: Primer Ejemplo Segmentación

En los ejemplos de las figuras 2.2 y 2.3 puede apreciarse que la definición de la región deinterés (ROI) en este caso no es espacial sino que tiene por objetivo definir el rango de colorespredominantes del objeto que se quiere segmentar.

A partir de las pruebas realizadas con está aplicación pudimos comprobar que la segmentacióna partir del color es una técnica adecuada para separar en las imágenes nuestro objeto de estudio

10

Page 25: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 2. Generalidades del Análisis de Imágenes Digitales

Figura 2.3: Segundo Ejemplo de Segmentación

del resto de la escena.

Finalmente, las pruebas realizadas con está aplicación y las técnicas de procesamiento descritasen el apéndice A nos permitieron extraer las siguientes conclusiones:

Es necesario implementar la segmentación por color de forma tal que no sea necesarioajustar el umbral o el rango para cada imagen de la secuencia ya que se trabajará consecuencias de muchas imágenes.

Es fundamental lograr condiciones lumínicas adecuadas (para que no se generen puntos desaturación en la pieza ni sombras en el fondo de la escena).

Es necesario diseñar un soporte para la pieza que interfiera lo menos posible en lasegmentación.

Acerca de la herramienta MATLAB podemos concluir que resulta adecuada para realizarpruebas que permitan determinar si una técnica de procesamiento es adecuada o no paradeterminado fin. Sin embrago el tiempo de procesamiento es demasiado elevado como para serutilizado en la versión final de la aplicación que implicará el procesamiento de secuencias de hasta200 imágenes. Por otro lado MATLAB no es un software gratuito por lo que no se alinea con otrode los objetivos de este proyecto que es desarrollar el sistema minimizando los costos.

En la búsqueda de una herramienta mas adecuada se encontró una librería llamada OpenCV. Setrata de una librería de visión por computadora de código abierto desarrollada por Intel R©. Estalibrería esta escrita en C y C++ y corre en los sistemas operativos mas populares. OpenCV fuediseñada para lograr eficiencia computacional y haciendo foco en aplicaciones de tiempo real.Uno de los objetivos de OpenCV es proveer infraestructura de visión por computadora de simple

11

Page 26: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 2. Generalidades del Análisis de Imágenes Digitales

utilización que permita desarrollar rápidamente aplicaciones sofisticadas. Esta librería contienemas de 500 funciones que cubren múltiples áreas en el terreno de la visión artificial incluyendoinspección industrial, imagenología médica, seguridad, calibración de cámaras, visión estéreo yrobótica.

2.4. Justificación de las herramientas a utilizar en el proyecto

En está sección se explicarán las principales razones por las cuales se eligieron las siguientesherramientas para este proyecto:

C++ como lenguaje de programación.

OpenCV como librería principal de visión por computadora

OpenFrameworks como toolkit para desarrollo de interfaces con la cámara y con la partemecánica de este proyecto.

C++ es un lenguaje de programación híbrido (programación estructurada y orientada aobjetos) lanzado a mediados de los años 80. Este lenguaje fue diseñado principalmente parala programación de sistemas, extendiendo el lenguaje de programación C. C++ ha demostradoser adecuado para desarrollar aplicaciones que involucran procesamiento de imágenes ya quesu performance en tiempo de ejecución es muy buena y tiene disponibles librerías estándar quefacilitan el trabajo. Particularmente, OpenCV está desarrollada en este lenguaje por lo tanto suutilización resulta directa. Otra aspecto que consideramos al momento de la elección del lenguajefue la disponibilidad de entornos de desarrollo apropiados que sean gratuitos y encontramos quepara C++ existe varios muy reconocidos y bien documentados. En nuestro caso optamos porMicrosoft Vissual C++ Express Edition dado que es una herramienta muy completa y apta paradesarrollar en ambiente Windows.

OpenCV es una librería para visión computarizada desarrollada por INTEL. Su uso es libre bajola licencia BSD. La misma es multi-plataforma y esta enfocada al desarrollo de aplicaciones deanálisis de imágenes en tiempo real. Las clases, estructuras y métodos que OpenCV proporcionafacilitan el desarrollo de este tipo de aplicaciones. Dado que OpenCV es ampliamente usada existebuena documentación acerca de la misma y están disponibles muchos ejemplos de su utilización.

OpenFrameworks Se trata de un "toolkit"diseñado en C++ que corre en los sistemas operativosmas conocidos. Este toolkit fue pensado para desarrollar fácilmente aplicaciones que permitan alos usuarios interactuar con un ordenador a través de periféricos ya sean estos los tradicionales oalgunos experimentales creados por la propia comunidad de desarrolladores [24] . En este proyectose utilizó para desarrollar la interfaz con la cámara web así como también la interfaz con el micro-controlador a través del cual se controla el motor paso a paso.

12

Page 27: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 3

Módulo de captura

3.1. Introducción

El módulo de captura del proyecto está compuesto por tres grandes bloques:

Dispositivo formado por: Motor, soportes e iluminación.

Electrónica asociada.

Cámara.

Para el diseño del módulo de captura se tuvo en cuenta el tipo de análisis que se llevará acabo. Con el objetivo de poder repetir el análisis en una misma pieza a lo largo del procesode maduración, dicho análisis debe ser no destructivo. Por esta razón fue necesario diseñar unmecanismo de soporte que no comprometa la integridad de la pieza a analizar. Este mecanismodebe permitir que la pieza rote 360o entorno al su eje principal para poder obtener imágenes de latotalidad de su superficie.

Teniendo en cuenta que se pretende analizar los tomates a lo largo de su proceso de maduraciónresulta fundamental que el sistema proporcione condiciones lumínicas adecuadas y constantes paraasegurar que las capturas sean siempre en las mismas condiciones. Para lograr esto se diseñó unrecinto que independiza el sistema de las condiciones lumínicas del ambiente. A su vez se buscouna fuente de luz y una ubicación de la misma tal que se eviten: reflejos sobre la superficie de lapieza que saturen el sensor de la cámara y sombras que resulten en detecciones no deseadas.

También forma parte de este módulo el mecanismo de sujeción y posicionamiento de la cámararespecto a la pieza. Este mecanismo debe permitir regular en distancia y altura la posición de lacámara respecto a la pieza.

3.2. Descripción general del sistema

A continuación se describirán los componentes del sistema deseado y las distintas alternativasque se consideraron a la hora de elegir los elementos que componen el módulo de captura. Luego

13

Page 28: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

describimos un primer prototipo implementado y por ultimo se detalla el modelo final que seutilizó para este proyecto.

3.2.1. Configuraciones

Con el objetivo de capturar imágenes de la totalidad de la superficie de la pieza, es posibleutilizar distintas configuraciones. La distinción fundamental entre las mismas es la siguiente:

Pieza Fija.

Pieza móvil.

Pieza Fija Dentro de este grupo manejamos tres alternativas:

Multi-cámara.

Cámara con espejos.

Cámara rotando en torno a la pieza.

Multi-cámara Esta configuración consiste en colocar dos o más cámaras fijas de formaconveniente, permitiendo capturar imágenes de toda la pieza a estudiar, como muestra la figura3.1 .

La ventaja de este diseño es que se evita el uso de un motor y de toda la electrónica de controlnecesaria para generar los movimientos de la pieza. Las desventajas de esta configuración son: lanecesidad adquirir varias cámaras, el tiempo que requieren los ajustes previos de cada una de ellasy la necesidad de conocer la posición relativa a la pieza de cada cámara en forma precisa parapoder lograr medidas válidas.

Figura 3.1: Esquema Multi-cámara

14

Page 29: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Cámara con espejos Esta configuración cosiste en utilizar una cámara fija y múltiplesespejos colocados de tal forma que es posible observar las otras caras de las pieza, como muestrala figura 3.2

La ventaja de este diseño es su bajo costo (al menos inferior al costo de la configuración multi-cámara). Entre las desventajas están, la dificultad para ubicar las fuentes de luz y la necesidad decolocar los espejos correctamente en cada caso.

Figura 3.2: Cámara fija con espejos

Cámara rotando en torno al objetivo En este diseño existe un mecanismo que permiterotar la cámara alrededor del objeto y capturar imágenes en los 360◦ de la pieza, como muestra lafigura 3.3 . Este mecanismo estaría formado por un brazo que sostiene la cámara y mediante unmotor rotaría entorno a la pieza.

Esta configuración tiene la ventaja de utilizar una única cámara, sin embargo su construcciónresultaría compleja ya que involucra muchas piezas móviles difíciles de fabricar y mantener.

Figura 3.3: Cámara rotando entorno a la pieza

Pieza Móvil Esta configuración se basa en mantener la cámara fija y rotar la pieza utilizandoun motor. De este modo se logra exponer a la cámara toda la superficie de la pieza.

15

Page 30: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Una de las ventajas de esta configuración es su costo dado que se utiliza una sola cámara y sepueden utilizar motores pequeños disponibles en plaza. En este caso la iluminación es sencilladado que no aparecen otros objetos en la escena.

Esta configuración introduce una dificultad que tiene que ver con el soporte de necesario paratrasmitir el movimiento a la pieza. Dicho soporte debe asegurar que la pieza no deslice y ser lomas imperceptible posible para la cámara.

Esta fue la configuración seleccionada para el proyecto.

3.2.2. Motor

Para la rotación de la pieza es necesario la utilización de un motor. Dentro de las posibilidadesevaluadas al momento de seleccionar un motor, se identifican dos tipos:

Servomotores Un servomotor es un dispositivo capaz de ubicar su rotor dentro de un rangode rotación determinado y mantenerlo en esa posición. Los servos que se consideraron son los quese utilizan habitualmente para modelismo y están formados por un motor, una caja reductora y uncircuito de control. Este tipo de motores cuenta con tres cables: uno para la alimentación, otro paraconexión a tierra y otro para la señal de control. El motor de corriente continua es el elemento que

Figura 3.4: Servomotores

mueve el rotor del servo a través de la caja reductora.

El juego de engranajes convierte la velocidad de giro del motor en torque.

El circuito de control recibe una señal PWM de 50Hz y en función del duty cycle controla elmotor de continua para lograr la posición requerida. El sistema utiliza un potenciómetro solidarioal rotor para evaluar permanentemente la posición en que se encuentra el mismo. Para impedir queeste potenciómetro sea forzado mas allá de su limite mecánico este tipo de servo motor cuenta conun tope que reduce el rango de movimiento a 180o.

16

Page 31: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Dado que en este proyecto se requiere que el rango de rotación sea de 360o se modificó el servo-motor para conseguirlo. La modificación consistió en abrir el lazo de retroalimentación del sistemadesacoplando mecánicamente el potenciómetro del rotor. Luego de relaizar esto el rotor puedegirar permanentemente y la lectura del potenciómetro no variará, por lo tanto no provocará ladetención del motor de corriente continua en ningún momento. De esta forma se logro un motorcontrolado por modulación por ancho de pulso capaz de rotar 360o. Para controlar la posición bastacon inyectar una señal de 50 Hz con duty cycle superior a 1,5 ms para obtener desplazamientos ensentido horario e inferior a 1,5 ms para el caso contrario.

Motores paso a paso El motor paso a paso es un dispositivo electromecánico capaz deconvertir impulsos eléctricos en desplazamientos angulares discretos, es decir que es capaz deavanzar una determinado ángulo(paso) en función de sus entradas. Este tipo de motores presentala ventaja de tener una alta precisión en cuanto al posicionamiento. Su principal característicay fundamental para nuestro proyecto es el hecho de ser capaces de avanzar un paso a la vez.Dependiendo de su construcción pueden lograrse pasos muy pequeños habitualmente en el entornode un grado. A nivel eléctrico existen dos tipos de motores paso a paso, bipolares y unipolares ,para este proyecto solo se hicieron pruebas con los unipolares.

Bipolares

Unipolares

Para controlar los motores bipolares se requiere el cambio de la dirección del flujo de corrientea través de las bobinas en una secuencia apropiada. El circuito de control más utilizado para estetipo de motores es el puente H (H-Bridge).

Los motores unipolares se caracterizan por ser más sencillos de controlar ya que basta conintercalar transistores BJT de propósito general entre las salidas del microcontrolador y losterminales del motor.

Dado que existen varios tipos de motores paso a paso se evaluó cual de todos era el más adecuadopara nuestro prototipo. El torque, la velocidad y la precisión (cantidad de pasos por vuelta), sonalgunas de las características principales que diferencian a los tipos de motores paso a paso. Ennuestro caso la velocidad no es un aspecto demasiado importante, en cambio sí nos interesa quelos pasos sean suficientemente pequeños como para poder rotar la pieza y capturar tantas imágenescomo los pasos del motor nos permita y que el torque sea tal que nos permita mover la pieza sindificultad.

Teniendo en cuenta que uno de los objetivos de este proyecto es utilizar tecnología de fácil acceso

se decidió reutilizar los motores que utilizan las antiguas disqueteras de 51

4. Estos son unipolares

de tipo imán permanente y cuentan con 5 o 6 cables de salida dependiendo de su conexionadointerno .

Para manejar motores paso a paso unipolares existen tres secuencias posibles: secuencianormal, del tipo wave drive y de tipo medio paso.

La secuencia normal es la más usada, en la misma siempre hay dos bobinas consecutivasenergizadas. De esta forma el motor avanza un paso por vez y se obtiene un alto torque de paso y

17

Page 32: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Figura 3.5: Motor Paso a Paso

de retención.

En la secuencia del tipo wave drive se activa solo una bobina por vez. Esto provoca un movimientomás suave dado que al estar solo una bobina activada el torque de paso y de retención es menor.

En la secuencia de tipo medio paso se excitan dos bobinas consecutivas y luego solo una de ellas.De esta forma se logra un avance igual a la mitad del paso real.

3.2.3. Iluminación

La iluminación es un aspecto fundamental en un sistema de análisis de imágenes. Unailuminación adecuada permite que en las imágenes se puedan destacar las áreas de interés asícomo también facilita el proceso de determinación mediante el cual se separa la pieza del fondo.

Unos de los aspectos a tener en cuenta a la hora de seleccionar la fuente de luz y su ubicaciónes las características del objeto a iluminar. La capacidad reflectiva de su superficie es un aspectodeterminante ya que puede provocar que la luz reflejada sature el sensor de la cámara. La elecciónde la temperatura del color de la luz debe ser adecuada para permitir que en las imágenes se puedadiferenciar un nivel de detalle aceptable. Esto se logra utilizando una luz cuya temperatura de colordifiera sensiblemente de la temperatura de color promedio de la superficie que se está iluminando.

En este proyecto no se llevaron a cabo medidas precisas de temperatura de color ni de luminosidad,sino que se utilizo un criterio perceptual para seleccionar la fuente de luz y su ubicación optima.Se tomaron como referencia trabajos anteriores realizados en este campo.

Fuentes Lumínicas

Se consideraron tres alternativas como fuentes de iluminación.

Fluorescente: La fuente de luz fluorescente emite luz visible cuando los compuestosquímicos que están en su interior reciben radiación ultra-violeta. Este tipo de lámpara se

18

Page 33: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

destaca frente a otras por su eficiencia energética. El rendimiento luminoso (relación entreflujo luminoso emitido y potencia consumida) de estas lámparas puede estimarse entre 50/90lúmenes por watt. Su temperatura de color está comprendida entre los 3000oK y 6500oK.

Incandescente: Las lámparas incandescentes (tradicionales bombillas) cuentan con unfilamento de wolframio que al calentarse por una corriente eléctrica emite luz visible. Surendimiento lumínico es inferior a las anteriores, por lo general entre 12 y 18 lúmenespor watt. La temperatura de color de estas lámparas esta situado en el rango que va desde2600oK a 3500ok

Halógenas: En forma similar a las incandescentes la lámpara halógena cuenta con unfilamento de wolframio dentro de una cobertura de cristal de cuarzo con gas halogeno en suinterior. Su rendimiento lumínico es un poco mejor que la incandescente ya que esta situadoentre 18 y 22 watt. La temperatura de color de estas esta situada entre 2900oK y 3200oK.

De estas tres opciones luego de las pruebas realizadas se opto por la iluminación mediantelámparas fluorescentes.

3.2.4. Interfaz con cámara

Cualquiera de las configuraciones antes mencionadas requiere que de una aplicación capaz desincronizar la adquisición de imágenes y el control de la parte mecánica del dispositivo. Habiendoya definido el lenguaje de programación (C++) comenzamos a buscar librerías que permitandesarrollar interfaces con cámaras web. Durante esta está búsqueda encontramos que OpneCVprovee 2 librerías que permiten llevar a cabo esto Cvcam y Highgui. Para probar estas librerías sedesarrollo una interfaz con cada una de ellas y se llegó a las siguientes conclusiones.

Cvcam: La documentación no es buena y si bien logramos desarrollar con la misma uncódigo que permite visualizar las imágenes provenientes de la cámara, las opciones paramanipular los funciones de la cámara no están disponibles a través de esta librería.

Highgui: Es sencilla de utilizar, la documentación es buena y las opciones para manipularlos parámetros de la cámara son las mismas que las que presenta Cvcam.

Previendo la necesidad de tener que desarrollar una interfaz a medida que permita acceder apropiedades especificas de la cámara se decidió probar con DirectShow. se trata de un frameworkmulti-media desarrollado por Microsoft que permite llevar a cabo diversas operaciones conarchivos multi-media y streams.

Al investigarla nos dimos cuenta que era una alternativa viable pero consumiría mas tiempo delque planeamos dedicarle a esta etapa del proyecto.

Otra alternativa de comunicación con la cámara, es el toolkit para C++ llamado OpenFrameworks(www.openframeworks.cc). En forma similar a las librerías tradicionales de C++, el objetivo deesta herramienta es simplificar el desarrollo de aplicaciones en dicho lenguaje mediante clases ymétodos creados específicamente para ciertas tareas. Es una herramienta de código abierto queesta aceptablemente documentada y cuenta con varios foros activos que son una interesante basede conocimiento para consultar.

19

Page 34: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Openframeworks cuenta con clases y métodos específicos para la comunicación con cámaras.Se desarrolló una aplicación de prueba y vimos que resulta sumamente adecuada ya que sin unacantidad excesiva de código permite manipular por software (desde C++) varias propiedades de lacámara.

Como ventaja adicional de este toolkit se encontró que el mismo provee funciones especificas quepermiten desarrollar interfeces con los puertos seriales del pc. Como se explicará mas adelanteesto es de suma utilidad para resolver la comunicación con el motor.

3.2.5. Cámara

Para la elección de la cámara es necesario tener en cuenta las siguientes características que sedescriben a continuación.

Color o monocromática: Entre los aspectos a tener en cuenta a la hora de decidir entre unacámara color o monocromática están, el costo, tipo de análisis a realizar y requerimientos detiempo de procesamiento. Respecto al costo, las cámaras color por lo general son mas caras que lasmonocromáticas por lo que si el tipo de procesamiento permite utilizar monocromáticas convienehacerlo.

En procesos de tiempo real la velocidad de cálculo es de suma importancia, y dado que lacantidad de información que tiene una imagen color es superior a la que tiene una versiónmonocromática de la misma imagen, en muchas aplicaciones resulta conveniente trabajar conimágenes monocromáticas para optimizar los tiempos de procesamiento.

Ciertas aplicaciones de análisis están basadas en el reconocimiento de formas, sin tomar en cuentala información de color de los objetos. Dentro de la industria alimentaria, en lo que a control decalidad se refiere, la información de color es sumamente importante para la toma de decisiones.

Resolución: La resolución de una cámara se manifiesta en el nivel de detalle presente en lasimágenes que produce. El aumento en la resolución de la cámara es proporcional al aumento delcosto de la misma.

Sensor: Los sensores de imagen pueden ser CCD (charge coupled device) o CMOS(complementary metal oxide semiconductor), este ultimo suele ser el más común en cámaras debajo costo, aunque esto no signifique necesariamente que cámaras con sensor CCD sean mejoresque las que tienen sensor CMOS.

3.3. Descripción del primer prototipo implementado

En esta etapa del proyecto se hicieron pruebas con las diferentes alternativas anteriormentedescritas y se llegó a un primer prototipo que se describirá a continuación.

20

Page 35: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Se decidió trabajar con la configuración de pieza móvil. Como elemento motor se realizaron lasprimeras pruebas con un servo de modelismo modificado de acuerdo a lo descrito anteriormente.La rotación del servo debía estar sincronizada con la adquisición de imágenes. Para lograr estose decidió desarrollar un aplicación en C++ capaz de adquirir imágenes a través de la cámara,almacenarlas y en forma coordinada controlar el giro del servo.

De las alternativas analizadas Openframemworks resultó la mas adecuada por las siguientesrazones:

Cuenta con métodos para desplegar en pantalla las imágenes capturadas a través de lacámara.

Cuenta con métodos que permiten almacenar imágenes utilizando los formatos mascomunes.

Es posible establecer comunicaciones con periféricos a través de puertos seriales en formasencilla

Este ultimo punto es de vital importancia para resolver la comunicación entre la aplicación y elservo-motor. Para controlar el servo es necesario generar una señal modulada por ancho de pulso(PWM) y la misma debe ser controlada por la aplicación. Es por esto que se decidió incorporar almódulo de captura un microcontrolador. El microcontrolador debe contar con una interfaz serialpara interactuar con la aplicación y a su vez debe ser capaz de generar una señal PWM.

Al momento de definir el microcontrolador que utilizaríamos se decidió probar con un sistemallamado Arduino (www.arduino.cc). Este consiste en una placa con un microcontrolador de lamarca ATMEL (junto con la electrónica necesaria para su funcionamiento) y un lenguaje deprogramación basado en C/C++.

La función del microcontrolador en este proyecto es sumamente concreta y puede ser llevadaa cabo por la mayoría de los disponibles en plaza, pero Arduino presenta algunas ventajas quedecidimos aprovechar:

Lenguaje de programación simple e intuitivo

Pines de entrada/salida disponibles en la placa (analógicos y digitales, incluyendo salidasPWM)

Múltiples librerías propias y contribuidas entre las cuales podemos destacar: Librería paracomunicación serial, librería para control de motores paso a paso y librerías para control deservo motores.

El código se sube al microcontrolador en forma serial utilizando un puerto USBde un computador, por lo tanto no se necesita hardware adicional para actualizar elmicrocontrolador (y tampoco es necesario retirarlo de su ubicación en el sistema cada vezque se lo quiere cargar con un nuevo software).

Incorpora un circuito integrado (FTDI) que convierte USB a TTL.

21

Page 36: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Otra razón importante para trabajar con este sistema es que estamos familiarizados con el mismoy contamos con uno a nuestra disposición.

Para probar la interacción entre la aplicación de captura y el servo se creó una aplicación paraArduino que recibía caracteres por el puerto serial y generaba una señal PWM tal que provocabaun desplazamiento angular en el servo.

La forma de lograr pequeños pasos del rotor es mantener la señal PWM durante cierta cantidad deciclos. Si se mantiene indefinidamente el servo modificado no deja de girar. Por lo tanto son doslos parámetros de la señal PWM que determinan el ángulo que gira el rotor en cada paso

1. El ancho de pulso (cuanto mayor o menor que 1,5 ms es el duty cycle)

2. El tiempo que se aplica esta señal (cantidad de ciclos que se inyectan)

Mediante combinaciones de estos dos parámetros de la señal es posible lograr diferentesmagnitudes y velocidades de avance.

Con el objetivo de evaluar la precisión del servo se incorporó una aguja al rotor y se dispuso unsemicírculo debajo del mismo. Luego se comenzaron a probar diferentes combinaciones de anchode pulso y duración de señal (cantidad de períodos). Pudimos comprobar que se pueden logrardesplazamientos de aproximadamente 3o como mínimo. Estos desplazamientos son aceptables,pero debido a que durante un giro completo algunos de los desplazamientos son levente mayoresque otros, no es posible dividir exactamente un giro de 360o en una cantidad de pasos fija. Porejemplo, si los pasos son de 3o, en 120 pasos debería completarse un giro completo. Realizamosesta prueba varias veces y nunca se completó el giro en 120 sino que se completó en 118, 123,y 125 pasos. También se experimentaron ciertas dificultades para lograr que el servo mantenga laposición deseada ya que existían oscilaciones del rotor a pesar de estar recibiendo un pulso quedebería mantenerlo estático. A pesar de no ser un motor ideal el servo nos permitió avanzar conlas pruebas sabiendo que esto se debería mejorar.

Figura 3.6: Pruebas con Servomotor

Una vez implementado el control del servo desde la aplicación se procedió a definir como setrasmitiría el movimiento del rotor a la pieza. Se decidió hacer las primeras pruebas utilizando

22

Page 37: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

una base plana sobre la cual pueda apoyarse la pieza. Luego de realizar pruebas de esta maneranos dimos cuenta que se estaba descuidando un aspecto importante que tiene que ver con el eje derotación del tomate. Debido a la forma irregular del tomate no es posible asegurar que al apoyarlosobre una base plana su eje coincida con el eje de rotación. Es importante acercarse tanto comosea posible a esa situación ya que de lo contrario se introduce un error importante al proyectar susuperficie. Esto será detallado en el módulo de procesamiento.

Figura 3.7: Corrimiento del eje del tomate respecto al de rotación por la utilización de una base plana

En la figura 3.7 se puede ver del lado izquierdo la situación deseada y del lado derecho elresultado de utilizar este sistema de apoyo.

Con el objetivo de obtener la iluminación adecuada e independizar de la luz ambiente los ensayos,se construyo un recinto dentro del cual se ubica el servo-motor, la cámara y las fuentes de luz. Enprimera instancia se decidió cubrir el lado interior de las paredes del recinto con material opaco yde color negro, se esperaba que este material absorbiera parte de la luz emitida por las fuentes yque evite sombras que pudieran dificultar la segmentación.

Se pudo comprobar que el fondo negro no era conveniente por dos razones principales:

Para lograr que la pieza reciba suficiente cantidad de luz en esas condiciones era necesarioubicar las fuentes de luz muy cerca de la pieza y esto provocaba reflejos en la superficie dela pieza suficientemente intensos como para saturar el sensor de la cámara.

El fondo negro y opaco dificultaba el proceso de segmentación que es necesario aplicarle alas imágenes.

De las pruebas realizadas utilizando este prototipo preliminar pudimos extraer las siguientesconclusiones:

El servo no resulta el elemento mas adecuado para rotar la pieza debido a la irregularidaden los pasos que se pueden lograr con el mismo.

El vínculo entre el elemento motor y la pieza debe permitir aproximar el eje de la pieza aleje de rotación.

23

Page 38: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Es necesario buscar una forma de garantizar que durante la rotación la pieza no deslice. Laconsecuencia del deslizamiento es que mientras el motor rota 360o, la pieza no completa elgiro.

Es necesario crear un recinto que sea capaz de reflejar la luz en forma conveniente. El fondode este recinto debe ser de un color que facilite la segmentación.

3.4. Prototipo Final

A partir de las debilidades detectadas en el prototipo preliminar se procedió a construir unnuevo dispositivo. Esta versión del dispositivo fue la que se utilizó para el desarrollo del resto delproyecto. En esta sección se detallarán los componentes que forman este prototipo.

3.4.1. Estructura y soportes

Durante el diseño del prototipo preliminar se detectó la necesidad de contar con una estructurasuficientemente robusta en la cual puedan instarse los mecanismos de rotación de la pieza ysujeción de la cámara y también las fuentes de luz. Se optó por utilizar dos marcos rectangularesconfeccionados en madera unidos en una de sus aristas manteniendo un ángulo de 90o entre ellos.

Al marco vertical se incorporo el motor y los elementos de sujeción de la pieza como muestrala figura 3.8

Figura 3.8: Marco vertical y elementos de sujeción

El diseño del elemento de sujeción inferior tuvo en cuenta los aspectos observados durante laspruebas con el prototipo preliminar. Durante las mismas pudimos observar que si el elemento desujeción era plano resultaba difícil alinear el eje de la pieza con el eje de rotación. Se decidió por lotanto utilizar un apoyo cónico que permita que la parte inferior del tomate se ubique dentro de él.

24

Page 39: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

De esta forma se logra una superficie de contacto mayor entre el soporte y el tomate favoreciendola trasmisión del torque del motor. A su vez el diseño tuvo en cuenta la necesidad de conservar laintegridad de la pieza a analizar por lo que se trabajó con materiales como ser goma y plásticosblandos.

Como se mencionó al hablar del prototipo preliminar es necesario garantizar que la pieza nodeslice durante la rotación. La forma de abordar este problema fue incrementando el rozamientoentre el elemento de sujeción inferior y el tomate. Para lograr esto se procuro que el materialdel cual esta esta compuesto el elemento de sujeción inferior sea lo mas rugoso posible yadicionalmente se decidió incorporar un elemento que ejerza presión sobre la parte superior deltomate. A su vez este soporte superior colaborara con el objetivo de alinear el eje del tomate conel eje de rotación.

Como se muestra en la figura 3.9 el soporte superior está formado por:

Eje vertical solidario al marco.

Tuerca para regulación en altura.

Resorte.

Tubo superior concéntrico

Rodamiento.

Tubo inferior.

Figura 3.9: Soporte superior

Este soporte se aproxima a la pieza ajustando la tuerca del eje vertical. Una vez que el tuboinferior toma contacto con el tomate el resorte ejercerá la presión buscada para incrementar elrozamiento y de esta forma evitar el deslizamiento. La función del rodamiento es permitir que eltubo inferior acompañe en la rotación al tomate sin representar una carga adicional para el motor.

Dependiendo de la forma del tomate, su volumen y su peso tendrá sentido o no utilizar este soporte.

25

Page 40: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Para posicionar la cámara en forma adecuada frente a la pieza que se esta analizando fue necesarioincorporar una plataforma regulable en altura y proximidad. Esta plataforma se se desplaza sobreel marco horizontal que se mencionó anteriormente. La regulación en altura en este prototipo selogró utilizando cuatro varillas roscadas como muestra la figura 3.10

(a) Vista general (b) Vista frontal

Figura 3.10: Esquema de soporte de cámara y marco horizontal y vertical

3.4.2. Motor

Teniendo en cuenta las limitaciones del servo-motor detectadas durante las pruebas realizadascon el prototipo preliminar decidimos sustituirlo por un motor paso a paso. Se decidió trabajar

con un motor de tipo unipolar extraído de una disquetera de 51

4pulgadas. Este motor tiene un

paso de 1, 8o, lo que determina que es posible subdibidir un giro completo en 200 pasos (360o

1, 8o ).

Obtener 200 capturas de las superficie de la pieza es suficiente como para no tener que utilizaruna secuencia de energizado de los bobinados del motor que logre medio paso. Por esta razónla secuencia de energizado que se utilizó es la denominada wave drive, en la cual se energiza unbobinado a la vez como muestra la figura 3.11

El energizado de los bobinados se logra mediante cuatro señales de control que son inyectadasen los mismos. La secuencia de energizado que se utilizó determina que en un instante determinadosolo una de estas señales esté en nivel alto mientras que las tres restantes están en nivel bajo.

La intensidad de corriente necesaria para energizar los bobinados del motor es mayor que la quepude suministrar la salida digital de un microcontrolador estándar. Por esta razón es necesariointercalar entre los bobinados y el microcontorlador una etapa de potencia. La misma serácontrolada por las salidas digitales del microcontrolador. Esta etapa fue implementada utilizandoun circuito integrado ULN2003A que contiene un arreglo de transistores del tipo Darlington, cuyodiagrama lógico se muestra en la figura 3.12

3.4.3. Controlador del motor

El microcontrolador Arduino que se venía utilizando para generar la señal PWM quecontrolaba el servo, también cuenta con salidas digitales. Por esta razón también es adecuadoutilizarlo para generar las señales de control que se utilizan en el caso del motor paso a paso.

Para generar las señales de control se desarrolló una aplicación para el microcontrolador. Esta

26

Page 41: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Figura 3.11: Tabla de excitación de las Bobinas

Figura 3.12: Diagrama lógico del ULN2003A

aplicación recibe del PC a través de su puerto serial un caracter ASCII indicando la cantidad depasos que debe dar y ejecuta una rutina que tiene como consecuencia el avance de la cantidadde pasos solicitados. Una vez alcanzada la posición de destino esta aplicación enviará a travésdel puerto serial un caracter indicando que ha finalizado la tarea. Luego, la aplicación queda a laespera de una nueva solicitud de avance.

Para que la rutina que genera la señales de control pueda definir cual es el próximo bobinadoa energizar en función de la cantidad de pasos que tiene que dar, es necesario que la mismaconozca cual fue el ultimo bobinado energizado. Para esto es necesario forzar un estado inicialestableciendo una combinación predefinida en las salidas digitales.

27

Page 42: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

3.4.4. Iluminación

Teniendo en cuenta que el resultado obtenido con el recinto utilizado en el prototipo preliminarno fue el deseado se investigó acerca de materiales utilizados en estudios de fotografía, donde selogra una iluminación artificial que permite obtener fotos de gran calidad de objetos puntuales.Se encontró que era muy popular el uso de las Lightboxes (cajas de luz). Mediante el uso de estascajas se logra iluminar un objeto (ubicado dentro de ella) en forma uniforme sin provocar sombras.El por el cual se logra este tipo de iluminación es que los rayos emitidos por la fuentes de luz sonreflejados en las paredes de la caja antes de incidir en el objeto. Si además se intercalan difusoresentre la fuentes de luz y el objeto se logra eliminar los reflejos que saturan el sensor de la cámara.

Uno de los materiales mas populares para la construcción de este tipo de cajas es el Foam board.El mismo está compuesto por dos hojas de papel blanco de alta calidad con un centro de espumade poliestireno de 5mm de espesor que lo hace suficientemente rígido como para construir con eluna caja auto-portante. Las dimensiones de la caja que se construyo (figura 3.13) son 0.5m x 0.5mx 0.5m. Este volumen es suficiente como para ubicar dentro del mismo los soportes y las fuentesde luz.

Figura 3.13: Caja de luz construida con foamboard

Una vez construida la caja de luz se comenzaron a realizar pruebas con diferentes fuentes.Para seleccionar estas fuentes se tomo como referencia la temperatura del color utilizada por losfotógrafos en los estudios. Se averiguó que para las fotografías tomadas utilizando cajas de luzresulta adecuado utilizar fuentes cuya temperatura de color se situé entre los 5000ok y 5500oK.Por esta razón se adquirieron tres fuentes de luz diferentes pero con temperatura de color ubicadaen ese rango:

Halógenas.

Incandescentes.

28

Page 43: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Fluorescentes compacta.

Se tomaron secuencias de imágenes utilizando los 3 tipos de fuentes de luz y se procedió acompararlas. El objetivo de la comparación fue definir cual era la fuente mas adecuada tomandocomo criterio el nivel de detalle, contraste y apariencia general que se podía lograr con cada unade ellas. Como muestra la figura 3.14 de acuerdo a los criterios mencionados el mejor resultadose logra mediante la fuente de luz fluorescente compacta. La lámpara utilizada tiene las siguientesespecificaciones:

Rango de potencia: 25 Watts

Emisión luminosa: 1475 lm

Vida media: 8000hs

Temp. Color (◦K): 5000

Luz: fría

(a) Fluorescentes Compacta (b) Halogenas

Figura 3.14: Pruebas con los tres tipos de fuentes de luz

Una vez que definida la fuente de luz se comenzó a buscar la ubicación que permite minimizarla aparición de sombras en el fondo de la caja de luz y la reflexión de rayos que saturan el sensorde la cámara. Se comprobó que debían utilizarse al menos dos fuentes de luz iguales para podereliminar las sombra que se forman sobre el fondo de la caja a los lados del objeto. Tambiénse comprobó que resultaba adecuado ubicar las fuentes de luz detrás de la cámara en una zonacercana a las paredes laterales. Finalmente se logró eliminar los reflejos que saturan el sensorintercalando difusores entre la fuente de luz y el objeto. Como difusores se probaron distintosacetatos esmerilados hasta que se identificó el mas adecuado. En la figura 3.16 se puede ver unesquema de la configuración final de los difusores y las fuentes de luz.

3.4.5. Cámara Utilizada

La cámara que se utilizó es una Logitech QuickCam E2500. Para su elección se tuvo en cuentauno de los objetivos de este proyecto que es utilizar tecnología de bajo costo y disponible en plaza.Se adquirió esta cámara ya que su costo estaba dentro de lo previsto y sus prestaciones eran lasque se pretendían. Las prestaciones de la cámara son las siguientes:

Sensor: CMOS 1.3 Mpxs.

29

Page 44: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Figura 3.15: Cámara

Tamaño de imágenes: 640 x 480 o 320 x 240

Enfoque:Manual

Conexión: USB

Propiedades disponibles: Brillo, contraste, saturación, nitidez, balance de blanco,componente de luz de fondo, exposición, ganancia, control de parpadeo.

30

Page 45: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

(a) Vista de los soportes (b) Vista Frontal

(c) Vista por detrás

Figura 3.16: Prototipo final construido

3.5. Aplicación para el módulo de Captura

El objetivo de la aplicación del módulo de captura es coordinar la adquisición de imágenes yla rotación del motor de forma tal que se logré una secuencia de imágenes de toda la superficie dela pieza que se esta analizando. Adicionalmente esta aplicación debe ser capaz de permitir que elusuario defina cual será la posición del eje de la pieza en cada análisis.

La aplicación despliega en pantalla en tiempo real la información adquirida por la cámara. Paragenerar cada imagen de la secuencia se captura en un instante determinado la información quese esta desplegando y se genera a partir de ella un archivo en formato bmp 1 utilizando unaprofundidad de color de 24 bits por pixel. La razón por la cual se utiliza el formato bmp es que elmismo no realiza compresión y por lo tanto no hay pérdida de información entre la captura y elalmacenamiento.

La primer acción que debe llevar a cabo el usuario al utilizar la aplicación es ajustar en formamanual un eje vertical que deberá coincidir tanto como sea posible con el eje del tomate y eleje de rotación. Para esto la aplicación despliega en pantalla dicho eje y permite desplazarlo

1BMP ES UN FORMATO DESARROLLADO POR MICROSOFT E IBM QUE PERMITE ALMACENAR IMÁGENES

COMO MAPAS DE BITS, LA PROFUNDIDAD DE COLOR UTILIZADA PUEDE SER 1, 4, 8 , 16, 24 O 32 BITS POR

PIXEL

31

Page 46: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

horizontalmente utilizando el mouse. Una ves realizado esto la aplicación almacena la posicióndel eje en un archivo de texto dejándola disponible para el módulo de análisis del sistema. Duranteesta etapa es posible también realizar ajustes en las propiedades de la cámara mediante una ventanade diálogo que se despliega en pantalla. Esta etapa se pude ver en la figura 3.17. Es importante

Figura 3.17: Captura de pantalla del módulo de captura

que la aplicación sea capaz de capturar las imágenes en los instantes en los cuales la pieza estadetenida, de lo contrario las imágenes resultarían ’movidas’. Para esto la aplicación espera laconfirmación del microcontrolador que indica que el motor ha alcanzado la posición de destinopara realizar cada captura.

El software para el módulo de captura fue desarrollado en C++ utilizando el toolkitOpenFrameworks . Las aplicaciones desarrolladas utilizando este toolkit tienen una estructurapredefinida que consiste en tres rutinas principales: setup(), update() y draw(). Al ejecutar laaplicación se recorre una vez setup() y luego permanece en bucle recorriendo update() y draw()consecutivamente. Dentro del bucle update() se actualizan los valores de las variables que se estánutilizando y dentro de draw() se incluye el código destinado a visualizar en pantalla el efecto dela actualización de variables antes realizado. La rutina auxiliar que solicita al microcontroladorun nuevo paso del motor se llamará desde update(), permanecerá a la espera de la confirmaciónque indica que el motor alcanzó el destino, y no será hasta que esta llegue que se desplegará enpantalla una actualización tomada por la cámara y se proceda entonces a capturar. Se muestra acontinuación en la figura 3.18 un diagrama de bloques de lo descrito anteriormente.

La comunicación entre la aplicación y el micro controlador se da a través de un puerto USB.Cada vez que la aplicación requiere un nuevo desplazamiento del motor envía un caracter ASCIIque es interpretado por el microcontrolador y en función del mismo genera la secuencia deenergizado adecuada para efectuarlo. Una vez alcanzada la posición de destino el microcontroladorcomunica esta situación a la aplicación enviando otro carácter ASCII.

Una vez finalizado el proceso de adquisición queda disponible en una carpeta determinada lasecuencia de imágenes y un archivo de texto que almacena la posición del eje. El nombre con el quese almacenan las imágenes incluye el índice de dicha imagen en la secuencia (foto−XXX.bmp).Está carpeta contiene entonces todo el input requerido por el módulo de procesamiento.

32

Page 47: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

Figura 3.18: Diagrama de flujo de la aplicación de captura

33

Page 48: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 3. Módulo de captura

34

Page 49: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 4

Módulo de procesamiento

4.1. Descripción General

El módulo de procesamiento implementado para este proyecto tiene como entrada unasecuencia de imágenes adquiridas por el módulo de captura, y como salida una proyecciónbidimensional de la totalidad de la superficie de la pieza que se quiere analizar. La proyecciónque resulta del procesamiento de las imágenes de entrada es una imagen con características talesque permite que en ella se tomen medidas de superficie de zonas de interés específicas.

Objetivo del módulo de procesamiento

El módulo a desarrollar debía ser capaz de:

Extraer de la secuencia de imágenes información sobre la forma de la pieza

Extraer información de color de la superficie de la pieza

Generar una proyección bidimensional de la superficie de la pieza a partir de la informaciónde forma y color extraída anteriormente.

Permitir tomar medidas de área en zonas específicas de la proyección bidimensional.

4.2. Detección de Contornos

Es habitual que en las imágenes estén presentes dos elementos fundamentales:

Objetos de interés

Fondo de la escena

Resulta claro que una de las tareas básicas que debe llevar a cabo un sistema de visión arti-ficial es separar los objetos de interés del resto de la escena. Esta tarea, que muchas veces puedeser ejecutada en forma sencilla por una persona debido a su capacidad de reconocer los diferenteselementos presentes en una imagen, puede resultar relativamente compleja para un sistema de

35

Page 50: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

visión artificial. La razón principal es que el sistema de visión artificial debe ser programado poruna persona para identificar a partir de números (los valores de intensidad que definen la imagendigital) las regiones de la escena que corresponden a objetos de interés (y/o sus fronteras) y lasque corresponden al fondo.

El proceso mediante el cual se divide una imagen digital en múltiples conjuntos de pixeles esllamado segmentación, por lo tanto cuando procesamos una imagen con el objetivo de identificarun objeto de interés en la escena decimos que estamos segmentando la imagen.

Consideremos por ejemplo una escena simple compuesta por una esfera y un fondo continuo (porejemplo una pared de color uniforme y suficientemente distinto al de la esfera). Si tomamos unaimagen de esa escena y la segmentamos (aplicando en este caso segmentación basada en bordes),obtendremos una sucesión de puntos ubicados en la frontera entre lo que el algoritmo utilizadointerpreta como esfera y lo que interpreta como pared. Si la iluminación es adecuada, la curvadescrita por los puntos de la frontera se ajustará a la silueta de la esfera percibida desde la posi-ción en la cual se tomó la imagen. Si repetimos este procedimiento utilizando imágenes tomadasdesde distintos ángulos iremos adquiriendo información a cerca de toda la superficie del objeto, ysi la misma no presenta discontinuidades demasiado importantes (como hendiduras y/o salientespronunciadas) podemos incluso llegar a generar un modelo tridimensional del objeto en cuestión.Cabe destacar que para esto último resulta fundamental también conocer en forma precisa la ubi-cación de la cámara en un sistema de referencia solidario al objeto en el momento de tomar cadaimagen.

El fenómeno anteriormente descrito es el que se aprovechará en este proyecto para extraer lainformación de forma de los tomates.

Existen diversas técnicas de segmentación que permiten diferenciar los pixeles de una imagenque pertenecen a un objeto de interés de los que pertenecen al fondo. Si bien dependiendo de cadaaplicación algunas técnicas resultan más adecuadas que otras, siempre es deseable que la diferen-cia entre la intensidad de un píxel correspondiente al objeto de interés difiera razonablemente dela intensidad de un píxel correspondiente al fondo de la escena. Teniendo esto en cuenta, y dadoque en este proyecto el objeto a estudiar es un tomate (cuya superficie es habitualmente rojiza) seutilizó fondo blanco. Esta elección logra que las diferencias entre las intensidades de los pixelescorrespondientes al tomate y los pixeles correspondientes al fondo sean significativas, facilitandola segmentación.

Como se mencionó anteriormente, en este proyecto la información de forma del tomate se ex-trae a partir de la detección de la silueta que presenta la pieza en cada imagen de la secuencia y latécnica de procesamiento utilizada en este caso es la detección de contornos.

En OpenCV los contornos se representan mediante una clase específica llamada cvSequence enla cual cada elemento contenido en la misma codifica información a cerca de la ubicación delpróximo punto del contorno. Si bien la estructura cvSequence es relativamente compleja, puedeconsiderarse en este caso una secuencia de puntos. La estructura cvSequence, entre otras cosas,proporciona un dato sumamente importante que es la cantidad de puntos que forman el contorno.Es importante tener en cuenta que los contornos que se detectan están formados por una can-

36

Page 51: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

tidad variable de puntos en cada caso, por lo que conocer esta cantidad resulta fundamental almomento de procesar la información. OpenCV proporciona también varias funciones que per-miten acceder a los elementos contenidos en las secuencias. Un ejemplo de estas funciones esCV − GET − SEQ − ELEM , mediante la cual es posible extraer la información de un deter-minado punto (identificado en la secuencia mediante el índice) y almacenarla en una estructuracvPoint (estructura utilizada por la librería para representar un punto en un espacio de dos di-mensiones).

En lo que respecta a análisis de imágenes, un contorno es un conjunto de puntos que representauna curva en una imagen. Esto quiere decir que la detección de contornos no se reduce exclusiva-mente a la detección de siluetas sino que en principio un algoritmo de este tipo detectará tambiéncurvas que por ejemplo estén ubicadas sobre el objeto de interés (o en el fondo). Para lograr que ladetección de contornos tenga como resultado la detección de las siluetas del tomate es necesariopre-procesar las imágenes de la secuencia de capturas en forma adecuada antes de proceder con ladetección de contornos.

El pre-procesamiento que se realiza es el llamado Thresholding y tiene por objetivo rechazarciertos pixeles de la imagen y conservar otros. La imagen que se le pasa a la función Thresholdinges una versión monocromática de la que se desea analizar. Esta versión se genera a partir de laimagen original utilizando una función de OpenCV específica para esta tarea. Entre los parámet-ros requeridos por la función Thresholding están el valor umbral y el tipo de threshold que sedesea aplicar. El valor umbral determina que pixeles se rechazan y que pixeles se conservan. Eltipo determina que valor se le asigna a los pixeles rechazados y a los conservados. El tipo utiliza-do en este proyecto es ’Threshold Binary, Inverted’ y el mismo determina que los pixeles cuyovalor es superior al umbral serán igualados a 0 (negro) y los que tengan valor inferior al umbralserán igualados a 255 (blanco). Cabe destacar que de esta forma el resultado de aplicar la funciónThresholding es una imagen binaria.

(a) Imagen de entrada (b) Versión monocromática yregion izquierda descartada

(c)Resultado de Thresolding usandoThreshold Binary, Inverted

Figura 4.1: Procesamiento previo a la detección de contornos

En la figura 4.1 se presenta un ejemplo de la segmentación que se realiza en la imagen en laque se quiere detectar el contorno principal o silueta del tomate. La imagen binaria es la que se lepasa como parámetro a la rutina de detección de contornos. Esta rutina procesa la imagen y realizamodificaciones sobre la misma (las cuales se mostrarán mas adelante).

37

Page 52: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

La rutina de detección de contornos almacenará en una estructura cvSequence todos los contornosque encuentre en la imagen. Dado que se quiere detectar exclusivamente la silueta del tomate, debelograrse que la rutina de detección de contornos descarte cualquier otro contorno ’accidental’ quepueda aparecer. El procedimiento que se usó para lograr lo anterior está basado en la comparacióndel perímetro de los contornos detectados. En las condiciones en las que se toman las capturas, elcontorno de interés (silueta del tomate) tiene un perímetro mucho mayor que el de cualquier otroconjunto de pixels pertenecientes al fondo de la escena, por lo tanto, si se compara el perímetro decualquier contorno detectado con un valor adecuado (del orden del perímetro del contorno prin-cipal) es posible descartar pequeños contornos no deseados. Realizando pruebas se llegó a que sise toma como valor de referencia la mitad de la suma del ancho y el alto de la imagen se logradescartar los contornos no deseados y se detecta exclusivamente el correspondiente a la silueta.

En esta etapa, la interacción entre el usuario y el sistema ocurre a través de un track bar quepermite ajustar el valor umbral de la rutina de Thresholding. Es necesario permitir este ajuste yaque si bien las condiciones lumínicas y el color del fondo son constantes, el color de las piezasque se analizan no lo es, por lo que proporcionar un valor fijo de umbral no es una posibilidad.El valor de umbral se utiliza para el procesamiento de todas las imágenes de la secuencia, ya quese comprobó experimentalmente que las variaciones de color en las distintas zonas del tomate(que se van haciendo visibles a medida que se avanza en la secuencia de capturas) no suelen sertan significativas como para necesitar un ajuste independiente para cada una de ellas. De todosmodos es importante tener presente lo anterior como posible causa de error ante resultados visi-blemente equivocados como deformidades importantes en la proyección en dos dimensiones final.Para permitir que el usuario ajuste adecuadamente el valor del umbral, el módulo de procesamien-to despliega en tiempo real una vista previa del resultado de la detección de contornos aplicada a laprimer imagen de la secuencia. Observando este resultado, el usuario puede ver si debe aumentarel valor umbral (caso en el que el contorno detectado es mas chico que la silueta del tomate) o biendisminuirlo (caso en el que el contorno detectado excede los límites del tomate). Una vez ajustadoeste valor, el usuario dispara el procesamiento de todas las imágenes de la secuencia. La figura 4.2muestra ejemplos del proceso de ajuste del valor de umbral.

(a) Situación en la que debeaumentarse el valor de umbral

(b) Situación en la que debedisminuirse el valor de umbral

(c) Umbral correctamenteajustado

Figura 4.2: Proceso de ajuste del valor de umbral

Existen ciertas técnicas como por ejemplo la técnica de OTSU mediante la cual es posible es-timar un valor de umbral cercano al óptimo en forma automática. En este proyecto utilizamos estatécnica para la detección automática de zonas de interés de las piezas que se analizan. En el capí-tulo 5 se explican los detalles de esta técnica.

38

Page 53: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Una vez que se tiene la información del contorno principal guardada en la estructura cvSequence,se procede a recorrerla con el objetivo de extraer la información necesaria para generar las proyec-ciones bidimensionales:

4.2.1. Coordenada y máxima y coordenada y mínima

El tomate presenta una gran variedad de formas y en algunos casos este hecho puede hacerque el procesamiento de la información de contornos sea relativamente complejo. Durante eldesarrollo de este proyecto se experimentó con varias piezas diferentes y se pudo observar que enalgunos casos la forma determina que ciertas zonas, mas específicamente las cercanas a los polos,puedan no ser visibles en una imagen ’frontal’ (entendiéndose por frontal una captura tomadacon una cámara situada a la altura del ecuador de la pieza, como es el caso en este proyecto).Para comprender mejor la situación debemos definir ciertos términos y repasar el proceso deadquisición de la información de forma.

Utilizaremos la palabra huso para referirnos a una sección de la superficie del tomate que seextiende desde el polo inferior hasta el polo superior (también nos referiremos a estos poloscomo sur y norte respectivamente). Considerando lo anterior, para este proyecto la superficiedel tomate está formada entonces por una cierta cantidad de husos que queda determinada porla cantidad de imágenes que tiene la secuencia, y en cada imagen de la secuencia se exponeuno de estos husos en la zona central sobre el eje principal del tomate. Puede notarse que sitrabajamos con una secuencia de pocas imágenes, la superficie de cada huso será mayor que sitrabajamos con una secuencia de muchas imágenes. Para representar la superficie del tomate endos dimensiones debemos entonces adquirir información de forma y color de cada huso. Ahora,debido al método utilizado en este proyecto, la información de forma y la de color no se extraende la misma imagen sino que hay un desfasaje. La primer imagen de la secuencia expone a lacámara el primer huso, sin embargo, no es hasta la imagen en la cual la línea central de ese husose encuentra 90o rotada (en sentido anti horario) que podemos adquirir su información de formaa través de la detección de silueta. Esto determina que dependiendo de la forma del tomate quese esté analizando, podemos encontrarnos en una situación en la cual tengamos ciertos puntosde la silueta que no logremos ver en la foto frontal (de la cual extraeremos la información decolor). Para resolver esto se decidió truncar las siluetas detectadas utilizando los valores máximosy mínimos de las coordenadas y de los puntos que conforman cada contorno. La búsqueda de lacoordenada y máxima y mínima de cada contorno se realiza inmediatamente a continuación dela detección. Una vez encontrado el punto mas alto y el mas bajo del contorno se extraen todoslos puntos del contorno comprendidos entre estos dos generando una nueva representación de lainformación de forma que llamamos ’contorno visible’. Finalmente, utilizando un nuevo bucle serecorre el contorno visible recientemente generado y se almacenan las coordenadas x e y de cadapunto y un valor que indica la cantidad de puntos que forman el contorno en tres vectores. Enla figura 4.4 podemos ver el resultado de la detección de silueta y el procesamiento de los datosresultantes que descarta los puntos del contorno que no están comprendidos entre los puntos quetienen coordenada y máxima y mínima.

39

Page 54: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.3: Primer imagen de una secuencia. En la misma se representa el primer huso de la secuencia yal mismo tiempo las coordenadas y máxima y mínima del contorno que se está detectando en ese instante.Puede verse que dicho contorno no aporta información útil para calcular el huso 0

Figura 4.4: En verde: Contorno detectado. En Azul: Contorno procesado (puntos del contornocomprendidos entre yMin e yMax)

4.2.2. Radios máximos

Otro dato importante que se extrae en esta etapa del procesamiento es el que decidimos llamarradio máximo de cada contorno detectado. Para buscar este dato se compara la coordenada x decada punto perteneciente al contorno detectado. Una vez encontrado el punto del contorno concoordenada x mayor, se calcula la distancia entre el mismo y el eje principal y se guarda este datocomo el radio máximo asociado a dicho contorno. Si bien no se está trabajando con volúmenesregulares, para este proyecto resulta útil y claro usar el nombre de ciertos atributos de cuerposregulares. El radio máximo es un ejemplo de esto.

El radio máximo (mostrado en la figura 4.5), así como los puntos del eje y de la superficiecorrespondientes al radio máximo, son elementos sumamente importantes para el procesamientode la información de forma y color que se lleva a cabo en este módulo de la aplicación. Si bien almomento de detallar las proyecciones bidimensionales quedará claro el uso que se le da al radiomáximo, a continuación enumeramos algunas aplicaciones importantes que tiene este dato:

40

Page 55: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.5: Radio máximo y puntos en el eje y superficie de la primer captura de la secuencia de imágenes

Determinación de las dimensiones de la proyección en dos dimensiones: El ancho dela proyección bidimensional que se generará quedará determinado por una función quedepende del radio máximo de cada contorno. Este aspecto se tratará en detalle cuando seexpliquen las proyecciones bidimensionales que se implementaron en este proyecto.

Determinación del radio máximo promedio: Una de las proyecciones bidimensionalesimplementadas en este proyecto está formada por secciones rectangulares de las imágenesde la secuencia, y el ancho de estas secciones se determina calculando el promedio de losradios máximos de cada contorno detectado.

Definición del ecuador de la pieza: Por razones que se comentarán mas adelante fuenecesario definir una curva de referencia alrededor de la pieza que llamamos Ecuador. Lospuntos pertenecientes a esta curva son los puntos a partir de los cuales se comienza a realizarel procesamiento que genera la proyección bidimensional. El radio máximo de la primerimagen de la secuencia es el que determina la ubicación del ecuador.

4.3. Procesamiento de la información de contornos

En esta sección se detallará el procesamiento que tiene lugar luego de haber detectado loscontornos en la forma descrita en la sección anterior. El procesamiento que se describirá acontinuación tiene por objetivo preparar los datos para que puedan ser utilizados para la generaciónde proyecciones bidimensionales de la superficie del tomate.

4.3.1. Reordenamiento de la información

Como comentamos anteriormente, el método de adquisición de información utilizado en esteproyecto (detección de silueta) determina que la información de forma y de color de la piezadebe realizarse en imágenes diferentes para cada huso. Esto hace que sea necesario llevar a caboun reordenamiento de la información para que la misma pueda ser utilizada posteriormente. Lasrutinas de reordenamiento que se implementaron tienen como entrada vectores con la informaciónde los contornos almacenada en el orden que fue adquirida, y como salida vectores con la misma

41

Page 56: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

información pero ordenada de acuerdo a la numeración original de las capturas de la secuencia.Para aclarar lo anterior, nos referiremos a la figura 4.6 en la cual se ha planteado una situaciónsimplificada de la que enfrentamos en este proyecto. En la misma se muestra un esquema deldispositivo de captura durante la adquisición de una secuencia de imágenes, en este caso de unaesfera (visto desde arriba). En este caso asumiremos que la secuencia de imágenes está compuestapor cuatro capturas, y que la rotación que se realiza entre cada una de ellas es de 90o en sentido antihorario. Se han numerado cuatro secciones de la esfera, que son las que quedarán ubicadas frente ala cámara en cada una de las imágenes. En la primer imagen de la secuencia podemos apreciar quela zona que se ubica frente a la cámara es la número 3 y que el contorno que se detectará (teniendoen cuenta el método que se utiliza) es el contorno de la zona 0. Es ahí donde queda en evidenciaque no es posible extraer la información de forma y de color de una determinada zona a partir de lamisma imagen. Teniendo en cuenta el sentido de rotación (anti horario), puede notarse que la zona0 se ubicará frente a la cámara en la imagen número 3 (o sea, la última imagen de la secuencia) porlo tanto, no será hasta ese momento que dispondremos de toda la información que necesitamos deesa zona. Dado que en este proyecto la información de forma se almacena en vectores, es necesarioreorganizar los elementos de cada uno de ellos para que la dicha información se corresponda conlas secuencia de imágenes. El reordenamiento es llevado a cabo realizando un corrimiento de los

Figura 4.6: La información de contorno de una determinada zona de la pieza se adquiere en una capturaque no es aquella en la cual dicha zona se encuentra frente a la cámara. Esto hace que sea necesario reordenar la información

elementos del vector. Claramente el desplazamiento de cada elemento dentro del vector dependeráde la cantidad de imágenes de la secuencia (como consecuencia del paso del motor que rota lapieza). Volviendo a la situación planteada en la figura 4.6 podemos darnos cuenta que en ese caso,el reordenamiento necesario debería ser tal que cada uno de los elementos del vector que almacenala información de contornos, pase a ocupar el lugar inmediatamente anterior. Esto es: El elementoubicado en el lugar 3 debe pasar a ubicar el lugar 2, el elemento ubicado en el lugar 2 debe pasar aocupar el lugar 1, el elemento ubicado en el lugar 1 debe pasar a ocupar el lugar cero y finalmenteel elemento que ocupa el lugar cero, deberá pasar a ocupar el lugar 3.

Generar una proyección utilizando cuatro imágenes resulta poco adecuado si lo que se quierees poder medir superficies en dicha proyección. Es por esto que para este proyecto se trabajarácon un número mayor de imágenes. Por razones que se explicaron al momento de tratar el módulode captura, las secuencias de imágenes con las que trabajamos son de 40, 100 y 200 imágenes

42

Page 57: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

(siendo las secuencias de 200 imágenes las que demostraron ser mas adecuadas). Si trasladamos lasituación planteada en la figura 4.6 a una secuencia de 200 imágenes, claramente el corrimiento decada elemento del vector será mayor a un lugar. Concretamente, el corrimiento queda determinadopor la cantidad de pasos que debe dar el motor para rotar la pieza que se está analizando 270o.Con el objetivo de automatizar este proceso, independientemente de la cantidad de imágenes quecontenga una secuencia, se determina el corrimiento a partir de una constante que se utiliza entoda la aplicación que es la cantidad de imágenes de la secuencia. La rutina de reordenamientocalculará en función de esta constante cuantas imágenes transcurren cuando la pieza rota 270o yluego procederá a reordenar los elementos del vector como se explicó anteriormente.

4.3.2. Normalización de la información de contornos

Nos referimos al procesamiento que tiene lugar luego del reordenamiento de la informaciónde contornos como ’normalización de la información de contornos’ ya que el mismo tiene porobjetivo asegurar que luego de aplicado, la totalidad de la información de contornos almacenadacumplirá con ciertos requerimientos que garantizan la correcta interpretación de la misma porparte de la etapa siguiente.

Las tareas que se llevan a cabo durante la normalización de contornos son las siguientes:

Determinar un rango de coordenadas y que esté contenido en el rango de coordenadas y detodos los contornos detectados.

Para cada contorno detectado garantizar que todos los puntos pertenecientes al eje principaltienen un correspondiente (misma coordenada y) situado en la superficie de la pieza.

Para cada contorno detectado generar un vector que contiene la longitud de arco entre puntosconsecutivos de la superficie, y otro que contenga la longitud de arco acumulada desde elprimer punto del contorno.

En este capítulo se mencionó que la cantidad de puntos que componen los contornos es variable.El motivo por el cual ocurre esto es que el algoritmo de detección de contornos utiliza tantospuntos como necesita para definir adecuadamente la curva que detectó. Esto quiere decir que unacurva ’suave’ será representada con menos puntos que una curva mas compleja o pronunciada.Una alternativa para uniformizar este aspecto en la etapa de detección sería ajustar al contornoun polígono de cierta cantidad (predeterminada) de lados, pero el comportamiento de una rutinade este tipo no sería del todo predecible y se correría el riesgo de pasar por alto característicasimportantes de la superficie.

Para trabajar con la misma cantidad de puntos en todos los contornos minimizando la pérdidade información se optó por abordar el problema utilizando interpolación. En primer lugar se hallaun rango de coordenadas y que esté contenido en el rango de coordenadas de todos los contornosdetectados. Como se mencionó en la sección 4.2.1 se dispone de dos vectores que contienen lascoordenadas y máximas y mínimas de todos los contornos. Por lo tanto (teniendo en cuenta queel origen de coordenadas se ubica en la esquina superior izquierda de la imagen) hallando elmáximo del vector que contiene las coordenadas y mínimas y el mínimo del vector que contienelas coordenadas y máximas queda definido el rango que se quiere hallar.

43

Page 58: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.7: Interpolación para obtener un punto en la superficie del tomate para cada punto del eje principal.Se puede apreciar el rango de coordenadas y presente en todos los contornos (eje horizontal en este caso) yun punto interpolado entre dos puntos detectados

El procedimiento utilizado para interpolar consiste en comenzar a recorrer pixel por pixel el ejeprincipal desde el punto inferior (en la figura 4.7 sería el eje horizontal) . Para cada punto del ejese busca el índice del punto del contorno que tiene la misma coordenada y. Una vez encontrado,se averigua la coordenada x del mismo (en la figura 4.7 sería el eje vertical). Llegado el caso en elque encontramos un pixel del eje que no tiene un correspondiente en el contorno, se crea un puntoque tiene la misma coordenada x que el inmediatamente anterior. La experimentación permitiócomprobar que el procedimiento anteriormente descrito resulta adecuado ya que la distancia entredos puntos detectados es siempre pequeña (por lo que no es necesario interpolar con una recta).

Durante el proceso de interpolación también se eliminan puntos del contorno que tengancoordenada y igual o menor que la de un punto anterior. Esta es una situación poco habitualgracias a la forma del tomate, pero que en algunos casos puede darse como consecuencia de unmal ajuste del threshold por parte del usuario (ver figura 4.8)

Finalmente, en esta etapa se generan dos nuevos vectores que contienen: La distancia entre dospuntos consecutivos y la distancia acumulada desde el punto inferior del contorno hasta cadapunto del resto del contorno. Para obtener esta información se aprovecha un método de la yamencionada estructura cvSequence específicamente diseñado con este fin. Este método toma comoargumento dos puntos (extremos del arco cuya longitud se quiere determinar) y la secuencia encuestión (la que contiene los puntos del contorno que estamos procesando). Esta información esfundamental para poder generar las proyecciones bidimensionales, en las cuales profundizaremosa continuación.

44

Page 59: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.8: Ejemplo de una situación en la cual debido a un mal ajuste de threshold el contorno detectadopresenta mas de un punto con determinada coordenada y

4.4. Aspectos geométricos de las proyecciones bidimensionales

Uno de los objetivos principales de este proyecto es generar una proyección bidimensionalde la superficie de la pieza que se está analizando para poder tomar medidas de superficieen ciertas regiones de interés. En esta sección se profundizará en los aspectos geométricosde las proyecciones implementadas y se explicará como se genera cada una de ellas a partirde la información adquirida en las etapas anteriores (explicadas antes en este capítulo). Lasproyecciones que se tratarán son las siguientes:

Proyección de ancho constante

Proyección de ancho constante con corrección vertical

Proyección pseudocilíndrica de igual área.

El procedimiento mediante el cual se generan las proyecciones bidimensionales (en los tres casos)consiste en extraer secciones específicas de cada una de las imágenes de la secuencia y procesarlasde tal forma que el resultado es una nueva imagen (compuesta por todas las secciones extraídas)en la cual se puede visualizar toda la superficie de la pieza.

Dado que las imágenes son de por si una representación bidimensional de una situación que tienelugar en un espacio tridimensional, al momento de extraer de las mismas información morfológicade un objeto es fundamental considerar la perspectiva. En las imágenes de la secuencia, laperspectiva se manifiesta en la apariencia que adquieren los objetos de acuerdo a la distancia yposición que guardan con respecto a la cámara. En el caso que nos ocupa, debido a la forma delos tomates, tendremos zonas que estarán más alejadas de la cámara que otras, por lo tanto esnecesario considerar este fenómeno al momento de definir la zona de la imagen que será extraída.

45

Page 60: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

La figura 4.9 se esquematiza este fenómeno y puede notarse que la longitud de arco real en la zonacentral de la imagen se asemeja mas a la longitud de arco aparente que la tomada en un extremo.Dado que el sistema hace que la pieza que se está analizando rote 360o, sabemos que cualquierpunto de la superficie estará en determinado momento posicionado frente a la cámara. Por lo tantopodemos limitarnos a extraer porciones de la superficie exclusivamente en la zona central de lasimágenes sin correr riesgo de omitir partes de la pieza. Teniendo en cuenta que el tomate presenta

Figura 4.9: Efecto de la perspectiva horizontal en dos longitudes de arco tomadas en zonas diferentes dela pieza.

una doble curvatura, el mismo fenómeno anteriormente descrito se presenta en el sentido vertical.Esto provoca que las longitudes de arco correspondientes a secciones de la pieza cercanas a lospolos se correspondan con longitudes inferiores en las imágenes de la secuencia. La figura 4.10esquematiza lo anteriormente descrito.

4.4.1. Proyección de ancho constante

La primer proyección generada se compone de secciones rectangulares extraídas de la zonacentral de cada imagen de la secuencia. Esta proyección claramente no toma en cuenta los efectosde la perspectiva que se mencionaron anteriormente, por lo tanto cualquier medida de superficieque se lleve a cabo en la misma tendrá un error significativo.

46

Page 61: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.10: Efecto de la perspectiva vertical en dos longitudes de arco tomadas en zonas diferentes de lapieza.

Si la pieza que se está analizando fuese un cilindro, sería fácil darse cuenta que el ancho de lasección que debemos extraer de cada imagen de la secuencia quedará determinado por el radio delcilindro y el ángulo que rota la pieza entre dos capturas consecutivas. Concretamente nos estamosrefiriendo a la longitud de arco recorrida por un punto situado en la superficie del cilindro entredos capturas consecutivas de la secuencia.

LongituddeArco =2× r × π × θ

360o (4.1)

En la ecuación 4.1 queda definida la longitud de arco para el ángulo θ (rotación que experimenta lapieza entre dos capturas consecutivas) y el radio r. Dado que la distancia entre el eje del cilindroy su superficie lateral es constante, en este caso sería válido tomar secciones rectangulares decada imagen de la secuencia, ubicarlas una a continuación de la otra, y obtener de ese modouna representación bidimensional de la superficie. El ancho de cada una de estas seccionesrectangulares quedaría determinado por la longitud de arco.

En los tomates, a diferencia de lo que ocurre en los cilindros, la distancia entre un punto deleje y el su correspondiente en la superficie (punto con misma coordenada y) varía a lo largo deleje. Es necesario por lo tanto definir un radio que permita calcular el ancho de los rectángulosque componen la proyección. Si se toma el menor de los radios la proyección omitirá gran partede la información y si se toma el mayor la proyección contendrá información repetida. Para evitarperder gran cantidad de información se decidió calcular el promedio de los radios máximos de cadacontorno y con este valor determinar el ancho de los rectángulos que conformarán la proyección.

Una vez definido el ancho de los rectángulos es necesario introducir en el algoritmo un datoque permita calcular el ángulo que rota la pieza entre cada imagen. El sistema permite trabajarcon secuencias que contengan una cantidad variable de fotos (40, 100 y 200) por lo que esnecesario que la aplicación pueda determinar el ángulo de rotación a partir de la cantidad de fotos.Sabemos que la pieza rota 360o por lo tanto el ángulo que rota entre capturas consecutivas quedadeterminado por la ecuación 4.3.

θ =360o

CANTIDADDEFOTOS(4.2)

47

Page 62: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Sustituyendo θ calculado en la ecuación 4.3 en la ecuación 4.1 obtenemos la longitud de arco paraun determinado radio.

LongituddeArco =2× π × r

CANTIDADDEFOTOS(4.3)

El alto de los rectángulos varía para cada sección. Esta información se adquiere al momento dedetectar cada contorno. La forma de determinarla consiste en recorrer los puntos del contorno ybuscar entre puntos situados sobre el eje los que tienen coordenadas y máximas y mínimas. Paraubicar correctamente cada sección en la imagen destino se optó por definir la imagen destino conla misma altura que las imágenes de la secuencia. De este modo las coordenadas y de todos lospixeles del rectángulo serán las mismas en la imagen destino (proyección bidimensional).

Figura 4.11: Proyección de ancho constante. El ancho de las secciones rectangulares se determina a partirdel promedio de los radios máximos de los contornos detectados.

La figura 4.11 muestra la proyección de ancho constante que se obtiene a partir de unasecuencia de 40 imágenes. En la misma podemos identificar claramente los rectángulos quela componen debido a que el acople entre los mismos no es perfecto. Como mencionamosanteriormente, utilizar un ancho constante implica que se repita información en algunas zonas(principalmente en las regiones cercanas a los polos, donde el radio es menor que el radio máximopromedio) y que se omita información correspondiente a las zonas en las cuales el radio es mayorque el promedio. Esta repetición y omisión de información provoca que dos pixeles situadosen la frontera de dos secciones rectangulares consecutivas de la proyección no se correspondancon puntos consecutivos de la superficie del tomate, por lo que el color de estos pixels difieresensiblemente. Al aumentar la cantidad de imágenes de la secuencia este efecto se hace menosperceptible y la apariencia que adquiere la proyección es notoriamente mas homogénea.

La mejora en el aspecto de la representación bidimensional que produce el aumento en la cantidadde imágenes que componen la secuencia puede observarse en la figura 4.12. En la misma es posiblenotar que a medida que se incrementa la cantidad de imágenes se van dejando de percibir lasfronteras entre los rectángulos que componen la representación. Una representación de este tipono resulta adecuada para efectuar medidas (por no considerar los efectos de la perspectiva), pero

48

Page 63: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

de todos modos los resultados demuestran que la misma resulta adecuada como forma de registraren una sola imagen el aspecto de toda la superficie en una determinada etapa del proceso demaduración y realizar a partir de ella evaluaciones cualitativas como las que podrían llevarse acabo observando la pieza directamente.

4.4.2. Proyección de ancho constante con corrección vertical

Luego de generar la proyección de ancho constante descrita en la sección anterior, se comenzóa buscar la forma de incorporar al módulo la capacidad de compensar los efectos de la perspectivaque se explicaron en la sección 4.4. En esta etapa se planteó como objetivo generar una proyecciónbidimensional de ancho constante pero que a diferencia de la explicada en 4.4.1 considere losefectos de la perspectiva en sentido vertical.

Durante el procesamiento de la información de contornos se almacena un dato que en esta etapa esde suma importancia: La longitud de arco (ver sección 4.3.2). Este vector contiene para cada puntodel contorno la distancia (medida en pixeles) entre el primer punto del contorno (punto mas bajo)y si mismo. Debido a que en la proyección que se quiere generar se pretende tomar en cuenta elefecto de la perspectiva vertical, la altura de los rectángulos que la componen queda determinadapor la longitud de arco. Por lo tanto, a diferencia de lo que ocurre en la proyección de anchoconstante, en este caso la información que determina la altura de los rectángulos que componen laproyección se extrae de los pixeles situados sobre la superficie del tomate y no del eje del mismo.Por esta razón la superficie de la proyección con corrección vertical se aproximará mas a la realque la proyección de ancho constante básica (analizada en la sección 4.4.1)

La corrección vertical permite ganar en cuanto a la fidelidad del área de la proyección respecto ala real, pero introduce un problema al momento de mapear la información de color. Consideremosuna imagen cualquiera de la secuencia; si nos situamos sobre el eje en una zona cercana a unode los polos, dos pixeles consecutivos de esa imagen se corresponderán en la proyección concorrección vertical con dos pixeles no consecutivos (ver imagen 4.13). Esto quiere decir que entrelos dos pixeles de la proyección quedará una zona para la cual no tenemos información de color.Es necesario por lo tanto definir un criterio para poder asignar color a estas zonas (de lo contrariola proyección presentaría discontinuidades que la harían inutilizable para el análisis). Se decidiócubrir las zonas sin información mediante interpolación.

En este caso el método mediante el cual se interpola requiere la definición un punto de partiday un sentido en el cual se genera la proyección. Esto es: Determinar las coordenadas de unpunto de la proyección a partir del cual se comenzará a mapear la información extraída de laprimer imagen de la secuencia, y el sentido en el que se avanza dentro de la imagen hasta lograrproyectar todos los puntos. La correspondencia entre los puntos de la proyección y los puntos dela imagen original queda determinada por la información almacenada en el vector que contienela longitud de arco acumulada. Para explicar en forma clara el procedimiento mediante el cual seestablece esta correspondencia plantearemos una situación simplificada que es la siguiente: Dadala primer captura de la secuencia, encontrar el primer rectángulo que compone la proyección concorrección vertical. La imagen 4.13 muestra del lado izquierdo la primer imagen (imagen ’0’) deuna secuencia de 40 y del lado derecho la proyección de la región que se extrae de dicha imagen(primer rectángulo de la proyección). El primer punto de la imagen origen en ser proyectado

49

Page 64: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

(a) 40 Imágenes

(b) 100 Imágenes

(c) 200 Imágenes

Figura 4.12: Comparación de las representaciones bidimensionales de ancho constante generadas a partirde 40, 100 y 200 fotos

50

Page 65: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.13: Proyección del primer rectángulo que compone la representación bidimensional concorrección vertical. Se puede ver la correspondencia entre los pixeles de la proyección y los de la imagenorigen. También se muestra el punto a partir del cual se comienza a construir la proyección y el sentido enel que se realiza

es el punto mas alejado del eje vertical (punto donde se da el radio máximo). La razón por lacual se seleccionó este punto es que el efecto de la perspectiva es mínimo en las zonas entornoa él, por lo tanto al proyectarlo su coordenada y prácticamente no se ve afectada. Esto resultafundamental para lograr empalmar correctamente los rectángulos que componen la proyecciónbidimensional. Luego de proyectar el primer punto se avanza hacia el segundo punto en la imagendestino que (de acuerdo al sentido definido) es el inmediatamente consecutivo en sentido Sur-Norte. Utilizando la coordenada y de este punto, se recorre el vector que contiene la longitud dearco del contorno que se está trabajando en búsqueda del punto de la imagen original del cual setomará la información de color. Recordemos que dada una imagen de la secuencia, el vector quealmacena la longitud de arco correspondiente contiene para cada punto del contorno la distanciaentre el primer punto (punto inferior) y si mismo. Al avanzar una cierta cantidad de pixeles ensentido vertical en la proyección que estamos construyendo, avanzamos la misma cantidadde pixeles en la superficie del tomate. Esta es la característica mas importante de la proyecciónque se está generando. Por lo tanto, dado un punto en la proyección, podemos determinar a partirdel vector que contiene las longitudes de arco, cual es el punto de la superficie del tomate quele corresponde. Una vez determinado el punto de la superficie que le corresponde, basándonosen la normalización de la información de contornos realizada, podemos determinar exactamenteque de que pixel de la imagen debemos tomar la información de color. Por razones que ya seexplicaron (referirse a la figura 4.10) cada contorno detectado estará formado por mas pixeles quelos disponibles en la imagen frontal de dicho contorno, y es este el motivo por el cual es necesariointerpolar a la hora de realizar una proyección bidimensional. El criterio utilizado en este caso

51

Page 66: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

para asignar color a zonas para las cuales no disponemos de información, es asignar el color delpixel anteriormente proyectado. De esta forma, se irá recorriendo verticalmente la imagen destino(proyección bidimensional) y para cada pixel de la misma se averiguará de que punto de la imagenorigen debemos tomar el color; en los casos en los que la longitud de arco sea tal que no hay uncorrespondiente, mantendremos el color del pixel anterior de la proyección.

Luego de proyectar el punto superior (punto mas al norte) se vuelve hacia el primer puntoproyectado (ecuador) y se comienza a proyectar hacia el sur con los mismos criterios utilizados alproyectar en sentido sur-norte. Aprovecharemos este momento para profundizar un poco mas enla elección del primer punto de la proyección:

Si por ejemplo se comienza a proyectar desde el punto inferior (polo sur), sería necesariodefinir un determinado punto en la imagen destino que le corresponda; una vez completadoel primer rectángulo, pasaríamos a tomar pixeles de la segunda imagen de la secuencia; alproyectar el primer pixel de la segunda imagen, no tendríamos información que nos permitaubicar su correspondiente correctamente respecto al los puntos ya proyectados ya que dichaubicación se ve afectada por la diferencia de las longitudes de arco de cada contorno. Si comoalternativa optamos por definir arbitrariamente un origen en la proyección a partir del cualcomenzar a ubicar los pixeles proyectados, observaríamos que todos los rectángulos quedaríandesfasados (verticalmente) como consecuencia de la diferencia de longitudes. Comenzar aproyectar en el punto de radio máximo logra que el empalme de los rectángulos sea adecuadoy las discontinuidades provocadas por la diferencia de longitudes se localicen en las zonascorrespondientes a los polos. Esto permite obtener una mayor región utilizable para el análisisen la proyección. Las discontinuidades que se dan en las regiones correspondientes a los polos sonintrínsecas del método que se está utilizando y no pueden ser resueltas pero sí pueden ignorarse(truncando la imagen) sin que esto signifique omitir una excesiva cantidad información de lasuperficie del tomate.

Hasta el momento hemos tratado los aspectos relacionados a la determinación de la coordenaday de los puntos proyectados. Pero es necesario también mencionar el criterio utilizado paradeterminar el ancho de cada rectángulo que compone la proyeccción. La razón por la cual nosreferimos también a esta proyección como de ’ancho constante’ es porque está compuesta porrectángulos (por lo tanto sus componentes son de ancho constante), sin embargo existe unadiferencia importante respecto a la proyección descrita en la sección 4.4.1 y es que en este casoel ancho de cada rectángulo es variable. Esto significa que si bien aún no se están compensandolos efectos de la perspectiva en sentido horizontal, la proyección que se está generando es masfiel a la realidad en cuanto a superficie que la explicada en la sección 4.4.1. Para lograr esto, esnecesario que al momento de comenzar a proyectar los pixeles de una imagen de la secuencia secalcule un límite para la coordenada x que al ser alcanzado provoque un incremento en la variableque indica la imagen de la cual se toma la información. El criterio utilizado para definir este límitees el mismo que se utilizó en la proyección de ancho constante (sección 4.4.1): El radio máximode cada contorno. Esto determina que en este caso no habrá omisión de información, pero sí habrárepetición. El efecto visual de todos modos es similar al percibido en la proyección de anchoconstante básica.

En la imagen 4.14 podemos visualizar los aspectos mencionados en esta sección. En primer

52

Page 67: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.14: Proyección de ancho constante con corrección vertical generada con secuencia de 40imágenes. Pueden apreciarse las diferencias en el ancho y alto de los rectángulos que la compornen.

lugar puede notarse que el empalme de los rectángulos es razonable (teniendo en cuenta que laproyección fue generada solamente con 40 imágenes). También es posible notar la diferencia enla altura de los rectángulos que la componen y que las discontinuidades provocadas por estefenómeno se localizan en las zonas correspondientes a los polos. Es en estas zonas tambiénque se hace mas perceptible el resultado de la interpolación (el mismo se manifiesta en pixelesconsecutivos que tienen el mismo color). Por último puede notarse también la diferencia enel ancho de los rectángulos como consecuencia del cálculo de un límite para la coordenada xindependiente para cada uno.

Como conclusión de esta sección se presenta en la figura 4.15 una proyección de ancho constantecon corrección vertical generada a partir de una secuencia de 200 imágenes.

Figura 4.15: Proyección de ancho constante con corrección vertical generada con secuencia de 200imágenes.

53

Page 68: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

4.4.3. Proyección pseudicilíndrica de igual superficie

En esta sección se describirá la proyección que en este proyecto ha demostrado ser la mas aadecuada a los efectos de tomar medidas de superficie. Si bien el primer contacto con este tipode proyecciones fue a través de trabajos ubicados en el terreno del análisis de imágenes asociadoa frutas, rápidamente se pudo notar que el marco teórico proviene de estudios asociados a lacartografía terrestre. Resulta razonable recurrir a la cartografía en este caso ya que dicha disciplinase basa en la producción de modelos (generalmente proyecciones bidimensionales) de la tierra.

A lo largo de la historia los cartógrafos han propuesto gran variedad de proyecciones y el motivopor el cual no hay una única universalmente aceptada es que la elección de la proyección masadecuada depende de la información que se pretende extraer de la misma. En este proyecto sequiere medir la superficie de la pieza y de ciertas regiones de interés, por lo tanto la proyecciónque se genere debe asegurar que el error que se comete al tomar medidas de superficie seasuficientemente pequeño como para que los resultados sean aceptables (el error admisible sedefinirá mas adelante en este documento). Es importante destacar que para este proyecto nointeresan otros aspectos de la proyección como puede ser la forma de la superficie.

Existe un subconjunto de proyecciones comúnmente utilizadas para generar mapas de lasuperficie terrestre llamadas pseudocilíndricas. Estas proyecciones se caracterizan por representarlos paralelos terrestres mediante líneas paralelas y los meridianos con curvas (exceptuandoel meridiano central que se representa con una recta perpendicular a los paralelos). Una delas proyecciones pseudocilíndricas mas conocidas es la sinusoidal (también conocida comoproyección de Sanson-Flamsteed o proyección de igual área de Mercator). La misma quedadefinida por las ecuaciones 4.4, donde φ es la latitud, λ es la longitud, y λ0 es el meridiano central.

x = (λ− λ0)x cosφy = φ

(4.4)

Una vez definido el modelo matemático que se utilizaría, se procedió a idear un procedimientoque permita implementarlo. A continuación se describirán las dos formas en la que se abordó elproblema.

Primer abordaje: Transformación de trapecios

Como se explicó anteriormente, teniendo en cuenta que en este proyecto se está utilizando unasola cámara, es conveniente extraer la información de color de la zona central de las imágenesde la secuencia. En las proyecciones que se explicaron anteriormente se extraían regionesrectangulares que posteriormente se ordenaban una a continuación de la otra formando de esemodo la representación bidimensional. En este caso la forma de las regiones que se extraen no esrectangular ya que de ese modo no es posible obtener una proyección de igual área.

Una vez definida la cantidad de imágenes que componen la secuencia, podemos determinar eldesplazamiento angular que realiza el motor entre imágenes consecutivas. Este desplazamientoangular, junto con el radio máximo, fue utilizado anteriormente para calcular el ancho de losrectángulos que componen las proyecciones de ancho constante. Si consideramos un punto situadoen la superficie del tomate, en la zona cercana un polo, y otro punto situado en la superficie y sobreel ecuador, resulta claro que cuando el motor que rota la pieza avanza un paso la distancia recorrida

54

Page 69: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

por el punto del polo es menor que la distancia recorrida por el punto situado en el ecuador. Estehecho se ignoró voluntariamente en las proyecciones de ancho constante y es el motivo principalpor el cual dichas proyecciones no resultan adecuadas para tomar medidas de superficie. Si enlugar de construir la proyección bidimensional utilizando secciones rectangulares extraídas delcentro de las imágenes de la secuencia lo hacemos extrayendo una sección cuya forma quededeterminada por el radio de la pieza en cada punto del eje estaremos contemplando la diferenciaen el desplazamiento que experimentan los puntos de cada contorno al avanzar un paso. Teniendoen cuenta que habitualmente los tomates presentan radios menores en los polos que en las zonascercanas al ecuador, en principio resulta adecuado considerar trapecios para definir las regionesque se extraen de cada imagen de la secuencia. El trapecio es un cuadrilátero que tiene dos ladosparalelos y otros dos no paralelos. Los lados paralelos se llaman bases del trapecio y la distanciaentre ellos se llama altura. La rutina implementada para ubicar trapecios sobre la zona central delas imágenes de la secuencia requiere la definición de una nueva variable que llamamos ’paso’. Elpaso determina indirectamente la altura que tendrán los trapecios dado que dicha variable estableceuna cantidad mínima de pixeles que debe existir entre que las bases inferiores de dos trapeciosconsecutivos. Por lo tanto esta variable está directamente relacionada con la precisión que sepuede lograr con este abordaje. En la figura 4.16 se puede observar el resultado de definir regiones

Figura 4.16: Regiones trapezoidales definidas en la zona central de una imagen de la secuencia. Los pixelescontenidos dentro de cada trapecio deben transformarse para formar la proyección bidimensional de igualárea

trapezoidales en la zona central de una imagen de la secuencia. Es importante mencionar que todoslos trapecios son simétricos respecto al eje vertical. Para cada trapecio, su base inferior y superiorse calcula como la distancia recorrida por un punto situado sobre el eje vertical, con coordenada yigual al de cada base, al rotar un ángulo determinado por la cantidad de imágenes que forman lasecuencia (ver ecuación 4.3). La rutina que define las regiones trapezoidales comienza calculandoel desplazamiento experimentado por el primer punto del contorno (punto situado mas al sur)alrotar la pieza, esta distancia será la base inferior del primer trapecio. Luego, utilizando el vectorque almacena las longitudes de arco de cada contorno, ’avanza’ una cierta cantidad de pixeles(dada por la variable ’paso’) y se sitúa en el próximo punto del contorno. A continuación, repiteel cálculo de desplazamiento para este nuevo punto, calculando de este modo la base superior delprimer trapecio. Se repite el procedimiento hasta alcanzar el punto mas cercano al último (norte).

55

Page 70: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Generalmente no se alcanza exactamente el último punto como consecuencia del paso que se hadefinido. Cabe aclarar que como se desea que los trapecios sean consecutivos, luego de definidoel primero, la base superior de uno de ellos será la base inferior del siguiente.

Es importante notar que la altura de los trapecios es menor en las zonas donde la curvatura dela pieza es mas pronunciada. El motivo por el cual ocurre esto nuevamente está directamentevinculado a la perspectiva. Ante una curva pronunciada la rutina encontrará mas pixeles en elcontorno que en la imagen ’frontal’, por esta razón al avanzar pocos pixeles en la imagen frontal,estamos avanzando mas pixeles en el contorno. En las zonas donde la curvatura es mas leve(ecuador) este fenómeno no ocurre y la cantidad de pixeles que hay en la foto frontal entre dospuntos próximos es similar a la que hay en el contorno.

Al hacer suficientemente chico el paso, se logra cubrir la zona de interés (huso central) contrapecios consecutivos. En la imagen 4.17 podemos ver que a medida que se reduce el paso,aumenta la cantidad de trapecios utilizados para cubrir la región central de la imagen (región dela cual se extrae la información de color). La razón por la cual es preferible que los trapecios

Figura 4.17: Resulatdo de definir regiones trapezoidales variando el paso. Cuanto menor es el paso aumentala cantidad de trapecios utilizados para cubrir la zona.

sean pequeños, es que estos trapecios transformados son los que formarán la representaciónbidimensional; si trabajamos con trapecios con superficies grandes estos se podrán identificar enla proyección y la misma resultará demasiado distorsionada. Si trabajamos con trapecios cuyasuperficie es pequeña, la imagen formada resultará mas homogénea. Se trata del mismo fenómenoocurre en cualquier imagen con el tamaño de los pixeles. Adicionalmente, utilizar trapeciospequeños tiene la ventaja de lograr una reproducción mas fiel de la forma de cada contorno. Loanterior puede ser comparado con el hecho de utilizar mas puntos o menos puntos para representarun determinado contorno.

56

Page 71: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Una vez desarrollada la rutina que es capaz de extraer regiones trapezoidales, es necesariotrabajar en la transformación que se le aplicará a los mismos para formar la representaciónbidimensional. Para proyectar los pixeles contenidos dentro de los trapecios es necesario trabajarcon transformaciones geométricas. Los detalles específicos de las transformaciones se trataránmas adelante cuando se profundice en la implementación de la rutina de proyección. En estasección nos limitaremos a explicar como se transforman los trapecios y no la información de colorcontenida en ellos.

La trasformación del trapecio se lleva a cabo transformando cada uno de los cuatro vértices que lodefinen. Consideremos, en la primer imagen de la secuencia, la base inferior del primer trapecio(trapecio ubicado más al sur): La sección que se extraerá de esta imagen se ubicará en el centro dela proyección bidimensional que se está generando (dado que la misma se genera desde el centrohacia los lados), por esta razón no se desplazarán horizontalmente los trapecios que la componen.La altura de los trapecios proyectados se determina calculando en el contorno correspondiente lalongitud de arco entre la base inferior y la superior. Una vez calculado este valor, se ubica la basesuperior en la imagen destino y de este modo obtenemos la proyección del primer trapecio de lasecuencia. Repitiendo esto para todos los trapecios definidos en la primer imagen de la secuenciaobtenemos la proyección de la sección completa que podemos ver en la imagen 4.18. Una vez

Figura 4.18: Resultado de proyectar los trapecios definidos en la primer imagen de la secuencia. Del ladoizquierdo la proyección y del lado derecho la imagen original. La proyección de estos trapecios se ubica enel centro de la representación bidimensional por lo que no hay deformaciones ni traslaciones de los mismosen sentio horizontal.

proyectados los trapecios extraídos de la primer imagen, procedemos a definir los trapecios de lasegunda imagen de la secuencia. Las proyecciones de estos trapecios se ubicarán a la izquierda delos proyectados anteriormente y la posición de sus vértices se determinará tomando en cuenta eldesplazamiento experimentado por los los mismos durante la rotación. El origen de coordenadasx se ubica en en la mitad del ancho de la imagen destino. Por lo tanto en la proyección, lacoordenada x de un punto P0 cualquiera se ubicará a una distancia del centro igual a lalongitud del arco definido por el ángulo que rota la pieza entre la primer imagen, y la imagenque tiene a P0 sobre el eje vertical.. La imagen 4.19 muestra lo anterior. Teniendo en cuenta quelos tomates suelen presentar radios mas pequeños en las zonas cercanas a los polos, es de esperarque los contornos proyectados adquieran forma de ’gajo’ o ’media luna’ a medida que nos vamosseparando del centro de la proyección. La figura 4.19 esquematiza la forma que adquieren lassecciones que se proyectan a medida que se alejan del origen.

57

Page 72: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.19: Determinación de la coordenada x de un punto cualquiera de la superficie del tomate. Lacoordenada x del punto proyectado queda determinada por la longitud del arco de ángulo θ. La coordenaday se determina usando la longitud de arco del contorno correspondiente al punto en cuestión.

Para visualizar el proceso de generación se muestra en la imagen 4.20 la proyección de lostrapecios definidos en la segunda y tercer imagen de la secuencia. En estas imágenes comienzaa visualizarse un aspecto que será evidente una vez finalizada la proyección y es el desfazajevertical de los trapecios proyectados. En la 4.4.2 se explicó la razón por la cual conviene comenzara proyectar desde un punto cercano al ecuador y no desde uno de los polos. Como puede notarse,al proyectar los trapecios definimos un punto arbitrario en la zona inferior de la imagen destino apartir de la cual se comienzan a ubicar las proyecciones. El resultado de esto es que la proyecciónpresenta espacios entre los conjuntos de trapecios proyectados que la componen y existe desfasajevertical. Si bien la proyección lograda en esta etapa del proyecto claramente no resulta adecuada,trabajar en ella resultó de gran utilidad para comprender las desventajas de este abordaje. Se logródesarrollar el código que ubica y dimensiona los trapecios en las imágenes de la secuencia yposteriormente los proyecta. Otra parte importante del trabajo realizado en esta etapa tiene que vercon la transformación de la información de color. Estos aspectos se tratarán al momento de repasarlos detalles de la aplicación, pero de todos modos incluiremos en esta sección los resultadoslogrados utilizando OpenGL para mapear las texturas contenidas dentro de cada trapecio. Lafigura 4.21 muestra la proyección completa realizada a partir de una secuencia de 40 imágenes.

58

Page 73: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

(a) Proyección de lasegunda imagen

(b) Proyección de latercer imagen

Figura 4.20: Proyección de los trapecios definidos en la segunda y tercer imagen de la secuencia

En la misma podemos observar que el empalme de las secciones proyectadas no es adecuado yaque existen espacios demasiado grandes como para pensar en eliminarlos mediante interpolación.También es posible ver que todos los trapecios proyectados se ubican en la proyección a partir deuna cierta coordenada y definida como origen, lo que provoca que el polo norte de la proyecciónpresente discontinuidades importantes. La proyección se genera desde el centro hacia los lados;de haberse realizado a partir de uno de los lados, podríamos observar discontinuidades que seirían haciendo mas importantes a medida que avanzamos hacia el otro lado. Se trata de la mismaacumulación de errores que se hace evidente en los polos en este caso.

Finalmente se trabajó en el mapeo de las texturas (información de color) contenidas dentro de lostrapecios. Se utilizó la herramienta OpenGL, que si bien introdujo dificultades por no contar conexperiencia en su utilización, se comprobó que es la mas adecuada para realizar mapeo de texturas.A grandes rasgos OpenGL proporciona funciones específicas que toman como input los vérticesde los trapecios en la imagen original y los vértices de los trapecios proyectados y se encargande transformar los pixeles contenidos. Dichas funciones utilizan interpolación para resolver lasdiferencias en las dimensiones de los trapecios origen y destino asegurando que el resultado nopresenta discontinuidades (locales).

Segundo abordaje: Transformación inversa

En esta sección se describirá la forma en la que se logró generar la proyección que demostróser la mas adecuada de las realizadas para tomar en ella medidas de superficie. El fundamentogeométrico de esta proyección es el mismo que se desarrolló en la sección anterior; las diferenciasprincipales respecto a la proyección explicada anteriormente tienen que ver con el procedimientoimplementado para su generación.

En la proyección generada a partir de trapecios pudimos detectar un aspecto fundamental paraobtener una imagen que pueda ser analizada es que la misma no presente discontinuidadesdemasiado importantes. Trabajar con trapecios hacía sumamente dificultosa la tarea de empalmarlas secciones proyectadas. Se decidió por lo tanto abordar la generación de la superficie mediantela transformación pixel a pixel. Con el objetivo de evitar zonas de la proyección sin información,

59

Page 74: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.21: Proyección completa generada transformando los trapecios definidos sobre el eje vertical decada imagen de una secuencia de 40

se decidió realizar lo que denominamos mapeo inverso de los pixeles. En el mapeo inverso consisteen partir de un punto de la imagen destino (proyección) y averiguar a partir de la información delos contornos, que pixel y de que imagen de la secuencia, debe copiarse. De esta forma se recorrela totalidad de los puntos de la imagen destino, y a cada uno se le asigna un valor (informaciónde color). De esta forma nos aseguramos que no existirán discontinuidades y obtendremos unaimagen homogénea, apta para el posterior análisis. Dicho esto, queda claro que para generar unaproyección de este tipo el trabajo debe orientarse a desarrollar los algoritmos que permitan:

Definir las dimensiones de la imagen destino, que será al dominio destino de latransformación que se quiere implementar.

Dadas las coordenadas de un punto del dominio destino, determinar cual es la imagen dela secuencia que debe considerarse y las coordenadas del pixel cuya información de colordebe ser copiada.

Comenzaremos estableciendo el orden en el cual se recorrerá el dominio destino. Por las razonesexplicadas en la sección 4.4.2 (comprobadas en la sección 4.4.3) conviene realizar el mapeocomenzando en una zona cercana al ecuador. Luego de realizar algunas pruebas, pudimos notarque recorrer el dominio destino en sentido horizontal (líneas paralelas al ecuador) facilitaba la tareade definir cual de las imágenes de la secuencia debe considerarse para cada pixel de la proyección.Por lo tanto la proyección se genera partir de la intersección del ecuador proyectado y el origende coordenadas x (situado en la zona central de la imagen). Se trabaja en cada cuadrante en formaindependiente recorriéndoles desde la zona central de la imagen hacia los lados hasta alcanzar lospolos.

La definición de las dimensiones de la imagen destino se lleva a cabo a partir de la informaciónalmacenada en los contornos. Teniendo en cuanta que el ancho de la proyección quedadeterminado por puntos con radio máximo de los contornos, se suman las longitudes de arco

60

Page 75: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.22: Proyección completa incluyendo la información de color. Dicha información se mapea en laimagen destino utilizando la herramienta OpenGL

tomadas en dichos puntos y se llega de este modo al ancho que debe tener la imagen destinopara poder contener correctamente a la proyección. Para calcular el alto, es necesario identificar elcontorno con mayor longitud. Dado que es necesario poder mantener en la proyección la referenciadel ecuador antes definido, la búsqueda del contorno con mayor longitud se hace en dos etapas:Longitud ecuador-polo norte, y Longitud ecuador-polo sur. La altura de la imagen destino quedadeterminada sumando estas dos longitudes.

Una vez definido el dominio destino y el orden en el que se recorrerá, se procede a desarrollarlos algoritmos que generan la proyección. Para comprender mejor como se genera la proyecciónconviene pensar en un puntero que recorre la imagen origen (imagen de la secuencia) y otro que’simultáneamente’ recorre el dominio destino. El valor asignado a cada punto del dominio destino,queda determinado por el valor del pixel de la imagen de la secuencia que está siendo apuntado porel puntero origen. Teniendo en cuenta el orden el que el puntero destino recorrerá la imagen (desdeel centro hacia los lados) es necesario determinar un rango para la coordenada x que permitadeterminar cuando es necesario dejar de extraer información de una determinada imagen de lasecuencia y pasar a la siguiente. Dicho rango se determina a partir del radio de la pieza. Dado quelos radios de la pieza varían dependiendo de la altura a la que nos situemos, para definir el rangode la coordenada x mencionado, es necesario tomar en cuenta la coordenada y del puntero destino.Para aclarar lo anterior se resumirá como se genera la primera línea de la proyección:

1. Se sitúa el puntero origen en la primer imagen de la secuencia, en la intersección del ecuadory el eje principal. El puntero destino se sitúa en la intersección del origen de coordenadas xde la proyección y el ecuador proyectado.

2. A partir de la coordenada y del puntero destino se averigua el radio correspondiente a esepunto (esta información está almacenada en el primer contorno de la secuencia).

61

Page 76: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

3. Con el radio y el ángulo que avanza el motor entre capturas consecutivas se calcula lalongitud de arco.

4. En el dominio destino, sobre el ecuador proyectado, se define un rango de valores igual a lalongitud de arco calculada anteriormente, comenzando en el origen de coordenadas x.

5. Tomamos la información de color del pixel sobre el cual está posicionado el puntero origeny se la asignamos al pixel sobre el cual está posicionado el puntero destino.

6. Desplazamos horizontalmente ambos punteros (en sus imágenes correspondientes) hasta elpixel consecutivo.

7. Repetimos los puntos 5 y 6 hasta que el puntero destino alcance el límite del rango.

8. Cuando el puntero destino alcanza el límite del rango cambiamos la imagen origen por laque le sigue en la secuencia.

9. Repetimos los puntos 2 al 8 hasta que el puntero destino alcanza el borde de la imagendestino (momento en el cual se finalizó la primer línea de la proyección).

La descripción anterior pretende ser un resumen de como se genera cada línea horizontal de laproyección de igual área. Para facilitar su comprensión se han omitido los detalles asociados alreposicionamiento de los punteros luego de cada transición de imagen origen. El procedimientodescrito para una línea se repite para los cuatro cuadrantes que previamente definimos en eldominio destino.

El concepto detrás de la interpolación vertical que se lleva a cabo en esta proyección es elmismo explicado en la sección 4.4.2: Para los puntos del contorno que no es posible adquiririnformación de la imagen frontal (debido a la perspectiva) se asigna el color del último pixeldel cual tenemos información. La implementación difiere sustancialmente debido a que en estaproyección el sentido en el que se recorre el dominio destino es diferente pero dado que en estasección no se profundiza en aspectos de programación no se mencionarán detalles al respecto.Con el objetivo de comparar el resultado obtenido abordando el problema de la forma descrita enesta sección con el obtenido en la sección anterior, se muestra en la figura 4.23 una proyecciónobtenida a partir de una secuencia de 40 imágenes. En la misma podemos ver que se lograronevitar las discontinuidades entre las secciones proyectadas. Podemos ver que si bien es posibleidentificar las secciones, el empalme de las mismas es aceptable y las distorsiones en los polos seeliminan. Esto último se logra analizando las longitudes de todos los contornos y encontrando unrango de valores dentro del cual podemos asegurar que todos los contornos contendrán puntos. Deesta forma podemos maximizar la zona de la proyección utilizable para el análisis.

Finalmente mostramos en la figura 4.24 una proyección pseudocilíndrica generada a partir deuna secuencia de 200 imágenes (la cantidad máxima de imágenes que podemos adquirir con estesistema). Podemos ver que al incrementar la cantidad de imágenes las secciones que componen laproyección prácticamente no se logran identificar. Esto es claramente un efecto deseable ya que laproyección resulta notoriamente mas homogénea y el nivel de detalle que se puede lograr es mayorque en cualquiera de las proyecciones generadas anteriormente. La validación de las medidas desuperficie tomadas en esta proyección se documenta en el capítulo 8.

62

Page 77: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

Figura 4.23: Proyección pseudocilíndrica de igual superficie generada a partir de una secuencia de 40imágenes

Figura 4.24: Proyección pseudocilíndrica de igual superficie generada a partir de una secuencia de 200imágenes

63

Page 78: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 4. Módulo de procesamiento

64

Page 79: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 5

Módulo de análisis

5.1. Introducción

De acuerdo a lo establecido en el capítulo 4 el módulo de procesamiento genera una proyecciónbidimensional de la superficie del tomate. Dicha proyección se genera con el objetivo de tomarmedidas que permitan sacar conclusiones acerca del estado de la pieza que se está estudiando. Enesta sección se tratan los aspectos del proyecto vinculados al análisis de la información generadapor el módulo de procesamiento. Se explicará la forma en que se toman las medidas de área, cómose detectan las zonas de interés y cómo se almacenan los resultados de cada estudio.

El módulo de análisis es la parte del proyecto que involucra mas interacción entre el sistema yel usuario. Por esta razón al momento de desarrollarlo, fue necesario procurar que la herramientasea lo mas amigable e intuitiva posible para que los usuarios (sin conocimientos de desarrollo desoftware) puedan utilizarla sin problemas. Las librerías de OpenCV son una excelente herramientapara resolver los aspectos vinculados al análisis de imágenes pero presentan limitacionesimportantes en cuanto al desarrollo de interfaces gráficas (GUI). Para mitigar esto, es necesarioque el proceso de análisis requiera la menor cantidad de intervenciones del usuario posibles,y que las mismas puedan llevarse a cabo a través de controles simples e intuitivos (como porejemplo trackbars y eventos de mouse). Para permitir que los usuarios del sistema puedan trabajarposteriormente con la información que proporciona el módulo de análisis se desarrolló el códigonecesario para exportarla en formatos estándar.

Cabe aclarar que el módulo de análisis permite analizar cualquiera de las proyeccionesbidimensionales que se generaron en este proyecto, pero dado que la que resulta mas adecuadapara medir superficies es la pseudocilíndrica, esta sección asumirá que dicha proyección es la quese utiliza.

5.2. Análisis de la Imagen de Salida

El módulo de procesamiento deja disponible una imagen de la proyección bidimensional enformato BMP. Esta imagen es la entrada del módulo de análisis. La primer tarea que lleva a caboel módulo de análisis es medir la superficie total y el perímetro de la proyección. Teniendo encuenta que lo que se pretende es identificar en la imagen que zona corresponde a la proyección y

65

Page 80: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

que zona corresponde al fondo, estamos nuevamente ante la necesidad de segmentar una imagen.La forma en la que se llevó a cabo la segmentación es idéntica a la utilizada al momento dedetectar las siluetas en las imágenes de la secuencia en el módulo de procesamiento: Detecciónde contornos. Para esto se adaptó el código desarrollado anteriormente. El sistema despliega enpantalla la proyección mostrando también el contorno resultante de la segmentación por umbrales.En este caso se utiliza en principio un valor de umbral que ha demostrado ser adecuado en lamayoría de las pruebas realizadas. En la misma ventana que se muestra esta imagen se incluye untrackbar que permite modificar el valor del umbral en caso de que la detección no resulte correcta.El criterio para definir si la detección es correcta o no es el mismo que se aplicó en la detecciónde siluetas: La superficie que corresponde a la proyección del tomate debe quedar totalmentecontenida dentro del contorno.

Una vez detectado el contorno en forma correcta, es necesario indicarle al sistema que proceda a

Figura 5.1: Ventana en la cual se despliega la proyección y se detecta su contorno exterior. Se disponede un trackbar para que el usuario pueda ajustar el umbral. En la esquina inferior izquierda, un botón quepermite aceptar la detección y proceder con el análisis.

la próxima etapa del análisis. Dado que como se comentó anteriormente OpenCV es sumamentelimitado en cuanto a las funciones que proporciona para desarrollar interfaces gráficas, duranteel desarrollo la forma de interactuar con la aplicación fue a través de eventos disparados porteclas. Claramente esto no resulta adecuado cuando se pretende que otras personas (mas alláde los desarrolladores) utilicen el sistema. Para esto se decidió implementar botones del estiloa los utilizados en las interfaces gráficas mas comunes. Esto se logró definiendo una cierta regiónde la imagen (mediante las coordenadas ’x’ e ’y’) y escribiendo una rutina a la que se accedeexclusivamente cuando el usuario clickea dentro de dicha región. La figura 5.1 muestra una capturade esta pantalla. En este caso, al clickear el botón, la aplicación procederá de la siguiente forma:

Calcula el área y el perímetro de la proyección.

Cierra la ventana en la que se de estaba mostrando la proyección.

Despliega en pantalla las ventanas que se utilizarán durante la detección de manchas.

66

Page 81: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

5.2.1. Detección de Manchas

Finalizada la etapa de detección del contorno exterior de la proyección, el sistema presenta dosnuevas ventanas que permitirán al usuario seleccionar las zonas de interés de la proyección. Unade estas ventanas despliega nuevamente la proyección, pero en este caso incorpora un rectánguloque puede ser desplazado sobre la proyección utilizando el mouse. Este rectángulo define unanueva región de interés en la proyección cada vez que es desplazado. En el contexto de OpenCVlas regiones de interés (ROI) permiten que al realizar cualquier tipo de procesamiento en la imagenen la cual están definidas, dicho procesamiento involucre exclusivamente a los pixeles contenidosen esta región. A los efectos de llevar a cabo la detección de manchas, claramente lo anteriormentedescrito resulta de gran utilidad. Mediante la definición de una región de interés, podemos efectuardetección de contornos en una zona acotada de la imagen (que sabemos contiene el elementoque nos interesa, en este caso una mancha). Si lleváramos a cabo la detección de contornos sindefinir una región de interés, dado un valor de umbral, la rutina de detección devolvería todos loscontornos de la proyección, y los ajustes del umbral afectarían por lo tanto a todas las manchasque fueron encontradas. Esto es algo que se desea evitar ya que no es posible definir un umbralque permita detectar todos los contornos de la imagen simultáneamente.

La otra ventana que se despliega en esta etapa es un panel que contiene una versión aumentada

Figura 5.2: Ventanas que permiten al usuario seleccionar la region de la proyección en la cual se encuentrael elemento que quiere medir. Una vez definida esta región el usuario puede ajustar manualmente el valordel umbral que determina el contorno que se detecta

de la región de interés definida por el rectángulo mencionado, un botón que permite almacenarla medición, y un trackbar que permite ajustar el valor umbral correspondiente a la detección decontornos (dentro de la ROI).

Como primera aproximación, cada vez que se desplaza el rectángulo selector, el sistema aplicael método de OTSU para segmentar la región de interés en la que se realizará la detección decontornos. Este método asume que la región en la que se aplica está compuesto por dos conjuntosde pixeles y calcula el umbral que mejor separa estos dos conjuntos. El resultado de detectarcontornos utilizando este método suele ser adecuado cuando la diferencia de color entre las

67

Page 82: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

manchas y el resto de la región de interés es amplia. Dado que esta situación no se da siempre,el panel incluye un trackbar que permite ajustar manualmente el umbral. Si el usuario desplazael trackbar, se deja de utilizar el método de OTSU y se comienza a detectar contornos usando elvalor de umbral seleccionado.

La figura 5.2 muestra las dos ventanas asociadas a esta etapa del análisis. El usuario debeentonces situar el rectángulo selector sobre la región donde se encuentra la mancha que quieredetectar. Teniendo en cuenta que el tamaño de estas manchas puede variar sensiblemente, esposible ajustar mediante trackbars el tamaño (y relación de aspecto) de la región de interés.Ante cada movimiento del rectángulo selector, el sistema realiza segmentación por umbralesen la región de interés y muestra el contorno resultante en el panel. Este resultado se muestraaumentado para que el usuario pueda realizar ajustes en el valor del umbral que le permitan ajustarel contorno en forma adecuada a la mancha que se quiere medir. El aumentar el tamaño de unaimagen, necesariamente involucra interpolación dado que se debe asignar información de color apixeles que en la imagen original no existen. Para esto, OpenCV permite seleccionar el método deinterpolación que se desea utilizar. Entre las alternativas están:

Asignar el valor del pixel de la imagen original mas cercano.

Calcular un promedio de los 2 x 2 pixeles circundantes, ponderado de acuerdo a la cercaníacon el pixel al que se le quiere asigar el valor.

Calcular un valor a partir de un spline cúbico.

Si bien las imágenes de la figura 5.3 parecen ser iguales, el impacto que tiene el método deinterpolación seleccionado se puede apreciar claramente en los bordes de las manchas.

Durante las pruebas que se realizaron, se trabajó con piezas que exhibían manchas oscuras,en su mayoría de color negro; incluso, para gran parte de las pruebas se trabajó colocandoautoadhesivos de color negro sobre la superficie del tomate simulando manchas. Para este tipo demanchas, el método de segmentación que utilizamos (’binary inverted’) funcionó adecuadamente.Sin embargo se pudo comprobar que en ciertos casos, cuando las manchas no son suficientementeoscuras, el sistema las omitía. Esto fue solucionado cambiando el método de segmentación por’binary’. Al utilizar este ultimo método, los pixeles de la proyección cuyo valor se encuentradebajo del umbral serán considerados como negro, y los que superen el umbral serán consideradosblancos. De esta forma, ajustando correctamente el valor del umbral es posible detectar lasmanchas que antes se omitían. Al momento de generar esta documentación, la interfaz deusuario no permite modificar el método de segmentación (debe cambiarse desde el código), peroincorporar un selector resultaría sumamente sencillo y es una posible mejora del sistema para unaetapa posterior.

Una vez detectada la mancha cuya superficie se quiere medir y ajustado el contorno en formaadecuada, el usuario debe clickear con el mouse sobre el botón incluido en el panel (GUARDAR).Al hacerlo, el sistema procede a almacenar una versión de la imagen que contiene la proyeccióncon el rectángulo selector situado en la región donde se encuentra la mancha. A cada regiónanalizada se le asigna un número que permite identificar de que mancha se trata en cada caso (lo

68

Page 83: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

(a) Método Nearest neighbor (b) Método Bilinear

(c) Método Bicubic interpolation (d) Método Pixel area re-sampling

Figura 5.3: Resultado de los diferentes métodos de interpolación proporcionados por OpenCV

cual es necesario para el usuario el momento de evaluar la información generada). Paralelamente,en un archivo de texto plano, se almacena:

La ruta a la imagen antes almacenada (proyección).

El área y perímetro total de la proyección.

69

Page 84: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

El identificador de la mancha y sus medidas de área y perímetro.

Las medidas de superficie así como los perímetros que se miden utilizando el módulo de análisisse expresan en pixeles.

5.2.2. Cuantificación de superficie

De acuerdo a lo explicado en la sección anterior, el módulo de análisis proporciona medidasde área en pixeles cuadrados y de longitud (perímetro) en pixeles. Si bien es posible convertir estasmedidas a unidades del sistema internacional (m2 y m respectivamente) esto no sería de mayorutilidad teniendo en cuenta que la distancia entre la cámara y la pieza al momento de adquirirlas imágenes impacta directamente en el resultado. Es posible llegar al modelo que determina laproyección que se lleva a cabo al tomar una fotografía de una imagen, de hecho en el capítulo 6se dan detalles al respecto. Si incorporamos a este modelo el dato de la distancia entre la cámaray el objeto es matemáticamente posible llegar a las medidas reales de los objetos que componenla escena. La precisión que se puede alcanzar con esta técnica depende en gran medida de lacalidad de la cámara y la precisión con la que midamos la distancia entre esta y el objeto. Dadala configuración que se está utilizando en este proyecto resultaría poco práctico tener que medirdicha distancia en cada ensayo, y además teniendo en cuenta la calidad de la cámara utilizada yel hecho de que el resto del hardware es súmamente básico, la precisión que se podría alcanzar nojustificaría considerar un procedimiento de este tipo. En las aplicaciones en las cuales es necesariollevar a cabo medidas de objetos a partir de imágenes generalmente conviene utilizar visión stereo.Utilizando visión stereo es posible estimar la medida real de un objeto a partir la distancia entrelas dos cámaras involucradas.

Las medidas de superficie en pixeles que se proporcionan en este proyecto pueden procesarsepara ser utilizadas de dos formas:

Como relativas a la superficie total de la proyección: Dada la superficie de una zonaespecífica de la pieza en pixeles, se calcula que a que porcentaje de la superficie total dela proyección corresponde.

Como relativas a un patrón de superficie conocida: Al momento de adquirir las imágenes esposible incorporar un patrón de área conocida (adherido a la superficie de la pieza) a partirdel cual podamos determinar la relación pixeles-metros2 para cada secuencia de imágenes.A partir de esta relación calculamos mediante una relación lineal el área de cualquier otrazona de interés.

De acuerdo a los objetivos definidos para este proyecto, proporcionar medidas relativas a lasuperficie total resulta apropiado para el tipo de estudio que se pretende realizar con este equipo.Quedará a criterio del usuario decidir si es necesario utilizar un patrón para para expresar lasmedidas en unidades del sistema internacional. En lo que respecta a los ensayos que debenrealizarse durante el desarrollo, no resulta necesario, ya que las pruebas de validación consisten endeterminar como influye la ubicación de una zona determinada en la proyección al momento demedir su superficie. Para esto basta con contar con patrones idénticos (sin importar su superficie)que puedan ser ubicados en la pieza de forma tal que queden distribuidos en distintos sectores dela proyección y posteriormente comparar los valores medidos por el sistema.

70

Page 85: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

5.2.3. Generación de reportes

Al momento de definir la forma mas adecuada para presentar los resultados de cada análisis,la consigna fue que los usuarios del sistema puedan manipular los datos en forma directa y sinnecesidad de capacitarse en el uso de una nueva herramienta específica. Una de las herramientasmas utilizadas para el procesamiento y representación gráfica de datos es Microsoft Excel, yteniendo en cuenta que la misma ofrece varias posibilidades para la importación de datos ycreación de interfaces gráficas, representa una alternativa adecuada.

Es importante destacar que al utilizar MS Excel, los usuarios no solo pueden visualizar en formaclara los resultados sino que pueden fácilmente extender la herramienta de reportes generandonuevos gráficos a partir de la información proporcionada y también realizar cálculos específicosdirectamente en la planilla.

En esta etapa del proyecto se trabajó en:

Generación de los archivos en los que se almacena los resultados del análisis.

Desarrollo de las funciones necesarias para que los resultados queden disponibles en unaplanilla de MS Excel.

Desarrollo de una interfaz gráfica que permita al usuario navegar en forma sencilla en unregistro histórico de estudios realizados.

Presentar en forma gráfica los resultados de los estudios.

La integración entre el módulo de análisis y la herramienta de reportes se da a través de dosarchivos: Una imagen en formato BMP y un archivo de texto plano.

La imagen es una versión de la proyección en la cual se identifican mediante un recuadronumerado todas las manchas que han sido medidas durante el análisis (ver figura 5.4). Esta imagenserá la referencia con la que contará el usuario al momento de evaluar los resultados y extraerconclusiones. El archivo de texto plano almacena la ruta hacia la imagen antes mencionada, ytodas las medidas de superficie tomadas durante el análisis. El archivo de texto plano no pretendeser un reporte al que se acceda directamente sino que es medio utilizado para exportar los datos(el usuario no necesita visualizar su contenido en ningún momento).

Un aspecto fundamental al momento de almacenar los datos generados por el módulo de análisis esel nombre de los archivos que se utilizarán. Es necesario que el nombre de estos archivos permitaque el usuario logre identificar el ensayo al que corresponden. Para esto se desarrolló una rutinaque genera los nombres de los archivos a partir de la fecha y la hora en que tiene lugar el análisis.Luego, desde MS Excel el usuario desplegará un menú que le permitirá seleccionar el ensayo delcual quiere visualizar los datos (ver figura 5.5). Luego de seleccionar el ensayo deseado, mediantela utilización de macros para MS Excel desarrolladas en Visual Basic, se procesa la informacióncontenida en el archivo de texto plano y se presenta:

El área y perímetro totales de la proyección.

Una tabla con el área y el perímetro de cada zona de la proyección analizada.

71

Page 86: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

Figura 5.4: Imagen que se incluye en el reporte. Las zonas de interés en las que se tomaron medidas seidentifican mediante un recuadro numerado

Figura 5.5: Interfaz que permite que el usuario selecciones el ensayo que desea visualizar

Imagen de la proyección con las zonas analizadas identificadas mediante un recuadronumerado.

Gráfico indicando que el porcentaje de la superficie de la pieza cubierta por manchas.

La figura 5.6 muestra un ejemplo de los reportes que se pueden obtener con la herramientadesarrollada.

72

Page 87: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

(a) Área, perímetro total y tabla con áreade manchas

(b) Imagen de la proyección

(c) Representación gráfica del porcentajedel área cubierta por manchas

Figura 5.6: Ejemplo de la información presentada en los reportes

73

Page 88: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 5. Módulo de análisis

74

Page 89: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 6

Calibración

6.1. Introducción

En este capitulo explicaremos, porque es necesario calibrar una cámara, el modelo de cámarautilizado, como se realiza la calibración y los resultados a los que llegamos.

La calibración de cámara permite corregir matemáticamente las principales desviaciones de lasimágenes tomadas por una cámara de uso domestico. Por mas que se fabrique con extremaprecisión una cámara, existirán en ella distintas imperfecciones que deforman la imagen obtenida.

El proceso de calibración de la cámara nos permitirá a través de su modelo matemático conocerel proceso de formación de imágenes de la cámara. De esta forma obtendremos los llamadosparámetros intrínsecos y de distorsión que caracterizan la óptica de la cámara de forma de corregirlas deformaciones en función de estos parámetros.

En este proyecto nos basamos en las funciones propuestas por OpenCV para calibración. Por lo queexplicamos los fundamentos teóricos detrás de estas funciones así como los modelos matemáticosutilizados por OpenCV.

6.2. Modelo Pinhole de la cámara

El modelo mas simple para representar una cámara (conjunto de lentes y sensor) es eldenominado ’lente delgada’. Este modelo consiste en un eje óptico y un plano perpendicular almismo, llamado plano focal, con un orificio circular ubicado en la intersección del eje óptico conel plano focal [21].

Sea un punto p en el espacio a una distancia Z del centro óptico a lo largo del eje y sea x ladistancia a la cual se cortan dos rayos provenientes del punto p (uno paralelo al eje y otro pasandopor el centro óptico) como muestra la figura 6.1. Se puede demostrar que todos los puntos quepasan por p convergen a x. Sea z la distancia de x al centro óptico en la dirección de eje óptico.Es fácil ver a partir de la figura 6.2 que los valores de Z y z están relacionados por:

1

Z+

1

z=

1

f

75

Page 90: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

Figura 6.1: Formación de una imagen

Donde f es la distancia sobre le eje óptico de x y es llamada distancia focal.

Si se hace tender a cero el radio de la lente delgada, todos los rayos pasarán por el centro óptico O

, por lo que todos los rayos seguirán en la misma dirección sin desviarse. Por lo tanto los únicospuntos que contribuyen a la imagen son los que pasan por el centro óptico O.

De estas premisas se deduce el modelo de cámara Pinhole. Donde si se tiene un punto del espaciop de coordenadas (X,Y, Z) en el sistema de referencia con origen en el centro de óptico y eje zigual al eje óptico, se pueden deducir sus coordenadas por triángulos semejantes que quedan de lasiguiente manera:

x = −f XZ, y = −f Y

Z(6.1)

Figura 6.2: Esquema del modelo pinhole y sus parámetros

Como se pude ver en la figura 6.2 la imagen del punto queda invertida, por lo que aparece unsigno de menos en las ecuaciones. Si suponemos que el plano proyectivo de la figura se sitúa aun a distancia z = f en lugar de z = −f podemos eliminar el signo de menos, a este modelose lo denomina Pinhole Frontal, cabe aclarar que esto es una idealización dado que no es posiblefísicamente. El modelo queda ahora como muestra la figura 6.3 y con las siguientes ecuaciones.

76

Page 91: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

x = f XZ, y = f Y

Z(6.2)

Figura 6.3: Modelo Pinhole Frontal

De este modelo surgen dos características claves:

La imagen proyectada esta siempre en foco.

El tamaño de la imagen del punto lejano queda dado por un único parámetro: la distanciafocal.

Es posible deducir un modelo matemático que establezca una correspondencia entre lascoordenadas 3D de un punto en el espacio con un las coordenadas 2D del punto en la imagen.Para esto se deben considerar una serie de transformaciones que se describen a continuación:

Transformación entre la coordenadas del punto en el espacio y las coordenadas de la cámara.

Proyección de las coordenadas espaciales 3D a coordenadas en el plano de la imagen 2D.

Consideramos un punto p en el sistema de coordenadas del espacio X0 = [X0, Y0, Z0] ∈ R3 .

Las coordenadas X=[X, Y, Z] del mismo punto en el sistema de coordenadas de la cámara estaránrelacionadas con X0 por una transformación de cuerpo rígido como describe la ecuación 6.3 dondeR representa una rotación y T una traslación.

X = RX0 + T (6.3)

Si ademas escribimos en forma matricial la ecuación 6.2 obtenemos:

x =

[

xy

]

=f

Z

[

XY

]

(6.4)

En la ecuación 6.4 x e y son las coordenadas del punto proyectado, (X,Y, Z) son lascoordenadas del punto en el espacio y f es la distancia focal.

En la siguiente etapa se deben llevar las coordenadas a homogéneas 1 dado que estas coordenadas

1las coordenadas homogéneas son un instrumento usado para describir un punto en el espacio proyectivo.

77

Page 92: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

son utilizadas por OpneCV para todas las funciones de calibración. Para esto pasamos x y X acoordenadas homogéneas de la siguiente manera:

Z

xy1

=

f 0 0 00 f 0 00 0 1 0

XYZ1

(6.5)

Esta ecuación asume que el origen del sistema de coordenadas de la imagen está en laintersección del eje óptico con el plano de la imagen llamado punto principal. Hasta este momentose ha trabajado con coordenadas en unidades de longitud pero necesitamos tenerlas en píxeles. Paraesto es necesario introducir un factor de escala que represente la cantidad de pixeles por unidadde longitud. Dado que por lo general los lados de los pixeles no son iguales se deben utilizar dosfactores uno en dirección x y otro en dirección y a los que se les llama sx y sy. Si llamamos xs eys a las coordenadas en pixeles, obtenemos:

xsys1

=

sx 0 00 sy 00 0 1

xy1

Se introducen dos nuevos parámetros cx y cy que modelan el desplazamiento del centro deplano proyectivo respecto al eje óptico. Este desplazamiento se debe a imperfecciones introducidasdurante la fabricación.

x′

y′

1

=

sx 0 cx0 sy cy0 0 1

xy1

Por ultimo teniendo que en cuenta que los pixeles pueden llegar a ser paralelogramos en lugarde rectángulos se debe agregar un factor denominado factor de skew, (sΘ) que representa el anguloΘ que puede existir entre el eje xs e ys por lo que tenemos:

x′

y′

1

=

sx sθ cx0 sy cy0 0 1

xy1

(6.6)

Combinando la ecuación 6.3 6.5 y 6.6 obtenemos el modelo completo que transforma lascoordenadas homogéneas de un punto en el espacio a las coordenadas en pixeles de su proyecciónen la imagen.

x′

y′

1

=1

Z

sx sθ cx0 sy cy0 0 1

f 0 0 00 f 0 00 0 1 0

[

R T0 1

]

X0

Y0Z0

1

(6.7)

Si combinamos las dos primeras matrices obtenemos la matriz A llamada matriz de parámetrosintrínsecos que caracterizan a la cámara.

A =

sx sθ cx0 sy cy0 0 1

f 0 00 f 00 0 1

=

fx s cx0 fy cx0 0 1

78

Page 93: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

Donde fx = fsx y fy = fsy, que son las distancias focales expresadas en pixeles. Latercer matriz es la que contiene los denominados parámetros extrínsecos de la cámara, está matrizcontiene los valores que dan la rotación y la traslación necesarios para llevar las coordenadas enel sistema de referencia del espacio a las coordenadas en referencia el sistema de referencia de lacámara, a estas se las denomina, coordenadas normalizadas.

Hasta ahora asumimos un modelo en el cual el lente se considero ideal. Sin embargo existenefectos de distorsión muy notorios introducidos por los lentes y por la forma en que se fabrica unacámara por lo que se deben incluir estas distorsiones en el modelado de la cámara.

Existen varios tipos de distorsiones sin embargo las que mas influyen en los resultados son laradial y la tangencial. OpenCv incluye funciones que permiten corregirlas.

La distorsión radial indica el desplazamiento que tiene el punto real proyectado sobre el idealproyectado. Este desplazamiento es nulo en el centro de la imagen pero aumenta radialmentecomo se pude ver en la imagen 6.4

Figura 6.4: Mapeo de la distorción radial

Para caracterizar esta distorsión se utilizan los primeros términos de la serie de Taylor dela función que caracteriza la deformación del lente (el lente ideal se supone parabólico peropor facilidad de fabricación los lentes presentes en una cámara Web son esféricos) [11] . Lasecuaciones que vinculan al punto proyectado antes de la corrección radial (x, y) y después de lacorrección radial (xcorregido, ycorregido) son las siguientes [7] :

xcorregido = x(1 + k1r2 + k2r

4 + k3r6)

ycorregido = y(1 + k1r2 + k2r

4 + k3r6)

La distorsión tangencial se modela utilizando los siguientes parámetros, p1 y p2, estosparámetros representan las distorsiones agregadas por defectos de fabricación , dado que al

79

Page 94: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

colocar el sensor de la cámara y el lente en la estructura, es difícil asegurar que los mismosqueden exactamente paralelos. Estos parámetros afectan menos el resultado que los anteriores.La ecuación que los caracteriza es:

xcorregido = x+ [2p1y + p2(r2 + 2x2)]

ycorregido = y + [p1(r2 + 2y2) + 2p2x]

De estas ecuaciones obtenemos los cinco parámetros de distorsión necesarios para utilizar lasrutinas de calibración de OpenCV.

6.3. Método de Calibración de OpenCV

Introducción

Una vez definido el modelo de la cámara y los parámetros intrínsecos y de distorsióndescribiremos como realiza OpenCV la calibración.

En general las rutinas de calibración utilizan imágenes de estructuras conocidas. A partir de estasimágenes es posible obtener los parámetros intrínsecos de la cámara, a estas estructuras se lesllama patrones.

Patrón de Calibración

A partir de capturas del patrón tomadas desde distintos ángulos es posible localizar puntosconocidos como ser esquinas y debido a los movimientos del patrón determinar la matriz derotación y el vector de traslación antes mencionados.

En principio cualquier estructura conocida serviría como patrón de calibración, sin embargo seutiliza un un patrón regular como ser un tablero de ajedrez 2. Un tablero formado por cuadradosblancos y negros tiene la ventaja de no introducir desviaciones hacia un lado en particular debidoa su simetría. A su vez la grilla de esquinas permite una detección a nivel de sub-pixel que sedescribe mas adelante.

Debemos recordar que lo que necesitamos encontrar los cuatro parámetros intrínsecos de lacámara (fx, fy, cx, cy) y cinco parámetros de distorsión , los tres radiales (k1, k2, k3) y los dostangenciales (p1, p2). Los parámetros intrínsecos están relacionados directamente con la geometría3D (por lo tanto con los parámetros extrinsicos) de donde se sitúa el patrón en el espacio. Losparámetros de distorsión modelan como la proyección 2D es deformada por la no-idealidad de lacámara.

Ahora debemos saber cuantas N esquinas y K imágenes del tablero en diferentes posiciones,necesitamos para poder hallar todas las incógnitas.

2La utilización de los tableros de ajedrez como patrones así como mucha de la teoría con la calibración de cámarasviene de los estudios realizado por Zhang [37]

80

Page 95: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

K imágenes del tablero , nos dan 2NK constantes (se multiplica por dos dado que cadapunto de la imagen tiene coordenadas x e y).

Tenemos 4 parámetros intrínsecos y 6K parámetros extrínsecos (tres que definen la rotacióny tres que definen la traslación).

Si resolvemos esto es fácil ver que 2NK ≥ 6K + 4 por lo tanto (N − 3)K ≥ 2, por lo quesi tomamos N = 5 y K = 1, en teoría seria suficiente. Sin embrago para obtener mayor robustezy por ciertos detalles matemáticos se exige que K sea mayor a 1 y para resultados de calidad setrabaja con un mínimo de 10 imágenes de tableros de por lo menos 7×8 cuadrados. Las funcionesde OpenCV para resolver los detalles matemáticos se basan en los métodos de Zhang [37].

Rutina de Calibración

Para realizar la calibración se utiliza una rutina que brinda OpenCV como ejemplo [7]. EstaRutina realiza las siguientes tareas para lograr calibrar la cámara:

Visualiza el tablero de ajedrez pre-definido por el usuario en distintas posiciones.

Captura la cantidad de imágenes pre definidas por el usuario del patrón en distintasposiciones (siempre que logre identificar las esquinas del tablero).

A partir de esta información computa los parámetros intrínsecos y los de distorsión

En primer lugar se debe definir el patrón que se va a utilizar, para esto se ingresan los siguientesparámetros:

n− boards: Cantidad de capturas que se quieren utilizar (por lo general 10 como mínimo).

board− dt: Es el tiempo que tengo entre capturas para re-ubicar el patrón.

board− w y board− h: cantidad de cuadrados a lo largo y a lo ancho (interiores)

Con estos datos ingresados la rutina define las variables donde va a guardar los resultados delos cálculos que realice. Luego de esto la rutina entra al primer loop y permanece hasta lograr las’n-boards’ capturas exitosas. Se entiende por captura exitosa aquellas donde se logra identificar latotalidad de esquinas del tablero. Entre captura y captura la aplicación le da al usurario el tiempo’board− dt’ para que el usuario mueva el tablero.

Las funciones utilizadas durante esta sub rutina son:

cvFindChessboardCorners: Esta función identifica las equinas y guarda toda la informaciónque se obtiene de estas con precisión a nivel de pixel.

cvFindCornerSubPix: Procesa los resultados entregados por cvF indChessboardCornerspy logra precisión de sub-pixeles.

81

Page 96: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

cvDrawChessboardCorners: Dibuja en la pantalla la ubicación de las esquinas detectadas.Esto permite que el usuario pueda visualizar los resultados en tiempo real durante el proceso decalibración.

Una vez que tenemos la información pasamos a la calibración de la cámara en si misma la cualutilizara esta información como inputs. Para esto la función que se utiliza es cvCalibrateCamera2

la cual tiene como objetivo conseguir la matriz de parámetros intrínsecos A y la matriz deparámetros de distorsión. A partir de estas matrices podremos corregir las imágenes.

Los argumentos que se le pasan a esta función son los siguientes:

objet-points: Esta es una matriz de N×3 que contiene las coordenadas físicas de cada puntodetectado en cada imagen del tablero 3 . Estos puntos están definidos en el sistema de coordenadassolidario al patrón. La información de estos puntos define de ahora en mas las unidades físicas yla estructura de nuestro sistema de referencia. Es decir si se utilizan por ejemplo cuadrados de 50mm de lado, , las coordenadas del espacio, las coordenadas de la cámara y del objeto quedaranexpresadas en mm/50.

image-points: Este segundo argumento es una matriz de N×2 que contiene las coordenadasen pixeles de los puntos obtenidos en objet − points. Es simplemente el resultado de haberllamado M veces a la función cvF indChessboardCorners descrita anteriormente y re-ordenarla información en pixeles.

point-counts: Se ingresa una matriz de M × 1 que contiene el numero de puntos detectadoen cada imagen.

image-size Es simplemente el tamaño de la imagen en pixeles de donde se obtuvo lainformación (el tamaño de las imágenes del tablero de ajedrez).

Los siguientes argumentos que utiliza la función cvCalibrateCamera2 son la matriz de parámetrosintrínsecos (intrinsic−matrix) y la matriz distortion− coeffs, estos tienen la particularidadde que pueden ser tanto entradas como salidas. En nuestro caso lo que queremos obtener de estafunción son precisamente estos valores por lo que los utilizamos como parámetros de salida. Laobtención de estos valores requiere la utilización de complejos algoritmos que implican estimarun conjunto de valores iniciales para luego ir corrigiendo sobre estos iterativamente hasta llegar auna solución adecuada. OpenCv utiliza los algoritmos de [37] para lograr encontrar estos valores.

Una ves que llegamos a los valores deseados, esta rutina deja disponible las dos matrices,intrinsic − matrix y distortion − coeffs en dos archivos XML con la información de losparámetros hallados.

3Dado que se utiliza un mismo patrón en distintas posiciones, los N puntos son en realidad M veces las posicionesde los mismos puntos en distintas posiciones

82

Page 97: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

Rutina de corrección

La rutina de corrección comienza por cargar las matrices intrínseca y de distorsión generadasen la sección anterior. Luego se procede a generar los mapas que se utilizaran para corregirla distorsión utilizando la función cvUndistortMap. Esta función entrega dos matrices quedeterminan la transformación que se de debe aplicar a los puntos de la imagen para corregir ladistorsión. Utilizando la función cvRemap, y proporcionando como parámetros las dos matricesanteriormente calculadas se obtiene una nueva imagen en la cual la ubicación de los puntos a sidomodificada corrigiendo la distorsión.

En este proyecto, como se explicó en el módulo de procesamiento se utilizan doscientas capturasde un tomate girando sobre su eje para generar una proyección. En este caso la generación delas matrices se realiza en una aplicación independiente que las deja disponibles en una ubicaciónconocida por el modulo de procesamiento. De esta forma es posible seleccionar antes de generarla proyección si se desea corregir o no las imágenes de entrada.

El efecto de la calibración en las proyecciones que se generan en este proyecto será analizadoen el capítulo correspondiente.

83

Page 98: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 6. Calibración

84

Page 99: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 7

Software implementado

7.1. Introducción

En este capítulo se detallará el software implementado en este proyecto. Se comenzaráexplicando la estructura general de las aplicaciones y luego se profundizará en cada componentede la misma.

7.2. Estructura General

Cada módulo de este proyecto cuenta con un desarrollo de software en el cual se hanimplementado los algoritmos que le permiten llevar a cabo las tareas para las que fue diseñado.El diagrama de bloques del softwre implementado para este proyecto se muestra en la figura 7.1.Es importante destacar que mientras el módulo de captura está compuesto por harware y software,los módulos de procesamiento y análisis son exclusivamente software. En la figura 7.1 podemosver que se han agrupado los bloques correspondientes al software de procesamiento y de análisis;la razón es que ambos fueron implementados en la misma aplicación, mientras que el software delmódulo de captura fue implementado en una aplicación totalmente independiente. Las razones por

Figura 7.1: Diagrama de bloques del software implementado en este proyecto

las cuales se decidió implementar la solución de esta forma son las siguientes:

El software del módulo de captura fue desarrollado utilizando OpenFrameworks. Lasaplicaciones desarrolladas utilizando este toolkit tienen una estructura predeterminada queno resulta conveniente para la implementación de los módulos de procesamiento y análisis.

En el software del módulo de captura se encuentran implementadas las interfaces conel motor y la cámara. Para ejecutar la aplicación es necesario que estos periféricos seencuentren conectados al PC, ya que de lo contrario se interrumpe la ejecución. Si se

85

Page 100: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

hubiese implementado toda la solución en una sola aplicación sería necesario que el usuarioseleccione si se encuentran conectados los periféricos o no, dependiendo si va a adquiririmágenes o simplemente procesar una secuencia previamente adquirida.

Se consideró adecuado que el proceso de adquisición de las imágenes pueda realizarseen forma independiente del procesamiento y análisis de las mismas. Esto permite que losusuarios puedan llevar a cabo una sesión de adquisición de imágenes utilizando varias piezasy pasar posteriormente a la etapa de análisis todas las secuencias adquiridas.

7.3. Módulo de Captura

En el software desarrollado para el módulo de captura se implementaron las interfaces conel motor que rota la pieza y la cámara. Esta aplicación se encarga de sincronizar la adquisiciónde imágenes con el movimiento del motor y almacenar las imágenes en el disco duro. Fuedesarrollado utilizando OpenFrameworks.

main:

Entradas:

• Datos provenientes de la cámara.

• Posición del eje de rotación ingresada por el usuario utilizando el mouse.

• Valores para las propiedades de la cámara.

• Cantidad de imágenes que tendrá cada secuencia.

Salidas:

• Secuencia de imágenes en formato .BMP.

• Archivo en fomato .txt conteniendo la posición del eje de rotación.

Flujo principal:

1. Se inicia la comunicación serial a 9600 bps en el puerto USB donde se ha conectado elmicrocontrolador.

2. Se inicia la comunicación serial con la cámara web en el puerto USB correspondiente.

3. Se despliega en pantalla la información proveniente de la cámara y se dibuja sobre cadaimagen una recta vertical que debe ser ubicada por el usuario sobre el eje de rotación dela pieza utilizando el mouse. En esta etapa el usuario puede ajustar las propiedades de lacámara.

4. Se genera un archivo .txt que contiene la posición del eje de rotación de la pieza seleccionadopor el usuario.

5. La aplicación permanece a la espera de que el usuario dispare la adquisición de unasecuencia de imágenes.

86

Page 101: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

6. Cuando el usuario dispara la adquisición de imágenes la aplicación repite el siguienteproceso imagen de la secuencia:

Captura la imagen que se está mostrando en pantalla en ese momento.

Almacena la imagen en el disco duro con un nombre de archivo que contiene el índicede esa imagen en la secuencia.

Solicita el avance del motor enviando un caracter ASCII por puerto USB.

Permanece a la espera de un caracter ASCII que envía el microcontroladorconfirmando que el motor ha alcanzado la posición solicitada.

7.4. Módulo de Procesamiento

En esta sección se describirán las rutinas desarrolladas para el módulo de procesamiento.Mediante estas rutinas se genera la proyección bidimensional de la superficie del tomate a partirde una secuencia de imágenes.

principal

Esta rutina es la principal del módulo de procesamiento. En la misma se definen las variablesglobales que se utilizan durante el procesamiento. El flujo de esta rutina determina el orden en elque se lleva a cabo cada etapa del procesamiento.

Flujo principal:

1. Se definen las variables globales

2. Se carga el archivo de texto donde se almacenó la posición del eje de rotación ingresado porel usuario.

3. Se carga la primer imagen de la secuencia que se va a procesar

4. Se despliega una ventana que permite ajustar el threshold para la detección de contornos yvisualizar el resultado del ajuste en tiempo real. Se permanece en este estado hasta que elusuario dispara el procesamiento de toda la secuencia de imágenes.

5. Cuando el usuario entiende que el threshold está correctamente ajustado, se repite elsiguiente proceso para cada imagen de la secuencia que se está procesando:

Se carga la siguiente imagen de la secuencia.

Se invoca rutina de detección de contornos.

Se almacenan los resultados de la detección en vectores.

6. Se reordenan los elementos de los vectores antes mencionados.

7. Se normaliza la información de contornos.

8. Se aplica transformación que genera proyección bidimensional.

9. Se analiza la proyección generada.

87

Page 102: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Figura 7.2: Diagrama de flujo de principal

cargarImagen

Esta rutina tiene por objetivo cargar en memoria una determinada imagen de la secuencia quese está analizando para que la misma pueda ser procesada. una vez cargada elimina la zona dela misma ubicada a la izquierda del eje de rotación ingresado por el usuario durante la captura.Entradas:

Índice de la imagen en la secuencia

Salidas:

IplImage (estructura de OpenCV para representar imágenes) conteniendo la imagencorrespondiente al índice del argumento.

IplImage monocromática, vacía, de dimensiones iguales a las de la imagen que se quierecargar. Esta imagen es utilizada por la rutina de detección de contornos durante elprocesamiento.

IplImage de tres canales, vacía, de dimensiones iguales a las de la imagen que se quiere

88

Page 103: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

cargar. Esta imagen es utilizada por la rutina de detección de contornos durante elprocesamiento.

Flujo principal:

1. A partir del índice que se proporciona como parámetro generar string que contiene la ruta ala imagen de la secuencia que se quiere cargar.

2. Se carga en memoria la imagen almacenada en la ubicación a la que lleva la ruta antesgenerada.

3. Se genera una versión monocromática de la imagen.

4. Se crean dos imágenes vacías de dimensiones idénticas a la imagen cargada anteriormente(una monocromática y la otra color).

5. Se traza un rectángulo en la versión monocromática de la imagen que cubre toda la regiónsituada a la izquierda del eje ingresado por el usuario. Este rectángulo determina que todala región cubierta por el mismo se ignorará en el resto del procesamiento.

Figura 7.3: Diagrama de flujo de cargarImagen

detectarContorno

Esta rutina contiene los algoritmos para detección de contornos. La misma es utilizada endos modalidades: Vista previa y análisis de secuencia. La modalidad vista previa se utiliza paraque el usuario pueda ajustar el valor de threshold. En esta modalidad el procesamiento se aplicaexclusivamente a la primer imagen de la secuencia. La modalidad análisis de secuencia procesatodas las imágenes de la secuencia.

Entradas:

Índice de la imagen de la secuencia que se quiere procesar.

Valor de threshold ingresado por el usuario mediante un trackbar.

Salidas:

Coordenadas de los puntos del contorno situados sobre el eje del tomate.

Coordenadas de los puntos del contorno situados sobre la superficie del tomate.

Radio máximo del contorno.

Cantidad de puntos del contorno.

89

Page 104: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Flujo principal

1. Reservar memoria para la detección de contornos.

2. Detectar contornos.

3. Para cada contorno detectado determinar si su perímetro es mayor que cierto valorpredefinido. Si no lo es, se descarta el contorno (se elimina de la secuencia donde sealmacenan los contornos detectados). El procesamiento continúa para los contornos cuyoperímetro supera el valor predefinido.

4. Dibujar el contorno sobre una copia de la imagen donde fue detectado.

5. Encontrar los puntos del contorno, situados sobre el eje, que tienen coordenada ’y’ máximay mínima.

6. Encontrar los puntos del contorno, situados sobre la superficie del tomate, que tienencoordenada ’y’ máxima y mínima.

7. Guardar la cantidad de puntos que forman el contorno.

8. Encontrar el radio máximo del contorno.

9. Mostrar en una ventana la imagen con el contorno dibujado.

10. Liberar la memoria que reservada.

procesarContornos

Esta rutina normaliza la información de los contornos. Identifica el punto con coordenada ’y’máxima y el punto con coordenada ’y’ mínima, situado sobre el eje, que está presente en todoslos contornos de la secuencia. A partir de las coordenadas de estos puntos, procesa el resto de lospuntos de cada contorno. Luego, calcula para cada punto de cada contorno, la longitud de arcoentre puntos consecutivos, y la longitud de arco acumulada desde el primer punto.

Entradas:

Coordenadas de los puntos del contorno situados sobre el eje del tomate.

Coordenadas de los puntos del contorno situados sobre la superficie del tomate.

Cantidad de puntos del contorno.

Salidas:

Coordenadas procesadas de los puntos del contorno situados sobre el eje del tomate.

Coordenadas procesadas de los puntos del contorno situados sobre la superficie del tomate.

Longitud de arco entre puntos consecutivos de un contorno.

90

Page 105: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Figura 7.4: Diagrama de flujo de detectarContorno

Longitud de arco acumulada entre el primer punto del contorno cada uno de los restantes.

Flujo principal

1. Apuntar al primer contorno de la secuencia

2. Se determina el punto con coordenada ’y’ máxima y el punto con coordenada ’y’ mínima,situado sobre el eje, que está presente en todos los contornos de la secuencia.

3. Se cargan los puntos del contorno que se está procesando en una estructuta ’cvMat’ (de aquíen mas vector original).

4. Se apunta al primer punto del vector original.

91

Page 106: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

5. Se recorre cada punto del vector original verificando si la diferencia entre la coordenada ’y’de dos puntos consecutivos es igual a uno (un pixel). Si se cumple lo anterior, el punto encuestión se copia en una nueva estructura cvMat que llamamos vector procesado. Si paradeterminado punto no cumple la condición, se inserta un punto en el vector procesado cuyacoordenada ’x’ es la misma del punto actual y su coordenada ’y’ es la del punto actual masun pixel.

6. Cuando se alcanza el último punto del contorno se procede a calcular en el vector procesadola longitud de arco entre puntos consecutivos y la longitud de arco acumulada.

7. se repite todo el proceso anteriormente descrito hasta completar todos los contornos de lasecuencia.

proyectarSuperficie

Esta rutina genera la proyección pseudocilíndrica de igual superficie a partir de la secuenciade imágenes y la información de los contornos. Para generarla, se recorre horizontalmente cadacuadrante de la imagen destino (inicialmente vacía) y para cada pixel de la misma se determinamediante una función cual es el píxel de la imagen de la secuencia que debe copiarse. Cadacuadrante de la imagen se recorre desde el origen de coordenadas ’x’, en sentido horizontal ycomenzando desde el ecuador.

Entradas:

Secuencia de imágenes.

Coordenadas procesadas de los puntos del contorno situados sobre la superficie del tomate.

Longitud de arco entre puntos consecutivos de un contorno.

Longitud de arco acumulada entre el primer punto del contorno cada uno de los restantes.

Salidas:

Proyección pseudocilíndrica de la superficie del tomate.

Flujo principal:

1. Cargar en memoria todas las imágenes de la secuencia para poder acceder a ellasrápidamente.

2. Calcular las dimensiones de la imagen destino (proyección) a partir de la información de loscontornos. Crear la imagen destino.

3. A partir de las longitudes de arco de los contornos calcular los límites norte y sur de laproyección.

4. Para cada línea horizontal de la imagen destino, repetir el siguiente proceso:

A partir de los radios de la pieza, calcular las coordenadas el último punto (borde dela proyección).

92

Page 107: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Figura 7.5: Diagrama de flujo de procesarContornos

Para la primer imagen de la secuencia, calcular el rango de pixeles que se copiarán.

Copiar los pixeles de la imagen origen a la imagen destino.

Cuando se alcanza el límite del rango, cargar la siguiente imagen.

5. Cuando se alcanza el último punto de la proyección repetir el proceso para la siguiente líneahorizontal.

93

Page 108: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Figura 7.6: Diagrama de flujo de proyectarSuperficie

getYorigen

Esta función es parte del archivo ’proyectarSuperficie’. Dado el índice de una imagen de lasecuencia y la coordenada ’y’ de un punto de la imagen destino, esta función calcula la coordenada’y’ del punto de la imagen de la secuencia que debe copiarse. En esta función se define lacorrespondencia entre los puntos de la proyección y los de la imagen original. El algoritmo recorreel vector que almacena la longitud del contorno indicado por el índice de imagen comenzandodesde el ecuador. Para cada punto de este vector compara la longitud del contorno entre el ecuadory el punto actual con la distancia en la imagen destino entre la proyección del ecuador y el puntoque de la misma que se pasó como argumento. Cuando se alcanza el punto del contorno en el que se

94

Page 109: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

cumple que la distancia entre el ecuador y este es mayor o igual que la distancia entre la proyeccióndel ecuador, sea su índice ’k’, y el punto que se pasó como argumento, la función entrega lascoordenadas del punto inmediatamente anterior ’k-1’. De esta forma se logra asignar informaciónde color a todos los puntos de la proyección, incluso a los nuevos puntos que se generan al corregirla perspectiva vertical (interpolación). El algoritmo debe adaptarse para poder trabajar en sentidoecuador-norte y ecuador-sur. Por esta razón se han implementado dos versiones: ’getYorigenNorte’y ’getYorigenSur’. También fue necesario implementar versiones de estas funciones que permitantrabajar con punteros y con índices. El funcionamiento de estas versiones es idéntico al descrito.

Entradas:

Índice de la imagen de la secuencia de la cual se extraerá la información de color.

Coordenada ’y’ del punto de la imagen destino para el cual se quiere determinar lainformación de color (punto actual).

Longitud de arco acumulada entre el primer punto del contorno cada uno de los restantes.

Salidas:

Coordenada ’y’ del punto de la imagen de la secuencia que se debe copiar.

Flujo principal:

1. A partir del indice de imagen que se pasa como argumento, apuntar al vector que almacenalas longitudes de contorno correspondiente.

2. Comenzando desde el punto del controno situado en el ecuador, para cada punto delcontorno compara la longitud entre el ecuador y dicho punto con la distancia entre el ecuadorde la proyección y el punto de la misma cuya coordenada ’y’ se pasó como argumento.

3. Cuando se encuentra el punto del contorno en el cual se cumple que la longitud del contornoentre el ecuador y éste es igual o mayor que la distancia entre la proyección del ecuador yel punto cuya coordenada ’y’ se pasó como argumento, la función entrega como resultadola coordenada ’y’ del punto de la imagen de la secuencia que debe copiarse. La coordenda’x’ ya está dada por un contador ya que se avanza de a 1 pixel en sentido horizontal.

95

Page 110: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Figura 7.7: Diagrama de flujo de getYorigen

7.5. Módulo de Análisis

analizarImagen

Esta rutina permite medir el área y perímetro de la proyección bidimensional y de zonasde interés dentro de la misma. Como se explicó anteriormente esta rutina genera los archivosnecesarios para visualizar un reporte en MS Excel. Entradas:

Proyección bidimensional de la superficie del tomate.

Salidas:

Archivo .txt que contiene las medidas tomadas.

Flujo principal:

1. Generar nombres de arcivo para el .txt y la imagen que se utilizarán para guardar lainformación del reporte. Estos nombres contienen la fecha y la hora en que fueron creados.

2. Ajustar el valor de threshold para la detección del contorno exterior de la proyecciónbidimensional.

3. Detectar contorno exterior. Permanece en este estado hasta que el usuario presiona el botón’OK’ indicando que el threshold está correctamente ajustado.

4. Almacenar en archivo .txt: Ruta a la imagen, valor de área y perímetro exterior.

96

Page 111: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

5. Desplegar ventanas que se utilizarán para la detección de manchas: Imagen de la proyecciónbidimensional y panel en el cual se visualiza region de intés ampliada. Luego de desplegarestas ventanas el usuario está en condiciones de almacenar una medida. Esto se realizapresionando el botón ’GUARDAR’ ubicado en el panel.

6. Definir ROI en la posición indicada por el usuario con el mouse. El tamaño de esta ROIpuede ser modificado por el usuario mediante un trackbar.

7. Comenzar la detección de contornos en la ROI, utilizando el procedimiento OTSU paradefinir el valor de threshold. Si el usuario modifica el valor de threshold mediante trackbardel panel, se deja de utilziar OTSU y se asigna al threshold el valor del trackbar.

8. Cada vez que el usuario presiona el botón ’GUARDAR’ se escribe en el archivo .txt unanueva línea en la cual se incluye el identificador de la mancha que se midió y superficie yperímetro de la misma. También, en la imagen del reporte se dibuja un rectángulo numeradocon el identificador de la mancha, que rodea la mancha en cuestión.

97

Page 112: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 7. Software implementado

Figura 7.8: Diagrama de flujo de analizarImagen

98

Page 113: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 8

Validación

8.1. Introducción

En este capítulo se explicarán las pruebas que se realizaron para evaluar el desempeño de lasproyecciones bidimensionales generadas durante este proyecto. El objetivo de dichas pruebas esdeterminar cual de las tres proyecciones resulta mas adecuada para tomar medidas de superficie deciertas zonas de interés de la pieza que se está analizando. En primer lugar se explicará el ensayorealizado, justificando las medidas que se tomaron, y posteriormente se presentarán los resultados.Finalmente se interpretarán dichos resultados y se extraerán las conclusiones.

8.2. Ensayo realizado

Al momento de definir un ensayo que permita comparar las proyecciones realizadas losprincipales aspectos que se tuvieron en cuenta fueron:

No se dispone de información suficientemente precisa que permita convertir las medidastomadas en pixeles a unidades del sistema internacional.

Se desea evaluar la precisión con que cada proyección es capaz de representar en dosdimensiones la superficie de cierta zona de interés de la pieza, independientemente de laubicación de dicha zona.

Se desea estimar el error que se comete al tomar medidas de área en las proyeccionesbidimensionales generadas en este proyecto.

El hecho de no contar con la posibilidad de convertir en forma precisa las medidas tomadas enpixeles a unidades del sistema internacional, determina que es necesario tomar medidas relativas auna cierta superficie. A modo de ejemplo consideremos un tomate en el cual se ha identificado unamancha cuya superficie quiere medirse. Al tomar la medida obtendremos una cantidad expresadaen pixeles cuadrados. Dicha medida, por si sola no aporta información útil para el análisis delproceso de maduración del tomate, pero si contamos también con la medida de la superficie totalde la proyección en pixeles cuadrados, podemos expresar la superficie de la mancha como elporcentaje de superficie total de la pieza cubierta por la mancha. Es de esta forma que se expresanlas medidas de superficie en este proyecto.

99

Page 114: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

Para poder estimar el error que se comete al medir la superficie de una cierta región se decidiócomparar las medias tomadas en las proyecciones con medidas tomadas directamente sobreobjetos conocidos. para esto es necesario que tanto la superficie de la zona de interés como lasuperficie total de la pieza que se utilice para el ensayo sean conocidas. Para lograr esto se decidióutilizar como pieza una esfera y como zona de interés patrones circulares (auto adhesivos) quepueden ser fácilmente dispuestos sobre la esfera.

Utilizando un calibre se midieron con una precisión de 0,05 mm los diámetros de la esfera ydel patrón circular, y a partir de estas medidas se calculó la superficie de ambos. Hecho esto, seprocedió a calcular el porcentaje de la superficie de la esfera cubierta por el patrón circular. Paraestos ensayos se utilizó como esfera una pelota de golf convencional cuya superficie fue pintadacon color rojo para permitir que el sistema la detecte, y los patrones utilizados fueron etiquetas depapel circulares. Las medidas de estos elementos son las que se muestran en la tabla 8.1.Teniendo en cuenta los fundamentos geométricos de cada una de las proyecciones, se sabe que laubicación del patrón en la esfera determina la forma que adquiere al ser proyectado. Para poderestudiar el impacto que tiene este fenómeno en la medida de superficie de dicho patrón se decidiódistribuir múltiples patrones en toda la superficie de la esfera. Al decidir la ubicación de cadapatrón en la esfera se procuró que todos puedan ser medidos en las tres proyecciones (por lotanto no se ubicó ninguno en los polos). La figura 8.1 muestra la esfera utilizada y los patronesadheridos a su superficie. Una vez que dispuestos los patrones sobre la superficie de la esfera se

Figura 8.1: Vista frontal de la esfera (pelota de golf) con patrones circulares adheridos a susuperficie

procedió a adquirir la secuencia de imágenes. El proceso de captura se llevó a cabo del mismomodo que para el caso de los tomates. Obtenida la secuencia de 200 imágenes se generaron apartir de la misma las tres proyecciones: Pseudocilíndrica, con corrección vertical, y de anchoconstante. Las proyecciones generadas se muestran en la figura 8.2. Utilizando el módulo deanálisis de este proyecto se procedió a tomar las medidas de superficie de los patrones en cadauna de las proyecciones. Se decidió tomar las medidas de forma tal que los reportes resultantesen cada caso mantengan la misma numeración de los patrones con el objetivo de poder compararlas áreas de cada uno de ellos en forma sencilla. Si bien en la proyección pseudocilíndrica lospatrones que en las primeras imágenes de la secuencia de imágenes se ubican en el centro de laescena quedan ubicados en el centro de la proyección, en las proyecciones de ancho constante ycorrección vertical dichos patrones quedan ubicados en la zona derecha. Este hecho debe ser tenidoen cuenta para lograr que la numeración de los patrones sea la misma en las tres proyecciones.

100

Page 115: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

(a) Pseudocilíndrica (b) Corrección vertical

(c) Ancho constante

Figura 8.2: Proyecciones bidimensionales de esfera con patrones

Debido a que la diferencia de color entre la superficie de la esfera y los patrones es significativa,durante el análisis de las proyecciones ocurrió que para la mayor parte de las mediciones el valorde threshold que calcula el sistema sin intervención del operador mediante el método de OTSUresutaba adecuado.

La figura 8.3 muestra las imágenes que resultan del análisis de las tres proyecciones. En estafigura puede verse el rectángulo numerado que se dibuja sobre cada patrón medido. De acuerdo alo ya explicado al momento de describir el módulo de análisis, junto con estas imágenes se generaun archivo de texto que contiene las medidas de superficie de cada patrón.

101

Page 116: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

(a) Medidas tomadas en proyección pseudocilíndrica

(b) Medidas tomadas en proyección con corrección vertical

(c) Medidas tomadas en proyección de ancho constante

Figura 8.3: Imágenes resultantes de la medición de la superficie de los patrones en las tres proyecciones.La numeración de los patrones se mantiene en las tres proyecciones.

102

Page 117: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

8.3. Medidas

A continuación se explican las medidas que se realizaron durante el proceso de validación.

8.3.1. Promedio de superficie total cubierta por el patrón

A partir de las 32 medidas de superficie del patrón que se obtienen para cada proyección y lasuperficie total de cada una de ellas, se calcula el promedio de superficie cubierta por el patrón.Este dato se comparó con la proporción real (calculada a partir del diámetro de la esfera y delpatrón utilizados para el ensayo).

8.3.2. Desviación estándar

Se calculó la desviación estándar del conjunto de medidas de porcentaje de superficie cubiertapor el patrón. Esta es una medida fundamental para comparar el desempeño de cada proyección.Teniendo en cuenta que la superficie de los patrones utilizados para esta prueba es la misma,si la proyección es adecuada para la medición de superficies, es de esperar que las medidas desuperficie de los patrones realizadas en la misma sean iguales. Si en una proyección las medidasde la superficie de los patrones difieren significativamente, la desviación estándar será mas altaque la desviación estándar de las medidas realizadas en una proyección en la cual las medidas sonsimilares. De este modo, comparando las desviaciones estándar es posible comparar el desempeñode cada proyección y definir cual de las tres es mas adecuada para realizar medidas de superficie.

8.3.3. Histograma

Para cada proyección se generó el histograma de las medidas de porcentaje de superficiecubierta por el patrón. Esta representación permite entre otras cosas visualizar en forma claralos resultados de la comparación de las desviaciones estándar.

8.4. Resultados experimentales

Las medidas tomadas en la esfera y en el patrón utilizado son los siguientes:Los resultados obtenidos a partir del análisis de las medidas realizadas en cada proyección son

los siguientes:

8.4.1. Interpretación de los resultados experimentales

Comparando el porcentaje de superficie cubierta por el patrón en cada proyección (tabla B.1)con el dato real (tabla 8.1) podemos ver que el correspondiente a la proyección con correcciónvertical es el que mas se asemeja. Esto sugiere que las medidas de superficie tomadas en dicha

Radio (mm) Área total (mm2) Superficie cubiertapor patrón ( %)

Pelota de Golf 21,35 5.728,03Patrón Circular 4,05 51,53 0,90

Tabla 8.1: Medidas de la pelota y el patrón

103

Page 118: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

Proyección Área total(pixeles2)

Promedioárea patrón(pixeles2)

Promedio deáreatotal cubiertapor el patrón( %)

DesviaciónEstándar( %)

Pseudocilíndrica 207.681 2.184 1,05 5Corrección Vertical 239.236 2.254 0,94 19Ancho Constante 148.506 1.491 1,00 7

Tabla 8.2: Comparación de las medidas tomadas en las tres proyecciones

Figura 8.4: Histograma de las medidas de porcentaje de superficie total cubierta por el patrón paracada proyección. Los intervalos considerados son de 0.1 %.

proyección son las que mas se condicen con la realidad. Sin embargo, al comparar la desviaciónestándar de las medidas de cada proyección vemos que la proyección con corrección verticalpresenta el mayor valor (19 %). Esto quiere decir que las medidas de superficie tomadas enla proyección con corrección vertical difieren sustancialmente del promedio (lo cual es unacaracterística no deseada en una proyección si se pretende tomar medidas de superficie en ella).

El siguiente valor de superficie cubierta por el patrón que mas se asemeja al real, es elcorrespondiente a la proyección de ancho constante. En este caso la desviación estándarcorrespondiente a esta proyección tiene un valor razonable (7 %). Esta desviación estándar essimilar a la calculada a partir de los datos de la proyección pseudocilíndrica (5 %). Para compararestas dos proyecciones nos referiremos a los histogramas mostrados en la figura 8.4. En la mismapodemos ver que el histograma de la proyección pseudocilíndrica (color rojo) es notoriamente masangosto que el de la proyección de ancho constante (color verde). Esto indica que la mayor partede las medidas tomadas en la proyección pseudocilíndrica se ubican en un rango (entorno al valor

104

Page 119: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

promedio) mas acotado que las medidas tomadas en la proyección de igual área. Lo anterior secondice con la diferencia en la desviación estándar de estas proyecciones.

Otro aspecto importante que puede visualizarse en los histogramas de la figura 8.4 es elmayor grado de simetría que presenta el histograma de las medidas tomadas en la proyecciónpseudocilíndrica frente al histograma correspondiente a la proyección de ancho constante. Estoindica que las medidas tomadas en la proyección pseudocilíndrica se distribuyen uniformementeentorno al valor promedio. Esto no ocurre en la proyección de ancho constante

El valor promedio de las medidas de superficie cubierta por el patrón tomadas en la proyecciónpseudocilíndrica es mayor que el real. Esto indica la existencia de un sesgo que podemos visualizarclaramente en el histograma correspondiente. En el capítulo correspondiente a las conclusiones semencionarán las causas de la existencia del sesgo y se propondrán formas de atenuar el efecto quetiene en las medidas de superficie.

105

Page 120: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 8. Validación

106

Page 121: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Capítulo 9

Conclusiones

En este capítulo se presentarán las conclusiones extraídas durante el desarrollo de esteproyecto. Se comenzará con las conclusiones generales, asociadas a los objetivos planteados, yluego se presentarán conclusiones específicas de cada etapa del proyecto. Por último se incluye unasección en la cual se enumeran las posibles funcionalidades que pueden incorporarse al sistema enun futuro.

En esta sección también se incluyen dos apéndices asociados en los cuales se enumeran posiblesmejoras para el prototipo actual y detalles a cerca de la gestión del proyecto.

9.1. Conclusiones generales

A continuación se realiza una evaluación del trabajo realizado basada en los objetivos delproyecto:

1. Se logró desarrollar un sistema (hardware y software) capaz de generar una proyecciónpseudocilíndrica de la superficie de un tomate a partir de una secuencia de imágenes. Lascaracterísticas de la proyección pseudocilíndrica que genera el sistema permiten que en lamisma se puedan tomar medidas de superficie cometiendo un error aceptable.

2. La herramienta desarrollada para analizar la proyección es capaz de detectar en formaautomática o manual regiones de interés de la pieza que se está estudiando y calcular lasuperficie de dichas regiones. Estas medidas son adecuadas para analizar el proceso demaduración del tomate.

3. Los reportes que genera el sistema permiten comprar resultados de estudios sucesivos quese realicen a una misma pieza.

4. Se logró extraer la información de la pieza necesaria para llevar a cabo la estimacióndel volumen de la misma. Debido a que el cálculo de volumen no era un requerimientoprioritario esta funcionalidad no fue implementada y se considera como una mejora aincorporar en una versión posterior.

107

Page 122: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 9. Conclusiones

9.2. Conclusiones particulares

Módulo de captura

Es posible construir con bajo presupuesto un sistema que permita adquirir imágenesadecuadas para generar proyecciones bidimensionales de objetos.

Se pudo comprobar que el soporte utilizado para sostener la pieza que se está analizando esun componente de suma importancia. El mismo debe ser capaz de transmitir el torque delmotor sin dañar la pieza y ocultando la menor cantidad de superficie posible. Para lograrun soporte adecuado es importante el diseño del mismo (forma) y el material con el que seconstruye. El diseño del soporte debe prever la variedad de formas que presentan las piezasque se analizarán (en este caso tomates).

Para lograr condiciones lumínicas independientes del entorno resulta adecuado utilizar unrecinto dentro del cual pueda ubicarse el sistema de captura. Se pudo comprobar que elFoam Board es un material adecuado para construir un recinto de este tipo.

Las cámaras web de uso doméstico permiten obtener imágenes con calidad suficiente paralograr los objetivos de este proyecto. El desarrollo de interfaces para este tipo de cámaras esrelativamente sencillo y puede realizarse utilizando herramientas gratuitas.

Los motores paso a paso resultan adecuados para esta aplicación por las siguientes razones:

• La precisión de los pasos.

• Facilidad de control.

• Torque adecuado.

• Ampliamente disponibles.

Módulo de procesamiento

Se pudo comprobar que la detección de bordes es una técnica adecuada para adquiririnformación sobre la forma de la pieza cuando se utiliza una configuración como la que seeligió para este proyecto (pieza rotando y cámara fija). Otras técnicas evaluadas requierenla incorporación de hardware adicional (como por ejemplo otra cámara o rayos láser) y estoincrementaría el costo del sistema.

El proceso de extracción de la información de color de la pieza está estrechamente asociadoal tipo de proyección que se quiera generar. Al momento de generar la proyección de unapieza no resulta conveniente independizar el procesamiento de la información de color delprocesamiento de la información sobre la forma; el motivo es que si el procesamientode la información se realiza en forma independiente resulta sumamente difícil lograr unaproyección homogénea y continua (sin espacios entre las secciones que la componen).

Se lograron generar tres proyecciones bidimensionales de la superficie del tomate:Proyección de ancho constante, proyección con corrección vertical y proyecciónpseudocilíndrica. En el caso de las proyecciones de ancho constante se comprobó que esadecuado proyectar los puntos en forma directa (calcular coordenadas destino a partir de

108

Page 123: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 9. Conclusiones

coordenadas origen). En el caso de la proyección pseudocilíndrica se comprobó que seobtienen mejores resultados proyectando los puntos en forma inversa (calcular coordenadasorigen a partir de coordenadas destino).

Luego de evaluar cuantitativamente el desempeño de cada una de las proyeccionesgeneradas, se logró identificar una de ellas como la mas adecuada para tomar medidas desuperficie.

La interpolación distorsiona notoriamente las imágenes que genera este sistema. Teniendoen cuenta que no es posible evitar esta etapa del procesamiento es importante aplicarla deforma tal que se minimicen los efectos no deseados.

La cantidad de imágenes que se utiliza para generar la proyección impacta sensiblemente enla calidad de la misma.

Se pudo comprobar que OpenCV es una herramienta adecuada para implementar losalgoritmos que generan las proyecciones bidimensionales.

Módulo de análisis

La segmentación de regiones mediante umbrales y posterior extracción de contornos es unatécnica adecuada para la medición de superficies en las proyecciones que se generan en esteproyecto.

OpenCV es una herramienta adecuada para la implementación de rutinas para elprocesamiento de imágenes pero pero tiene limitaciones importantes para el desarrollo deinterfaces gráficas de usuario(GUI).

Se pudo comprobar que el método de OTSU resulta adecuado para encontrar en formaautomática valores de umbral cercanos al óptimo durante la detección de zonas de interésen las proyecciones.

Calibración

Es necesario llevar a cabo la calibración del sistema debido a que independientemente de lacalidad de la cámara utilizada, los errores durante el proceso de fabricación y las distorsionesintroducidas por los lentes siempre están presentes.

OpenCV proporciona rutinas que permiten llevar a cabo la calibración del sistema en formaadecuada. Estas rutinas están basadas en los métodos mas difundidos en el terreno de lavisión artificial.

Los resultados obtenidos aplicando la corrección resultante del proceso de calibraciónprácticamente no difieren de los obtenidos sin aplicar corrección. La razón por la cualocurre esto es que la precisión del sistema no es suficientemente elevada como para quelas correcciones sean perceptibles.

109

Page 124: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 9. Conclusiones

Validación

El ensayo realizado para validar las medidas de superficie que se toman con este sistemaes adecuado ya que permite trabajar con medidas relativas a la superficie total. Esto evitaque se introduzcan errores al convertir medidas tomadas en pixeles a unidades del sistemainternacional.

La desviación estándar de las medidas de superficie es una medida adecuada para cuantificarla capacidad de corrección del efecto de la perspectiva de cada tipo de proyección.

La proyección con corrección vertical no resulta adecuada para tomar medidas de superficie.La razón fundamental es que las medidas tomadas en ella tienen una elevada desviaciónestándar. Esto quiere decir que es muy factible que regiones de igual área de la pieza quedenrepresentadas en la proyección como regiones de área diferente. Otro resultado que debeconsiderarse es que el histograma correspondiente a esta proyección presenta dos modos.Esto implica que la distribución de las medidas de superficie no es uniforme entorno alpromedio.

Las medidas tomadas en la proyección de ancho constante presentan una desviaciónestándar aceptable (7 %). Sin embargo, el histograma correspondiente a esta proyecciónes notoriamente asimétrico. Teniendo en cuenta que el área de todos los patrones utilizadospara la validación es la misma, si la proyección es adecuada, todas las medias tomadasdeberían resultar distribuidas uniformemente entorno a un valor promedio. La asimetríaen el histograma indica que lo anteiror no ocurre. Por esta razón la proyección de anchoconstante no resulta la mas adecuada para llevar a cabo un análisis cuantitativo. De todosmodos, debido a que esta proyección permite obtener una representación bidimensionalhomogénea y visualmente representativa de la superficie del objeto, puede ser utilizada pararealizar análisis cualitativo.

La proyección pseudocilíndrica es la que demostró ser la mas adecuada para tomar medidasde superficie. La desviación estándar de las medidas tomadas en ella fue la menor de las tres(5 %). El valor promedio calculado a partir de estas medias es superior al real. Este sesgo esatribuible a una subestimación de la superficie total de la proyección. Esta subestimación sedebe principalmente a la zona de la pieza que permanece oculta durante la adquisición deimágenes debido al soporte donde se apoya la pieza.

La razón por la cual la zona oculta por el soporte tiene mayor impacto en la proyecciónpseudocilíndrica es que las proyecciones de ancho constante y con corrección verticaldan como resultado una superficie total proyectada mayor que la real. Esto ocurre comoconsecuencia de no contemplar las variaciones que experimenta el radio de la pieza amedida que nos desplazamos desde el ecuador hacia los polos. Esta diferencia entre lasuperficie proyectada y la real compensa la diferencia introducida por la zona oculta porel soporte. Teniendo en cuenta que la proyección pseudocilíndrica da como resultado unárea proyectada total mas cercana a la real, la diferencia introducida por la zona de la piezaoculta por el soporte impacta sensiblemente en las medidas relativas a las superficie totalprovocando un sesgo.

110

Page 125: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 9. Conclusiones

9.2.1. Trabajo a futuro

En esta sección se enumerarán algunas funcionalidades que sería viable incorporar a cortoplazo utilizando el sistema en sus condiciones actuales. La incorporación de estas funcionalidadesse lograría exclusivamente mediante desarrollo de software.

Estimación del volumen de la pieza: Esta funcionalidad fue planteada como opcional alprincipio del proyecto. Actualmente el sistema extrae de las imágenes toda la informaciónnecesaria como para realizar esta estimación.

Detección de color: El sistema permitiría determinar la porción de la superficie total cubiertapor determinado color.

Representación tridimensional de la pieza: El sistema podría generar un modelotridimensional del objeto que se está analizando.

111

Page 126: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Capítulo 9. Conclusiones

112

Page 127: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Apéndice A

Introducción al procesamiento deimágenes

En este apéndice se incluye una descripción de pruebas realizadas con el objetivo de tomarcontacto de las principales técnicas de procesamiento de imágenes. Para las mismas su utiliza unaversión de libre distribución de MATLAB.

ECUALIZACIÓN DE HISTOGRAMA La ecualización de histograma es un procedimientoque permite aprovechar la totalidad el rango de valores posibles de intensidad. Para ello seimplementa una transformación que amplía el rango dinámico de la imagen. Esto es, dispersarlos valores de intensidad de la imagen de salida de forma tal que no queden intervalos del rangode intensidades (niveles de gris) sin usar.

El histograma de una imagen muestra, para cada nivel de intensidad posible (eje x), la cantidad depixels que toman dicho valor de intensidad (eje y).

Figura A.1: Imagen y su histograma

A partir de la información provista por el histograma se puede calcular la probabilidad deque un píxel de la imagen tenga asociado un determinado valor de intensidad i perteneciente alintervalo de 0 a L-1:

113

Page 128: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

p(xi) =ni

n, i ∈ 0, ....L− 1 (A.1)

En la ecuación A.1 ni es el número de ocurrencias de un determinado nivel de intensidad(cantidad de pixels con cierto valor de intensidad i, representadas en el eje y del histograma), n esla cantidad total de pixels que componen la imagen y L es la cantidad de niveles de intensidad delrango dinámico (en el ejemplo de la figura A.1).

La función de distribución de probabilidad de la variable aleatoria discreta x(que representa laintensidad o nivel de gris de un pixel) es la siguiente:

c(i) =∑i

j=1p(xj) (A.2)

Como se ve en la ecuación A.2 al variar j, xj tomará el valor de cada nivel de intensidadposible. La función c(i) indica la probabilidad de que un píxel de la imagen tome un valor dede intensidad menor o igual a i. En la figura A.2 se calcula c(i) (función de distribución deprobabilidad) para una imagen que tiene 256 niveles de intensidad posible.

Figura A.2: Distribución de Probabilidad

La transformación que se utiliza para llevar a cabo la ecualización de histograma es la propiafunción distribución de probabilidad, o en otras palabras es la suma acumulativa de los valoresnormalizados del histograma de la imagen de entrada. Lo que se hará es mapear los niveles deintensidad de la imagen original utilizando la curva que representa la distribución de probabilidad.Por lo tanto:

T (xi) = c(i) =∑i

j=1p(xj) (A.3)

yi = T (xi) =∑i

j=1

ni

n(A.4)

En la ecuación A.4 yi es el nuevo nivel de intensidad asociado al nivel xi de la imagen original.En la figura A.3 se puede ver la imagen de entrada con su correspondiente histograma y

el resultado de aplicarle ecualización de histograma. MATLAB permite ingresar la cantidad deniveles de intensidad de la imagen de salida. En la figura se usaron 256 (igual a la cantidad deniveles de la imagen de entrada) con el objetivo de ver la redistribución que realiza esta funcióny sus efectos. En el histograma de salida se puede ver como la función dispersa los valores a lolargo del rango 0 a 256, ocupando zonas del rango que no se ocupaban originalmente.

114

Page 129: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

Figura A.3: Ejemplo de ecualización de histograma

El incremento en el contraste que se logra con este tipo de procesamiento se debe a la dispersiónde los valores del histograma resultante a lo largo de toda la escala 0 a 256. El incremento enla claridad global de la imagen responde a que, como consecuencia de lo anterior el nivel deintensidad promedio de la imagen procesada es mayor que el de la original.

Para mostrar la utilidad de este tipo de procesamiento se tomo una imagen cuyos niveles deintensidad se encuentran dentro de los 50 valores más bajos del rango (zona mas oscura) y seaplica ecualización de histograma. En la imagen A.4 se muestra el resultado así como también lafunción distribución de probabilidad utilizada para mapear los valores de intensidad.

El histograma de la imagen de salida muestra como se ocupan zonas del rango dinámico queno estaban siendo utilizadas en la imagen original.

La función de distribución de probabilidad muestra que si recorremos el intervalo 0 a 50 (eje xde la gráfica) cubrimos todo el intervalo 0 a 1 (del eje y de la gráfica). Esta característica es la quese aprovecha a la hora dispersar el histograma de la imagen y obtener incremento en el contraste.

ESPECIFICACIÓN DE HISTOGRAMA Como vimos antes en la ecualización de histogramala transformación que se aplica para obtener la imagen procesada es la distribución deprobabilidad. Este método es muy útil en determinadas situaciones pero en algunos casos noproduce resultados aceptables.

Existe un método llamado especificación de histograma mediante el cual se define la formadeseada del histograma de la imagen de salida. La imagen de salida, o imagen procesada se obtienehallando la inversa de la transformación utilizada en la ecualización de histograma.

Como ejemplo de este método de procesamiento usaremos la imagen que se muestra en la figura

115

Page 130: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

Figura A.4: Otro ejemplo de ecualización de histograma

A.5 en la cual predominan las áreas oscuras resultando un histograma caracterizado por unaelevada concentración de pixels en la zona oscura del rango (zona baja de la escala de grises).Teniendo en cuenta lo visto anteriormente en el método de ecualización de histograma, seríarazonable aplicar ese tipo de procesamiento. Sin embargo como se puede ver en la figura A.6este método no produce resultados aceptables ya que el histograma de la imagen procesada resultaser básicamente el histograma de la imagen original desplazado hacia la zona clara de la escalade grises, razón por la cual la imagen resultante tiene un aspecto lavado. El motivo por el cualel histograma resultante tiene estas características es la elevada concentración de pixels en cero ocerca de este valor.

Figura A.5: Especificación Histograma Imagen Original

La figura A.7 muestra el resultado de aplicar especificación de histograma. El criterio que seutilizó para definir la forma del histograma a utilizar se basa en la observación del histogramaoriginal. En la imagen original (A.5) de este ejemplo podemos ver que en el histograma se

116

Page 131: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

Figura A.6: Resultado de aplicar Ecualización de Histograma

diferencian dos acumulaciones principales. La idea es mantener esta forma pero intentando alejaral cúmulo inferior del origen de la escala manteniendo transiciones suaves a medida que seincrementa el valor de intensidad. En cuanto al cúmulo superior, se intenta también que lastransiciones sean suaves y que se mantenga en la medida de lo posible la amplitud relativa alcúmulo principal. La figura A.8 muestra el histograma especificado

Este método de procesamiento permite obtener una fotografía mas clara manteniendo lanaturalidad en los tonos y el contraste es en principio aceptable. Si el método es adecuado o noobviamente dependerá de la imagen original y el objetivo con el cual se este procesando la misma.

Figura A.7: Resultado de aplicar Especificación de Histograma

MATLAB permite modificar en forma manual los parámetros que definen la forma de la curva.Es una curva tipo gaussiana de dos modos y mediante esta función puede determinarse donde secentra cada modo, sus amplitudes y sus desviaciones estándar

117

Page 132: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

Figura A.8: Histograma Especificado

FILTRADO ESPACIAL LINEAL El proceso de filtrado espacial lineal se basa en la operaciónmatemática convolución, cuya definición se da en la ecuación A.5

r(x, y) = im(x, y) ∗ f(x, y) (A.5)

En la ecuación A.5 im es la imagen que se quiere procesar, f es el filtro que se le quiere aplicara la imagen y r es la imagen que resulta luego del procesamiento. A grandes rasgos la convoluciónaplicada al procesamiento de imágenes consiste en desplazar la matriz que representa el filtro alo largo de toda la imagen de tal forma que el elemento central del filtro coincida con cada unode los pixeles de la imagen. En cada posición se multiplica el valor de cada pixel de la imagenque coincide en posición con un elemento del filtro por el valor de este. El pixel de la imagen quecoincide con el elemento central del filtro es sustituido por la suma de los productos.Durante la convolución algunos coeficientes del filtro no tendrán píxeles de la imagen debajo (ej:cuando se centra la máscara en el primer píxel de la imagen). En estas situaciones es necesariorellenar la imagen con la cantidad de elementos (por ejemplo ceros) necesaria para que sea posiblerealizar las operaciones.

Existen diversas formas de expandir la imagen para que siempre se superponga con coeficientesde la máscara. Es posible expandir con valores del borde de la imagen original o bien expandir convalores espejo, entre otros. En la figura A.9 se muestran los resultados de filtrar con una matrizde 31x31 cuyos coeficientes son todos iguales a uno. El resultado de filtrar con esta máscara esproporcional al promedio (faltaría dividir cada coeficiente por 31*31). El objetivo del ejemplo esver lo que pasa en los bordes de la imagen resultante dependiendo del método de expansión usado.

FILTRADO ESPACIAL NO LINEAL El filtrado espacial no lineal, al igual que el linealutiliza concepto de bloque o vecindad y la mecánica del procesamiento es la misma en lo querespecta a desplazar la máscara a lo largo de toda la superficie de la imagen para obtener loscoeficientes que definen la imagen resultante. El filtrado espacial no lineal consiste en realizaroperaciones no lineales que involucran a los pixels de un vecindario. Por ejemplo, definir que larespuesta en cada punto central sea el valor máximo de los pixeles del vecindario es un tipo deprocesamiento no lineal.

Como ejemplo de filtrado espacial no lineal se implementó un filtro llamado medianfilter elcual toma el valor central de la secuencia de muestras ordenadas. El median filter resulta útil para

118

Page 133: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

Figura A.9: Filtrado Espacial Lineal

reducir el ruido llamado salypimienta de las imágenes. Para mostrar esta aplicación se agregoruido una imagen y se le aplicó el filtro. Esto se puede ver en la figura A.10.

Figura A.10: Reducción de ruido sal y pimienta utilizando medianfilter

Si bien los algoritmos anteriormente descritos son útiles en muchos casos el procesamientorequerido para lograr los objetivos de este proyecto demanda la utilización de técnicas masavanzadas.

119

Page 134: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice A. Introducción al procesamiento de imágenes

120

Page 135: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Apéndice B

Resultados obtenidos aplicandocorrección por calibración

B.1. Resultados Experimentales

En esta sección incluimos los mismos datos presentados en el capítulo 8 pero esta vesaplicando las correcciones correspondientes a la calibración de la cámara.

Proyección Área total(pixeles2)

Promedioárea patrón(pixeles2)

Promedio deáreatotal cubiertapor el patrón( %)

DesviaciónEstándar( %)

Pseudocilíndrica 208.144 2.188 1,05 5Corrección Vertical 238.360 2.268 0,94 19Ancho Constante 148.506 1.485 1,00 7

Tabla B.1: Comparación de las medidas tomadas en las tres proyecciones

121

Page 136: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice B. Resultados obtenidos aplicando corrección por calibración

Figura B.1: Histograma de las medidas con calibración de porcentaje de superficie total cubiertapor el patrón para cada proyección. Los intervalos considerados son de 0.1 %.

122

Page 137: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Apéndice C

Gestión de Proyectos

Para la gestión de este proyecto se elaboro un plan de trabajo siguiendo lineamientospropuestos por el PMI 1.

C.1. Plan de Trabajo

El objetivo del Plan de trabajo es ser el documento rector del proyecto, a través del cual y decomún acuerdo entre los involucrados se fijen las condiciones de planificación, administración,alcance y aceptación.

Información:

Proyecto de grado Carreras de Ingeniería Electrónica e Ingeniería en Telecomunicaciones.

Tutor:

• Alvaro Pardo

Alumnos:

• Gonzalo Arocena, opción electrónica.

• Marcos Aitcin, opción electrónica.

• Martín Piñeyro, opción telecomunicaciones.

Período de ejecución:

• Julio 2009 - Septiembre 2010

Resumen ejecutivo

Se pretende en este proyecto desarrollar un sistema que mediante captura de imágenes digitalesy su posterior procesamiento sea capaz de obtener datos que permitan estudiar el proceso demaduración del tomate.

1El Project Management Institute (PMI R©) es una organización de profesionales líder en el mundo, que administraun programa de certificación reconocido y aceptado mundialmente

123

Page 138: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice C. Gestión de Proyectos

Alcance

Diseño y construcción de un prototipo. El prototipo no forma parte de los entregables y serealizará para hacer pruebas durante el desarrollo.

Desarrollo de software necesario para cumplir los objetivos del proyecto.

Validación de las medidas obtenidas.

Documentación del proyecto.

Organización del Proyecto

Interesados

Tutor: Alvaro Pardo (A.P.)

Tutor Ejecutivo: Fernando Fontan (F.F)

Estudiantes:

• Marcos Aitcin (M.A.), opción electrónica

• Gonzalo Arocena (G.A.), opción electrónica.

• Martín Piñeyro (M.P.), opción telecomunicaciones.

Matriz de Responsabilidades

Tarea Integrante del equipoEstuidantes Tutor Tutor Ejecutivo

Cambios de alcance E R CAspectos Administrativos E C RCoordinación de entregas E R I

Seguimiento R C ICronograma y plazos de entrega R C I

Documentación E R/C I

R: Responsable

E: Ejecutante

C: Consultado

I: Informado

Comunicación

Como medio de comunicación se estableció el e-mail. En los casos en que sea necesariopresentar documentos impresos se entregará personalmente. Siempre que haya comunicación conel tutor estarán los tres estudiantes copiados. En caso que sea necesario comunicarse con el tutorejecutivo , estarán copiados los tres estudiantes y el tutor.

124

Page 139: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice C. Gestión de Proyectos

Documentación

Se entregarán en versión digital e impresa cuatro copias de la documentación revisada yaprobada. El código fuente se entregara en formato digital (CD).

Cronograma del Proyecto

Task Name Duration Start FinishInvestigación Previa 90 days Wed 01/07/09 Tue 03/11/09Estado del Arte 30 days Wed 01/07/09 Tue 11/08/09Primeras pruebas 30 days Wed 12/08/09 Tue 22/09/09Determinación de Requerimientos de imágenes 30 days Wed 23/09/09 Tue 03/11/09Desarrollo primer Prototipo 28 days Wed 04/11/09 Fri 11/12/09Definción de configuración optima 7 days Wed 04/11/09 Thu 12/11/09Motor 7 days Fri 13/11/09 Mon 23/11/09Iluminación 7 days Tue 24/11/09 Wed 02/12/09Interfaces 7 days Thu 03/12/09 Fri 11/12/09Prototipo definitivo 25 days Mon 14/12/09 Fri 15/01/10Definición de Materiales 10 days Mon 14/12/09 Fri 25/12/09Construcción 25 days Mon 14/12/09 Fri 15/01/10Pruebas 25 days Mon 14/12/09 Fri 15/01/10Software de procesamiento y análisis 180 days Thu 05/11/09 Wed 14/07/10Segementación de imágenes 30 days Thu 05/11/09 Wed 16/12/09Extración de información sobre forma 30 days Thu 17/12/09 Wed 27/01/10Procesamietno de información sobre forma 30 days Thu 28/01/10 Wed 10/03/10Generación de proyecciones 2D 30 days Thu 11/03/10 Wed 21/04/10Análisis de proyecciones 30 days Thu 22/04/10 Wed 02/06/10Desarrollo de reportes 30 days Thu 03/06/10 Wed 14/07/10Validación 60 days Thu 15/07/10 Wed 06/10/10Implementación de rutinad e calibración 20 days Thu 15/07/10 Wed 11/08/10Ensayo con esfera y patrones 20 days Thu 12/08/10 Wed 08/09/10Evaluación de resultaods 20 days Thu 09/09/10 Wed 06/10/10Documentación y Conclusiones 46 days Thu 15/07/10 Thu 16/09/10Extración de conclusiones 1 day Mon 30/08/10 Mon 30/08/10Generación de Documentación 45 days Thu 15/07/10 Wed 15/09/10Revisión de Documentación 5 days Fri 10/09/10 Thu 16/09/10

125

Page 140: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Apéndice C. Gestión de Proyectos

126

Page 141: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

Bibliografía

[1] Carlzeiss, inc. Sitio web: http://www.zeiss.com/.

[2] OpenGL Redbook Capítuo 3. Frustum. Sitio web: http://www.glprogramming.com/red/chapter03.html.

[3] Arduino. Arduino. Sitio web: www.arduino.cc.

[4] Daniel Bardsley. A Practical Framework for 3D Reconstruction and Its Applications. PhDthesis, School of Computer Science and IT University of Nottingham, 2008.

[5] J. Y. Bouguet. Camera calibration toolbox for matlab. Sitio web: http://www.vision.caltech.edu/bouguetj/calib_doc/.

[6] J.Y. Bouguet. Visual methods for three-dimensional modeling. PhD thesis, CaliforniaInstitute of Technology, 1999.

[7] G. Bradski and A. Kaehler. Learning OpenCV: Computer vision with the OpenCV library.O’Reilly Media, Inc., 2008.

[8] G. Corkidi, KA Balderas-Ruiz, B. Taboada, L. Serrano-Carreon, and E. Galindo. Assessingmango anthracnose using a new three-dimensional image-analysis technique to quantifylesions on fruit. Plant Pathology, 55(2):250–257, 2006.

[9] R. Evans. Vislan computer-aided surgery. IEE Review, 41(2):51–54, 1995.

[10] Open Framework. Open frameworks. Sitio web: http://www.openframeworks.cc/.

[11] Adrian Kaehlet Gary Bradski. Learning OpenCV - Computer Vision with the OpenCV

Library, page 435. O’REILLY, 2008.

[12] Adrian Kaehlet Gary Bradski. Learning OpenCV - Computer Vision with the OpenCV

Library, page 421. O’REILLY, 2008.

[13] Luigi Giaccari. Rodrigues’ rotation formula. Sitio web: http://www.mathworks.com/matlabcentral/fileexchange/authors/31779.

[14] Alvaro Gómez. Navegación 3d mediante visión estéreo pasiva y su aplicación a la cirugíaguiada por imágenes. Master’s thesis, Facultad de Ingeniería, Universidad de la República,Julio Herrera y Reissig 565, 2003.

[15] R.C. Gonzalez, R.E. Woods, and S.L. Eddins. Digital image processing using MATLAB.Prentice Hall Upper Saddle River, NJ, 2004.

127

Page 142: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Bibliografía

[16] Google. Sketchup. Sitio web: http://sketchup.google.com/.

[17] C. Harris and M. Stephens. A combined edge and corner detector. In 4th Alvey Vision

Conference, 1998.

[18] P.S. Heckbert. Fundamentals of texture mapping and image warping. University of California

at Berkeley, Berkeley, CA, 1989.

[19] J. Heikkilä and O. Silven. A four-step camera calibration procedure with implicit imagecorrection. In IEEE Computer Society Conference on Computer Vision and Pattern

Recognition, pages 1106–1112. IEEE, 1997.

[20] M. Khanali, M. Ghasemi Varnamkhasti, A. Tabatabaeefar, and H. Mobli. Mass and volumemodelling of tangerine (Citrus reticulate) fruit with some physical attributes. International

agrophysics, 21(4):329, 2007.

[21] Y. Ma, S. Soatto, J. Kosecka, Y. Ma, S. Soatta, J. Kosecka, and S. Sastry. An invitation to

3-D vision. Springer, 2004.

[22] F. Mendoza and JM Aguilera. Application of image analysis for classification of ripeningbananas. Journal of Food Science, 69(9):E471–E477, 2004.

[23] J. Neider, T. Davis, and M. Woo. OpenGL. Programming guide. Addison-Wesley Reading,MA, 1997.

[24] J. Noble. Programming Interactivity: A Designer’s Guide to Processing, Arduino, and

OpenFrameworks. O’Reilly Media, 2009.

[25] Deparment of computing. Imperial college london. Sitio web: http://www.doc.ic.ac.uk/~ih/doc/stepper/others/example1/.

[26] OpenCV. Wiki opencv. Sitio web: http://opencv.willowgarage.com/wiki/.

[27] WonWood’s Augmented Reality Web Page. Camera models. Sitio web: http://old.uvr.gist.ac.kr/wlee/web/techReports/ar/Camera%20Models.html.

[28] T.M. Peters. Image-guided surgery: from x-rays to virtual reality. Computer Methods in

Biomechanics and Biomedical Engineering, 4(1):27–57, 2000.

[29] Kronos Robotics. Kronos robotics. Sitio web: http://www.kronosrobotics.com/an116/GAN116_3003.shtml.

[30] Y. Sato, M. Nakamoto, Y. Tamaki, T. Sasama, I. Sakita, Y. Nakajima, M. Monden, andS. Tamura. Image guidance of breast cancer surgery using 3-d ultrasound images andaugmented reality visualization. IEEE Transactions on Medical Imaging, 17(5):681–693,1998.

[31] M. Sonka, V. Hlavac, and R. Boyle. Image Processing, Analysis, and Machine Vision SecondEdition. International Thomson, 1999.

[32] R. Szeliski. Image alignment and stitching: A tutorial. Foundations and Trends R© in

Computer Graphics and Vision, 2(1):104, 2006.

128

Page 143: Sistema de Captura y Análisis Digital de Imágenes …€¦ · Tabla de Contenidos Tabla de Contenidos III Lista de Figuras VII Lista de Tablas XI 1. Introducción 1 1.1. Marco del

UCUDAL Bibliografía

[33] R.Y. Tsai. A versatile camera calibration technique for high-accuracy 3d machine visionmetrology using off-the-shelf tv cameras and lenses. Radiometry, page 221, 1992.

[34] the free encyclopedia Wikipedia. Opengl. Sitio web: http://es.wikipedia.org/wiki/OpenGL.

[35] the free encyclopedia Wikipedia. Rodrigues’ rotation formula. Sitio web: http://en.wikipedia.org/wiki/Rodrigues’_rotation_formula.

[36] Ziv Yaniv and Kevin Cleary. Image-guided procedures: A review. Technical Report CAIMRTR-2006-3, Image Science and Information Systems Center, Georgetown University, April2006.

[37] Z. Zhang. Flexible camera calibration by viewing a plane from unknown orientations. InInternational Conference on Computer Vision.

129


Recommended