Curso de Procesamiento Digital de Imágenes Impartido por: Elena Martínez Departamento de Ciencias de la Computación IIMAS, UNAM, cubículo 408 http://turing.iimas.unam.mx/~elena/Teaching/PDI-Mast.html elena.martinez@iimas.unam.mx Programa del Curso 1. 2. 3. 4. Introducción. Fundamentos de la imagen digital. Realce de la imagen en el dominio espacial. Realce de la imagen en el dominio de la frecuencia. 5. Restauración de la imagen. 6. Representación del color. 7. Compresión de imágenes. 3. Relace de la imagen en el dominio espacial a) Antecedentes. b) Algunas transformaciones básicas de niveles de gris. c) Procesamiento del histograma. d) Realce de la imagen utilizando operaciones artméticas/lógicas. e) Filtros espaciales básicos. f) Filtros espaciales de suavizamiento (smooth). g) Filtros espaciales de realce (sharp). Uso de la estadística del histograma para realce En lugar de utilizar al histograma directamente para el realce, podemos hacer uso de algunos parámetros estadísticos obtenidos directamente del histograma. Sea r una variable aleratoria discreta que representa los niveles de gris en el rango [0, L-1], y sea p(ri) el componente i correspondiente al i-ésimo valor de r del histograma normalizado. El n-ésimo momento de r alrededor de la media está definido como: L 1 donde m es el valor medio de r n n (r ) (ri m) p (ri ) (su valor promedio de gris). i 0 Uso de la estadística del histograma para realce La media m está definida como: L 1 m ri p (ri ) i 0 De las dos expresiones anteriores se tiene que 0=1 y 1=0. El segundo momento se define como: L 1 2 (ri m) 2 p (ri ) i 0 Esta expresión es la varianza de r, que se denota como 2(r). La desviación estándar es la raíz cuadrada de la varianza. Uso de la estadística del histograma para realce En términos de realce, estamos interesados principalmente en la media, que es una medida del promedio del nivel de gris en una imagen, y en la varianza (o desviación estándar) que es una medida promedio del contraste. Consideraremos dos usos de la media y la varainza para el realce: la media y varianza globales que se miden sobre la imagen entera y se usan para un ajuste grueso de toda la intensidad y el contraste. Un uso más poderoso de estas dos herramientas es para el realce local, donde se utilizan como la base para hacer cambios que dependen de características de una region predeterminada de cada pixel de la imagen. Uso de la estadística del histograma para realce Sea (x,y) las coordenadas de un pixel en una imagen, y sea Sxy una vecindad (subimagen) de tamaño específico centrada en (x,y). La media y la varianza de la region Sxy están dadas por: mS xy rs ,t p(rs ,t ) ( s ,t )S xy S2 xy 2 [ r m ] s,t S xy p(rs,t ) ( s ,t )S xy donde rs,t es el nivel de gris en las coordenadas (s,t) de la vecindad, y p(rs,t) es el componente del histograma normalizado de la vecindad correspondiente al nivel de gris. Uso de la estadística del histograma para realce Imagen de microscopía electrónica (SEM) de un filamento de tungsteno enrollado alrededor de un soporte. Observe en el lado derecho de la imagen como existe otro pedazo de filamento más oscuro. Uso de la estadística del histograma para realce El método de realce es como sigue: Sea f(x,y) el valor de un pixel de una imagen en cualquier coordenada (x,y), y sea g(x,y) el valor del pixel realzado correspondiente en esa misma coordenada. Entonces: E f ( x, y ) si mS xy k0 M G y k1 DG S xy k 2 DG g ( x, y ) de otra manera f ( x, y ) donde E, k0, k1, k2 son constantes positivas; k1 < k2 ; MG es la media global de la imagen de entrada y DG es la desviación estándar global. Uso de la estadística del histograma para realce Hacer una selección adecuada de los parámetros E, k0, k1, k2 requiere de un poco de experimentación para ganar familiaridad con la imagen dada. En este caso los valores se seleccionaron: E=4.0, k0=0.4, k1=0.02, k2=0.4 . E se eligió bajo de manera que al ser multiplicado por los niveles a ser realzados (oscuros) el resultado siguiera relativamente oscuro y así preservar el balance visual general. k0 se eligió como a la mitad de la media global ya que es obvio al observar la imagen que las áreas que requieren realce definitivamente están por debajo de la media global. Un análisis similar fue hecho para k1 y k2. Finalmente la vecindad se eligió pequeña para preservar el detalle, de 3x3 pixeles. Uso de la estadística del histograma para realce (a) Imagen formada por las medias locales. (b) Imagen formada por las desviaciones estandar locales. (c) Imagen formada por todas las multiplicaciones de constantes utilizadas en el realce (valores 1=oscuro y E=claro). Uso de la estadística del histograma para realce Imagen resultado del realce. Se pueden observar algunos artefactos entre el borde del filamento y el fondo producidos por esta técnica. 3. Relace de la imagen en el dominio espacial a) Antecedentes. b) Algunas transformaciones básicas de niveles de gris. c) Procesamiento del histograma. d) Realce de la imagen utilizando operaciones artméticas/lógicas. e) Filtros espaciales básicos. f) Filtros espaciales de suavizamiento (smooth). g) Filtros espaciales de realce (sharp). Realce utilizando operaciones aritméticas/lógicas Las operaciones aritméticas/lógicas entre imágenes se realizan pixel a pixel (a excepción de la operación lógica NOT que se realiza en una sóla imagen). Sólo tenemos que preocuparnos de implementar las operaciones lógicas AND, OR y NOT porque éstas son operadores funcionalmente completos, es decir, que cualquier otra operación lógica puede implementarse utilizando cualquiera de estas tres operaciones básicas. Realce utilizando operaciones aritméticas/lógicas Por ejemplo, realizar una operación NOT en un pixel negro de 8-bits (una cadena de 8 ceros) produce un pixel blanco (una cadena de 8 unos). Los valores intermedios se procesan de la misma manera cambiando 1´s por 0´s y viceversa. Es equivalente a una transformación negativa. Las operacionas AND y OR se utilizan para hacer “máscaras” y extraer así regiones de interés (RIO). Las operaciones lógicas también se utilizan con frecuencia en conjunto con las operaciones morfológicas (morfología matemática). Realce utilizando operaciones aritméticas/lógicas Realce utilizando operaciones aritméticas/lógicas De las cuatro operaciones aritméticas, la substracción y la adición (en ese orden) son las más utilizadas para el realce de la imagen. Se considera la división de dos imágenes como la multiplicación de una imagen por el recíproco de la otra. La multiplicación de una imagen por una constante se utiliza para incrementar su nivel de gris promedio, pero además, la multiplicación se puede utilizar para el realce de imágenes como una operación de máscara, similar que las anteriores pero en imágenes de niveles de gris en lugar de binarias. Substracción de imágenes La diferencia entre dos imágenes f(x,y) y h(x,y) se expresa de la forma: g ( x, y ) f ( x, y ) h ( x, y ) Se obtiene calculando la diferencia entre pares de pixeles correspondientes de f y h . La clave de la substracción es resaltar la diferencia entre imágenes. Substracción de imágenes A. Imagen original del fractal. B. Resultado de poner los 4 bits menos significativos en 0. C. La diferencia entre A-B. Casi ceros. D. La imagen C ecualizada. Substracción de imágenes Otro ejemplo se tiene en el área médica con las llamadas radiografías en modo máscara. Se obtiene una imagen de rayos X de la región de interés de un paciente la cual se captura con una cámara de televisión (en lugar de una película fotográfica), a esta imagen, h(x,y) , se le llama máscara. Se le inyecta al sujeto un medio de contraste en el torrente sanguíneo, y se toman imágenes (f(x,y)) en la misma region anatómica que h(x,y) y se substrae esta máscara de la serie de imágenes tomadas después de inyectar el contraste. El efecto neto es el realce de detalles. Substracción de imágenes Tomadas desde la parte de arriba de la cabeza del sujeto, el punto brillante en la parte inferior de la imagen de la izquierda corresponde a la parte alta de la cuerda espinal. Substracción de imágenes Algunas notas de implementación: la mayoría de las imágenes con las que trabajamos se despliegan utilizando 8 bits, por lo que esperamos tener valores en el rango de 0 a 255. Los valores obtenidos de la diferencia de imágenes pueden variar de –255 a 255, por lo cual tenemos que reescalar estos valores para que puedan ser desplegados. Existen dos posibles formas: 1) a cada pixel de la imagen resultado se le suma 255 y se divide entre 2, esto no garantiza que se cubrirá todo el rango dinámico posible. 2) Un método más preciso, se busca el valor mínimo de la diferencia y su valor negativo se suma a todos los pixeles resultado de la diferencia, luego todos los pixeles se rescalan al intervalo [0,255] multiplicando cada pixel por 255/Max donde Max= al valor máximo de la diferencia modificada. Promedio de imágenes Considere una imagen ruidosa g(x,y) formada por la suma de ruido (x,y) a una imagen f(x,y), esto es: g ( x, y ) f ( x, y ) ( x, y ) donde asumimos que para cada par de coordenadas (x,y) el ruido está decorrelacionado y tiene un valor promedio igual a cero. (Recuerde que la varianza de una variable aleatoria x con media m se define como E[(x-m)2], donde E[•] es la esperanza del argumento. La covarianza de dos variables aleatorias xi y xj se define como E[(xi-m)(xj-m)]. Si las variables están decorelacionadas, su covarianza es El objetivo es reducir el contenido del ruido sumando un conjunto de imágenes ruidosas {gi(x,y)}. 0). Promedio de imágenes El promedio de M imágenes ruidosas se define entonces como: M 1 g ( x, y ) M g ( x, y ) i 1 i Mientras M se incrementa la variabilidad (ruido) del valor de un piexel en una posición (x,y) decrementa. Esto significa que g ( x, y ) se aproxima más a f(x,y) si el número de imágenes ruidosas incrementa. En la práctica las imágenes gi(x,y) deben estar alineadas para evitar la introducción de emborronamiento u otros artefactos en la imagen de salida. Promedio de imágenes Una aplicación muy importante del promedio de imágenes es en el área de astronomía, donde la toma de imágenes con niveles de luz bajo es rutinario, causando que el ruido del sensor despliegue imágenes que son virtualmente inútiles para su análisis. La siguiente figura muestra una imagen de la galaxia par llamada NGC 3314, tomada por el Telescopio Espacial Hubble de la NASA. Promedio de imágenes A. Imagen de la galaxia NGC 3314. B. Imagen A corrupta con ruido Gaussiano decorrelacionado con media 0 y desviación estándar de 64 niveles de gris. Se puede apreciar que es inutilizable! C-F. Imágenes promediadas con 8, 16, 64 y 128 imágenes, resp. Se puede apreciar que cuando M=128 la imagen resultado es muy cercana en apariencia a la imagen en A. Promedio de imágenes A. Primera columna muestra las diferencias de la imagen A-C, A-D, A-E y A-F, resp (fig. ante.) B. La segunda columna muestra el respectivo histograma de las diferencias. Nota. La media y la desviación estándar de los histogramas decrece conforme M se incrementa. Podemos ver también el efecto del decremento de la media de las imágenes ya que se vuelven más oscuras conforme M se incrementa. 3. Relace de la imagen en el dominio espacial a) Antecedentes. b) Algunas transformaciones básicas de niveles de gris. c) Procesamiento del histograma. d) Realce de la imagen utilizando operaciones artméticas/lógicas. e) Filtros espaciales básicos. f) Filtros espaciales de suavizamiento (smooth). g) Filtros espaciales de realce (sharp). Filtros espaciales básicos Como hemos mencionado anteriomente algunas operaciones de vecindad operan con los valores de los pixeles de la imagen de la vecindad y los correspondientes valores de una subimagen, la cual tiene las mismas dimensiones que la vecindad. A las subimágenes se les llama filtro, máscara, kernel, template o ventana, donde los tres primeros nombres son los más comunes. Los valores en una subimagen filtro se refieren como coeficientes, en lugar de pixeles. Filtros espaciales básicos El concepto de filtrado tiene sus raices en el uso de la transformada de Fourier para el procesamiento de señales, también llamado dominio de la frecuencia, que veremos en el siguiente capítulo. En esta sección discutiremos operaciones de filtrado que se realizan directamente en los pixeles de la imagen. Se utiliza el término filtro espacial para referirnos a este tipo de procesos. Filtros espaciales básicos Los filtros pasa-bajos eliminan o atenúan los componentes de altas frecuencias en el dominio de la frecuencia (detalles marcados o finos de la imagen), y resultan en imágenes borrosas. Los filtros pasa-altos eliminan o atenúan los componentes de bajas frecuencias, resultando en el realce de los bordes y otros detalles marcados o finos. Los filtros pasa-banda remueven una fracción de frecuencias seleccionada entre frecuencias bajas y altas (se utiliza normalmente para restauración de imágenes, no para realce). Filtros espaciales básicos El proceso de filtrado espacial consiste en mover el filtro punto a punto sobre la imagen. En cada punto (x,y), la respuesta del filtro en ese punto se calcula utilizando una relación predefinida. Para filtrado espacial lineal, la respuesta está dada por la suma de los productos de los coeficientes del filtro y los correspondientes pixeles de la imagen en el área que abarca la vecindad. Filtros espaciales básicos Para una máscara de tamaño 3 x 3, el resultado (respuesta), R, del filtro lineal con el filtro en el punto (x,y) de la imagen es: R = w(-1,-1) f(x-1,y-1) + w(-1,0) f(x-1,y) + ... + w(0,0) f(x,y) + ... + w(1,0) f(x+1,y) + w(1,1) f(x+1,y+1) que es la suma de los productos de los coeficientes del filtro con los pixeles correspondientes de la imagen que están directamente bajo la máscara (correspondientes posiciones x,y). Filtros espaciales básicos Note que el coeficiente w(0,0) coincide con el valor f(x,y), indicando que la máscara está centrada en (x,y) cuando se lleva a cabo la sumatoria de los productos. Filtros espaciales básicos Para una máscara de tamaño m x n , asumimos que m=2a+1 y n=2b+1, donde a y b son enteros no negativos. Esto es para asegurarnos que la máscara tendrá tamaño impar. En general, el filtrado lineal de una imagen f de tamaño M x N con un filtro de tamaño m x n está dado por: g ( x, y ) a b w(s, t ) f ( x s, y t ) s at b donde a=(m-1)/2 y b=(n-1)/2. Para generar una imagen filtrada completa, la ecuación debe aplicarse para x= 0, 1, 2, ..., M-1 y y= 0, 1, 2, ..., N-1. Filtros espaciales básicos El proceso de filtrado espacial definido anteriormente, cuya definicion es similar en el dominio de la frecuencia, es un concepto que se conoce como convolución. Por esta razón el filtrado espacial se refiere como “convolucionar una imagen con una máscara”. De manera simlar algunas máscaras se llaman “máscara de convolución” o “kernel de convolución”. Filtros espaciales básicos El filtrado espacial no lineal también opera en una vecindad de manera similar a la descrita anteriormente, pero no utiliza explícitamente coeficientes a manera de suma de productos. Por ejemplo, la reducción de ruido se puede conseguir utilizando un filtro no lineal cuya función básica sea calcular la mediana de los niveles de gris en la vecindad en donde el filtro está posicionado. El cálculo de la mediana es una operación no lineal, así como el cálculo de la varianza como los ejemplos mostrados en secciones anteriores. Filtros espaciales básicos Una cosideración importante al implementar operaciones de vencindades es el hecho de ¿qué hace cuando el centro del filtro se aproxima al borde de la imagen? Existen varias soluciones al respecto: * Limitar la ejecución del filtro a que su centro esté a una distancia de (n-1)/2 del borde. El resultado será una imagen más pequeña que la original. * Ejecutar el filtro con todos los pixeles sólo con las secciones de la máscara que caigan dentro de la imagen. El resultado será una imagen del mismo tamaño pero el resultado tendrá pixeles procesados con sólo una parte de la máscara. * Añadir las columnas y renglones necesarios con ceros para cubrir el tamaño total de la imagen con el filtro (padding). El resultado tendrá el problema que el anterior de tener resultados de filtro utilizando ceros. Instituto de Investigaciones en Matemáticas Aplicadas y en Sistemas (IIMAS) http://turing.iimas.unam.mx/~elena/Teaching/PDI-Mast.html