DETECCIÓN DE CONTORNO La detección de contorno es parte de un proceso de aislamiento (segmentación), que consiste en la identificación de objetos dentro de una imagen. Una de las más comunes y generales definiciones es el contorno de paso ideal, ilustrado en la dimensión, el contorno es simplemente un cambio en el nivel de gris que ocurre en una ubicación especifica. Cuanto mayor es el cambio de nivel, más fácil resulta detectar el contorno, pero en el caso ideal cualquier cambio de nivel puede ser visto fácilmente. La primera complicación ocurre debido a la digitalización. Es poco probable que una imagen sea muestreada de manera tal que todos los contornos correspondan exactamente con un pixel del borde. La posición actual del contorno se considera como el centro de la rampa que conecta el nivel bajo de gris con el nivel alto. Esta es una rampa sólo en el mundo matemático, dado que después de que la imagen ha sido digitalizada (muestreada), la rampa tiene una apariencia escalonada. La segunda complicación es el clásico problema del ruido. Debido a una gran cantidad de factores como la intensidad de la luz, el tipo de cámaras y lentes, el movimiento, la temperatura, efectos atmosféricos, polvo y otros; difícilmente dos pixeles que correspondan precisamente al mismo nivel de gris en la escena tengan el mismo nivel en la imagen. El ruido es un efecto aleatorio, y es caracterizado sólo estadísticamente. El resultado del ruido en una imagen es que produce variaciones aleatorias en el nivel de un pixel a otro, y entonces las líneas suaves y rampas de los contornos ideales nunca son encontradas en las imágenes reales. MODELOS DE CONTORNO Un contorno de paso nunca ocurre realmente en una imagen debido a: Los objetos rara vez son de dicha forma de trazo. Una escena nunca es muestreada de manera que los contornos ocurran exactamente en las imágenes de un pixel. Debido al ruido, como se mencionó anteriormente. Si el efecto de un trazo borroso es extender el cambio de nivel de gris sobre varios pixeles, entonces el de paso simple se convierte en una escalera. La rampa es un modelo de cómo debía haber sido visto el contorno originalmente con motivo de producir una escalera, y esto es una idealización; es una interpolación del dato actualmente encontrado. EL RUIDO El ruido no se puede predecir acertadamente debido a su naturaleza aleatoria, y tampoco puede ser medido precisamente en una imagen con ruido, dado que la contribución del ruido a los niveles de gris no es indistinguible de los pixeles de dato. Sin embargo, el ruido puede ser caracterizado a veces por su efecto en la imagen, y es usualmente expresado como una distribución de probabilidad con una media y desviación estándar especifica. Hay dos tipos de ruido que son de interés especifico en el análisis de imágenes. El ruido independiente de la señal es un conjunto aleatorio de niveles de gris, estadísticamente independiente de los datos de la imagen ; estos es, añadido a los pixeles en la imagen para dar la imagen con ruido resultante. El segundo tipo principal de ruido es llamado ruido dependiente de la señal. En este caso el nivel del valor del ruido en cada punto de la imagen es una función del nivel de gris ahí. El granulado visto en algunas fotos es un ejemplo de esta clase de ruido, y generalmente de difícil tratar con el. Afortunadamente se encuentra menos frecuentemente, y resulta manejable si la foto es muestreada correctamente. Un contorno (basado en la discusión previa) esta definido por un borde de nivel de gris o color. Si este borde se cruza, entonces el nivel cambia rápidamente; seguir el borde conduce a más sutiles, posiblemente aleatorios, cambios de nivel. Los pixeles de ruido también muestran un gran cambio en el nivel. Hay esencialmente tres tipos comunes de operadores para localizar contornos. El primero es el operador derivada diseñado para identificar lugares donde hay grandes cambios de intensidad. El segundo se asemeja a un esquema de molde-encastre, donde el contorno es moldeado por una pequeña imagen que muestra las propiedades abstractas de un contorno perfecto. Finalmente, hay operadores que utilizan un modelo matemático del contorno, los mejores usan también un modelo del ruido, y hacen un esfuerzo por tenerlo en cuenta. En el presente proyecto se utilizan dos algoritmos pertenecientes al último tipo. IMPLEMENTACIÓN DEL DETECTOR DE CONTORNO EL DETECTOR DE CONTORNO CANNY En 1986, John Canny definió un conjunto de objetivos para un detector de contorno y describió un método óptimo para conseguirlo. Tasa de error: el detector de contorno debe responder sólo a contornos, y debe encontrarlos todos. Ubicación: la distancia entre los pixeles del contorno encontrados por el detector y el contorno real debe ser la menor posible. El detector de contorno no debe identificar múltiples pixeles de contorno donde sólo exista un único contorno. Canny asume un contorno de paso sujeto a un ruido blanco Gaussiano. El detector es un filtro de contorción f que suaviza el ruido y localiza el contorno. El problema es identificar el filtro que optimize los tres criterios de detección de contornos. Canny intenta encontrar el filtro f que maximize el producto SNR x Ubicación sujeto a la restricción de respuestas múltiples, y mientras el resultado es demasiado complejo para ser resuelto analíticamente, una aproximación logra ser (turns out) la primera derivada de una función gaussiana. La aproximación al filtro óptimo de Canny para la detección de contornos es G', y entonces contorsionando la imagen de entrada con G' se obtiene E que tiene contornos resaltados (enhanced), aún en presencia de ruido, el cual ha sido incorporado dentro del modelo de la imagen de contorno. Una contorción es claramente simple de implementar, pero es computacionalmente costosa, especialmente una contorción de 2 dimensiones. Sin embargo, una contorción con una gaussiana de 2D puede ser separada en dos contorciones con una gaussiana de 1D, y la diferenciación puede ser realizada en último lugar. FUNCIONAMIENTO DEL PROGRAMA El programa principal abre y lee el archivo de la imagen, y también lee los parámetros (como tita). Luego llama a la función canny, la cual realiza la mayor parte del trabajo. La primer cosa que realiza canny es calcular la máscara de filtro gaussiano (llamada gau en el programa) y la derivada de la máscara de filtro gaussiano (llamada dgau). El tamaño de la mascara a ser usado depende de tita; para un valor de tita pequeño la gaussiana será rápidamente cero, resultando una máscara pequeña. El programa determina automáticamente el tamaño necesario de la máscara. UNA COMPARACIÓN ENTRE LOS DOS DETECTORES DE CONTORNOS ÓPTIMOS Para resumir, el algoritmo de Canny filtra la imagen con la derivada de una función gausiana y luego elimina los puntos no máximos. El algoritmo de Shen-Castan filtra la imagen usando el filtro exponencial simétrico infinito, computa el BLI o imagen binaria de Laplace, suprime las raíces falsas y aplica el gradiente adaptativo. En ambos métodos, así como en el de Marr-Hildreth los autores sugieren el uso de múltiples soluciones. Ambos algoritmos ofrecen parámetros que pueden ser definidos por el usuario, lo cual puede ser útil para adaptar el método para un tipo de imagen en particular. BIBLIOGRAFÍA J.R. Parker, Algorithms for Image Processing and Computer Vision. 1997. Wiley. Darío Maravall Gómez-Allende, Reconocimiento de formas y visión artificial. 1993. Addison Wesley.