1 Facultad: Ingeniería. Escuela: Biomédica Asignatura: Imágenes Médicas Realce de Características Objetivos Que el estudiante sepa aplicar las principales técnicas que sirven para resaltar características en imágenes Recomendaciones Tenga orden y aseo para trabajar Siempre que tenga duda del procedimiento a realizar, consúltelo con el docente o instructor Todas las piezas y componentes que se quiten se deben de ir guardando en forma ordenada Siempre anote lo que haga, aún lo mas irrelevante, ya que al final cuando el sistema se tiene desensamblado se vuelve complejo Siempre aplique las normas de seguridad que le explicará el docente o instructor Al finalizar el laboratorio se debe dejar en la misma condición en que se encontró, aún los accesorios y herramientas utilizadas. Equipo Computadora con MatLab y Processing Image Toolbox Introducción Teórica Los bordes son características básicas de la imagen. Ellos tienen información útil acerca de las fronteras de los objetos que pueden usarse para el análisis de imágenes, identificación de objetos y también para aplicaciones de filtrado de imágenes. Presentan su importancia fundamental en el análisis y procesamiento de imágenes digitales. Todavía no está disponible una definición matemática precisa y ampliamente aceptada. Este hecho se explica por la complejidad del contenido de la imagen y por la interferencia de los mecanismos de visión de alto nivel en la percepción humana de las propiedades de las fronteras de un objeto. En adelante, consideramos un borde como la frontera entre dos regiones de imágenes homogéneas que tienen diferentes intensidades de iluminación. Esta definición indica que un borde es una variación local de la iluminación (y no necesariamente al
2 revés). Se han propuesto varios detectores de bordes en la literatura. Estos se agrupan en dos clases (a) técnicas locales, las cuales usan operadores sobre vecindades locales de la imagen y (b) técnicas globales, las cuales usan información global y métodos de filtrado para extraer la información de los bordes. A continuación se presentan algoritmos para la detección de bordes, líneas y puntos aislados. Además, se describen algoritmos para el enlace de bordes, seguimiento de fronteras (o líneas) y para la detección de curvas paramétricas. Detección de bordes Los bordes de la imagen se han definido como variaciones locales de la intensidad de la imagen. Por lo tanto, técnicas locales de diferenciación de imágenes producen operadores detectores de bordes. El gradiente de la imagen f (x, y):
3 Figura 4.1. (a) Máscara detectora de bordes de Prewitt; (b) Máscara detectora de bordes de Sobel. donde x es el vector que contiene los pixeles en la vecindad local de la imagen. Los vectores de pesos w1, w2 se describen por máscaras de gradiente. Tales máscaras se muestran en la figura 4.1 para los detectores de bordes de Prewitt y Sobel respectivamente. Las relaciones (4. y 4.6) son esencialmente convoluciones lineales bidimensionales con las plantillas de 3 3 mostrados en la figura 4.1. El detector de bordes de Sobel ofrece un buen desempeño y es relativamente insensible al ruido. Pueden lograrse mejores características al ruido al usar vecindades más grandes a expensas de un mayor gasto de tiempo computacional. Sin embargo, vecindades mayores tienden a producir bordes gruesos. Las plantillas de bordes son máscaras que pueden usarse para detectar bordes a lo largo de diferentes direcciones. Tales máscaras de tamaño 3x3 se muestran en la figura 4.2. Pueden detectar bordes sólo en cuatro direcciones diferentes (0, 4, 90 y 13 grados). Plantillas de mayor tamaño son más sensibles a la orientación del
4 borde. Hagamos que, sea el vector de pesos asociado con cada plantilla. La detección de borde puede realizarse de la siguiente manera. Todas las plantillas se aplican a cada pixel de la imagen. La plantilla que produce la máxima salida es la ganadora: La salida correspondiente es una medida de la confianza de la salida del detector de borde. Si se acerca a cero, no hay presente borde en este lugar del pixel. Si todas las plantillas dan aproximadamente iguales magnitudes de salida, información no fidedigna se extrae de la dirección del borde. Un algoritmo para la detección de bordes basado en las plantillas se encuentra en el archivo, brujula.m. También pueden usarse plantillas para la detección de líneas y puntos. Las plantillas correspondientes se muestran en la figura 4.3. Lineas en las cuatro direcciones (0, 4, 90 y 13 grados) pueden detectarse usando las plantillas de la figura 4.3b.
Otra mejora a la detección de bordes es usar el operador Laplaciano. Se define en términos de derivadas parciales de segundo orden de f (x, y) con respecto a x, y respectivamente: La derivada de primer orden tiene mínimos o máximos en los bordes de la imagen debido a los grandes cambios en la intensidad local. Por tanto, las derivadas de segundo orden tienen cruces por cero (es decir transiciones desde los valores positivos a los negativos y viceversa) en los lugares de los bordes.. Así, una mejora en la detección de bordes es estimar el operador laplaciano de salida y encontrar los puntos de cruce por cero. Un estimador del operador Laplaciano (4.8) está dado por El algoritmo detector de bordes correspondiente se encuentra en el archivo laplace2.m La operación de diferenciación es una operación pasa-altas. Por tanto la diferenciación de segundo orden tiende a resaltar el ruido de la imagen. El operador Laplaciano crea varios bordes falsos, especialmente en áreas donde la varianza de la imagen es pequeña, porque las pequeñas perturbaciones de intensidad (ruido) tiende a producir falsos cruces por cero. Un método para reducir la sensibilidad al ruido es considerar los cruces por cero sólo en las áreas donde la varianza local σ 2 (i, j) dada por:
6 es grande, porque los bordes de la imagen ocurren en áreas donde tienen gran dispersión de la imagen local. Basado en esta observación, la medida de la dispersión de datos local puede usarse ella misma como un detector de borde. La varianza local (.10-.11) es una medida. El rango local de la imagen: Puede usarse como una medida de la dispersión local y como un detector de borde. Los operadores máx y mín en (4.12) describen el máximo y mínimo local en la vecindad de la imagen A. El detector de borde de rango resultante se encuentra en el archivo rango.m. El detector de borde de rango es muy rápido ya que requiere sólo el cálculo del máximo y mínimo local. 4.3 Algoritmos de seudocoloreado En muchas aplicaciones, el ojo humano es más sensible a los cambios de color que a los cambios de intensidad para aplicaciones de inspección (p. ej. inspección de seguridad, control de calidad, sensado remoto). Por lo tanto, es natural codificar la intensidad de las imágenes blanco y negro (B/N) usando información a color. Este proceso se llama seudocoloreado. El resultado del seudocoloreado es comúnmente agradable al ojo humano. Así, puede usarse para aplicaciones artísticas (p. ej. creación de efectos visuales). El seudocoloreado es una transformación de la imagen digital de la forma: c(x, y) = T( f (x, y)) donde f(x,y) es la imagen blanco y negro y c(x,y) es la imagen a color. Se expresa comúnmente en términos de sus componentes rojo, verde y azul La función de transformación T produce una salida de tres canales. Ya que el resultado del seudocoloreado es por lo general juzgado sólo subjetivamente, la selección de la función de transformación T es más que todo heurística. A continuación, describiremos dos modos diferentes de encontrar la transformación de seudocolor. El primer método se basa en la cuantización de la intensidad (rebanado). Vamos a suponer que usamos N colores diferentes en el seudocoloreado. Si la imagen B/N posee L diferentes niveles de gris, la función de transformación toma la siguiente forma:
7 Donde denota la parte entera de. Los colores, pueden escogerse arbitrariamente. Se Recortan los segmentos de intensidad de la imagen B/N en N regiones diferentes. A cada región se le asigna un color diferente. Pueden usarse algoritmos de segmentación de imágenes más sofisticados que se presentarán en una práctica posterior. El seudocoloreado produce resultados aceptables si el histograma de la imagen B/N se acerca a la distribución uniforme. Si el histograma se concentra en una región pequeña de intensidad, es decir la imagen tiene pobre contraste, el rebanado de intensidad produce resulatdos pobres. La solución a este problema es la cuantización de intensidad no uniforme. Se conocen poderosas técnicas para la cuantización no uniforme. Describiremos ahora una alternativa que es más simple y fácil de implemetar. Puede realizarse la ecualización del histograma g=g(f) y la cuantización de intensidad puede aplicarse a la imagen ecualizada g. Este método es equivalente a la siguiente función de transformación no uniforme. Este método es sensible al ruido, porque la ecualización del histograma tiende a resaltarlo. Otra modificación del seudocoloreado de la intensidad de la imagen en un umbralizado arbitrario de la imagen.
8 En este caso, un conjunto de N - 1 umbrales usuario. La función de transformación toma la forma:, se definen por el Note que la implementación de las transformaciones es muy fácil. Otro método de seudocoloreado se basa en uso del filtrado. Supongamos que se disponen de filtros FIR pasabajos, pasabanda y pasaaltos y tienen una respuesta al Impulso respectivamente. Cada uno de estos filtros puede operarse sobre una imagen monocromática f(k,l) produciendo una salida correspondiente. Cada salida se asigna a un componente de la imagen a color: Estos componentes de la imagen a color forman la imagen seudocoloreada. Los colores de la imagen tienden a tener más azul en las regiones homogéneas de la imagen B/N y más rojo cerca de las líneas y bordes. La respuesta ideal de los filtros basabajos, pasabanda, pasaaltos usados en las ecuaciones anteriores tienen la siguiente forma: Donde es la distancia de un punto en el dominio de las frecuencia desde el origen (0,0). Existen varios métodos para el diseño de filtros lineales FIR y IIR que se aproximan a las respuestas ideales pero su descripción está fuera del alcance del curso. Las convoluciones pueden implementarse como ya se ha hechousando el comando conv2.
9 Procedimiento 1. Encienda la computadora y corra el programa MATLAB. 2. Digite en la ventana de comandos:» edgedemo 3. A continuación aparecerá la siguiente ventana la cual pertenece al DEMO de detección de bordes, este demo utiliza la función EDGE para aplicar diferentes métodos de detección de bordes a una variedad de imágenes. Los menús permiten la selección de la imagen a la que se le aplicara el método de detección, y además la selección del método de detección. 4. Ubique la función que realiza el detector de bordes de Sobel.. Pruebe el archivo :
1 [a,m1]=imread( saturn.tif ); b=sobel(a); imshow(a); figure imshow(b); 7. Pruebelo nuevamente el archivo de la siguiente manera: >> c=imread( flowers.tif ); >> c=rgb2gray(c); >> d=sobel(c); >> figure >> imshow(c); >>figure >> imshow(d); 8. Llame al archivo prewitt.m y pruébelo de la siguiente forma: >> f=prewitt(a); >> figure >> imshow(f); 9. En MatLab la función que realiza lo mismo es: >>g=edge(a, prewitt ); >>figure >>imshow(g); 10. Pruebe el archivo brujula.m para todos los ángulos (0, 4, 90, 13), con el siguiente guión >> b=brujula(a,0); >> figure(1) >> image(b) 11. Cambie el ángulo para los otros valores propuestos. 12. Pruebe el archivo m que detecta los bordes usando el Laplaciano. b=laplace2(a); figure(1); image(b) 13. Pruebe el archivo rango.m para encontrar los bordes de la imagen a: >> b=rango(a,3,3); >> figure(1)
1 >> image(b) 14. Pruebe el archivo falsocol.m de la siguiente manera. >> figure(2) >> m2=falsocol(100,10, rojo ); >> colormap(m2); >> imshow(a); Análisis de resultados 1. Elija una imagen de prueba. 2. Experimente probando la aplicación de varios detectores de bordes sucesivos a esta imagen. 3. Cuál es el mejor detector de todos los bordes presentes en la imagen de prueba? 4. Presente los resultados y conclusiones de la práctica.