Transformaciones de intensidad
Nota La mayoría de las figuras son del libro: Rafael C. Gonzalez, Richard E. Woods. “Digital Image Processing, 3rd edition” Y pueden obtenerse de: http://www.imageprocessingplace.com/DIP-3E/dip3e_classroom_presentations_downloads.htm Universidad de Sonora
Mejoras a la imagen Hay dos enfoques: Métodos en el dominio espacial. Métodos en el dominio de las frecuencias. Universidad de Sonora
Dominios Dominio espacial: los algoritmos manipulan directamente los pixeles de la imagen. Dominio de la frecuencia: los algoritmos están basados o modifican la transformada de Fourier de la imagen. Primero se verán técnicas en el dominio espacial. Universidad de Sonora
Dominio espacial Los métodos en el dominio espacial operan directamente sobre los pixeles de la imagen. Se denotan por: 𝑔 𝑥, 𝑦 =𝑇 𝑓(𝑥, 𝑦) Donde: 𝑓(𝑥, 𝑦) es la imagen de entrada. 𝑔 𝑥, 𝑦 es la imagen procesada. 𝑇 es un operador en 𝑓, definido sobre una vecindad de (𝑥, 𝑦). Universidad de Sonora
Dominio espacial Universidad de Sonora
Dominio espacial El punto (𝑥, 𝑦) es un punto arbitrario en la imagen. La región de alrededor de (𝑥, 𝑦) es su vecindad. El origen de la vecindad se mueve pixel a pixel aplicando el operador 𝑇. Para cada pixel 𝑥, 𝑦 , el valor de la imagen de salida 𝑔 es igual al resultado de aplicar 𝑇 a la vecindad con origen en (𝑥, 𝑦) en 𝑓. Solo se utilizan los pixeles en el área de la imagen cubierta por la vecindad. A este proceso se le llama filtrado espacial. A 𝑇 y a la vecindad se les llama filtro espacial, máscara espacial, kernel o ventana. Universidad de Sonora
Dominio espacial Por ejemplo, el filtro promedio (mean filter). 𝑇= 1 9 1 1 1 1 1 1 1 1 1 Reemplaza cada pixel por el promedio de su vecindad (incluyéndolo a el mismo). Se usa para suavizar una imagen y reducir el ruido. Universidad de Sonora
Filtrado El caso más simple para 𝑇 es cuando la vecindad es de tamaño 1 x 1 (un pixel). En este caso, 𝑔 depende solo del valor de 𝑓 en (𝑥, 𝑦). Para imágenes de tonos de gris, a 𝑇 se le llama función de transformación de nivel de gris o de intensidad. Universidad de Sonora
Ejemplo Universidad de Sonora
Explicación La figura (a) ilustra la técnica de estiramiento de contraste (contrast stretching). Produce una imagen con mayor contraste que la original. Los niveles de intensidad debajo de 𝑘 se oscurecen y los niveles arriba de 𝑘 se abrillantan. La figura (b) muestra una función de umbral (thresholding function). Produce una imagen con dos niveles (binaria). Universidad de Sonora
Transformaciones de intensidad En esta parte del curso se verá lo siguiente: Transformaciones básica de intensidad Transformaciones de histograma Universidad de Sonora
Transformaciones básicas de intensidad 𝑟 es el valor del pixel antes de la transformación. 𝑠 es el valor del pixel después de la transformación. El rango de intensidad es [0..𝐿−1]. En una imagen con tonos de gris de 8 bits, 𝐿=256. Transformaciones básicas: Transformación negativa. Transformación log y log inversa. Transformación de potencia (gama). Funciones de transformación lineales por partes. Universidad de Sonora
Imagen negativa 𝑠=𝐿 −1−𝑟 Produce el equivalente al negativo en una fotografía. Se usa para mejorar los detalles blancos o grises rodeados de áreas negras. Especialmente si las áreas negras dominan en tamaño. Universidad de Sonora
Imagen negativa Universidad de Sonora
Transformación log y log inversa Transformación log inversa: 𝑠=exp 𝑟×𝑐−1 Donde 𝑐 es una constante y 𝑟≥0. La transformación log expande los valores obscuros y comprime los claros. La transformación log inversa expande los valores claros y comprime los obscuros. Universidad de Sonora
Transformación log y log inversa Universidad de Sonora
Algunas transformaciones básicas Universidad de Sonora
Transformación de potencia (gama) Fórmula general: 𝑠=𝑐× 𝑟 𝛾 Donde 𝑐 y 𝛾 son constantes positivas. La transformación gama es parecida a las transformaciones log y log inversa. Para 𝛾<1 la transformación expande los valores obscuros y comprime los claros. Para 𝛾>1 la transformación expande los valores claros y comprime los obscuros. Universidad de Sonora
Transformación de potencia (gama) Para 𝑐=1 y 𝛾=1 la transformación gama se convierte en la transformación identidad 𝑠=𝑟. Universidad de Sonora
Transformación de potencia (gama) Universidad de Sonora
Corrección gama Algunos dispositivos de captura, impresión y desplegado de imágenes responden a una ley de potencia. Al proceso usado para corregir esta respuesta se le llama corrección gama. Por ejemplo, los dispositivos de rayos catódicos (CRT) tienen una intensidad-voltaje que responden a una ley de potencia con gama entre 1.8 y 2.5. Esto implica que los monitores CRT producen imágenes mas obscuras de lo esperado. Universidad de Sonora
Corrección gama Corrección gama de (a) a (c): 𝑠= 𝑟 1/2.5 = 𝑟 0.4 𝑠= 𝑟 1/2.5 = 𝑟 0.4 Universidad de Sonora
Mejoramiento de contraste La transformación de potencia también se puede usar para manipular el contraste. Universidad de Sonora
Mejoramiento de contraste Universidad de Sonora
Mejoramiento de contraste Universidad de Sonora
Funciones de transformación lineal por partes Las funciones por partes son funciones cuya definición consta de diferentes funciones sobre intervalos distintos. 𝑓 𝑥 = 2𝑥, 𝑥<0 &3𝑥, 𝑥≥0 Ventaja: su forma puede ser arbitrariamente compleja. Desventaja: su definición requiere mas entradas del usuario. Universidad de Sonora
Funciones de transformación lineal por partes Se usan para: Estiramiento del contraste. Rebanado a nivel de intensidad. Rebanado de plano de bits. Universidad de Sonora
Estiramiento del contraste En inglés contrast stretching. Es el proceso que expande el rango de los valores de intensidad en una imagen para que cubra el rango total de intensidades de un dispositivo de desplegado. Universidad de Sonora
Estiramiento del contraste (c) Se obtiene con: (𝑟 1 , 𝑠 1 )=( 𝑟 𝑚𝑖𝑛 ,0) (d) Se obtiene con: 𝑟 1 , 𝑠 1 =(𝑚,0) 𝑟 2 , 𝑠 2 =(𝑚,𝐿−1) Donde m es la intensidad media de la imagen Universidad de Sonora
Estiramiento del contraste Los puntos ( 𝑟 1 , 𝑠 1 ) y 𝑟 2 , 𝑠 2 controlan la forma de la función de transformación. Si 𝑟 1 = 𝑠 1 y 𝑟 2 = 𝑠 2 la función no cambia la intensidad (función identidad). Si 𝑟 1 = 𝑟 2 , 𝑠 1 =0 y 𝑠 2 =𝐿−1 la función se convierte en una función umbral que crea una imagen binaria. Valores intermedios de ( 𝑟 1 , 𝑠 1 ) y 𝑟 2 , 𝑠 2 producen efectos diferentes. Por lo general 𝑟 1 ≤ 𝑟 2 y 𝑠 1 ≤ 𝑠 2 para que la función tenga valores únicos y monótonamente creciente. Universidad de Sonora
Rebanado a nivel de intensidad En inglés intensity-level slicing. Es el proceso para resaltar un rango específico de intensidades. Hay dos enfoques: Desplegar en un valor (p.e. blanco) los valores en el rango de interés y en otro valor (p.e. negro) las otras intensidades. Produce imágenes binarias. Abrillantar (u oscurecer) las intensidades en el rango de interés y dejar las demás intensidades intactas. Universidad de Sonora
Rebanado a nivel de intensidad Universidad de Sonora
Rebanado a nivel de intensidad Universidad de Sonora
Rebanado de plano de bits En inglés bit-plane slicing. Los pixeles en una imagen son números enteros. Por ejemplo, en una imagen con 256 niveles de gris, cada pixel es un número entero de 8 bits. El proceso consiste en considerar que la imagen consta de n planos de 1 bit, donde n es el número de bits por pixel y resaltar la contribución de bits específicos. Universidad de Sonora
Rebanado de plano de bits Universidad de Sonora
Rebanado de plano de bits Universidad de Sonora
Rebanado de plano de bits Este proceso es útil para: Determinar el número de bits para cuantizar una imagen. Comprimir imágenes. Universidad de Sonora
Procesamiento de histogramas Son técnicas que utilizan el histograma de una imagen para mejorarla. Ecualización de histogramas. Emparejamiento (especificación) de histogramas. Mejoras locales. Uso de estadísticas del histograma. Universidad de Sonora
Histogramas El histograma de una imagen digital con intensidades en el rango 0…𝐿−1 es la función discreta dada por: ℎ 𝑟 𝑘 = 𝑛 𝑘 Donde 𝑟 𝑘 es el valor de intensidad k-esimo y 𝑛 𝑘 es el número de pixeles en la imagen con intensidad 𝑟 𝑘 . Universidad de Sonora
Histogramas Histograma de una imagen en tono de grises. https://stackoverflow.com/questions/54059767/problem-plotting-a-histogram-of-grayscale-image-in-python Universidad de Sonora
Histogramas Universidad de Sonora
Histogramas Dada una imagen a color, se hace un histograma por cada canal (rojo, verde, azul, si es RGB). Universidad de Sonora
Histogramas El histograma normalizado está dado por: 𝑝 𝑟 𝑟 𝑘 = 𝑛 𝑘 /(𝑀×𝑁) Donde M es el número de renglones y N es el número de columnas de la imagen. Universidad de Sonora
Histogramas 𝑝 𝑟 ( 𝑟 𝑘 ) es un estimado de la probabilidad de que la intensidad 𝑟 𝑘 ocurra en la imagen. La suma de todos los componentes del histograma normalizado es 1. Los histogramas son fáciles de calcular por software o por hardware. Son una herramienta popular en el procesamiento digital de imágenes. Universidad de Sonora
Histogramas Fuente: http://www.sci.utah.edu/~acoste/uou/Image/project1/Arthur_COSTE_Project_1_report.html Universidad de Sonora
Histogramas El histograma acumulado se obtiene a partir del histograma normalizado, 𝑝 𝑟 , empleando la siguiente expresión. 𝑠 𝑘 = 𝑗=0 𝑘 𝑝 𝑟 ( 𝑟 𝑗 ) En seudocódigo: C[0] = H[0] C[i] = C[i – 1] + H[i] for i = 1 to L – 1 Universidad de Sonora
Histogramas Fuente: http://www.sci.utah.edu/~acoste/uou/Image/project1/Arthur_COSTE_Project_1_report.html Universidad de Sonora
Ecualización de histogramas En inglés histogram equalization. Mejora el contraste de una imagen usando su histograma. El objetivo es generar una imagen con un nivel de brillo igualmente distribuido en toda la escala de intensidades. Universidad de Sonora
Ecualización de histogramas Fuente: https://www.codeproject.com/Tips/1172662/Histogram-Equalisation-in-Java Universidad de Sonora
Ecualización de histogramas Si los valores de intensidad fueran continuos, el histograma de la imagen ecualizada sería totalmente plano. En la práctica, como la intensidad es discreta, es raro que el histograma ecualizado sea plano. Sin embargo, los valores de intensidad de la imagen ecualizada van a abarcar un rango más amplio de la escala de intensidad. El efecto es una mejora en el contraste. Universidad de Sonora
Ecualización de histogramas Ejemplo: Imagen original Imagen ecualizada Universidad de Sonora
Ecualización de histogramas Se usa la transformación: 𝑠 𝑘 =𝑇 𝑟 𝑘 =(𝐿−1) 𝑗=0 𝑘 𝑝 𝑟 ( 𝑟 𝑗 ) Donde 𝑠 y 𝑟 son las intensidades de salida y de entrada, respectivamente. 𝐿 es el valor máximo de intensidad (para 𝑛 niveles de gris 𝐿= 2 𝑛 ). 𝑝 𝑟 ( 𝑟 𝑗 ) es la probabilidad de que la intensidad 𝑟 𝑗 ocurra en la imagen, y está dada por: 𝑝 𝑟 𝑟 𝑗 = 𝑛 𝑗 𝑀𝑁 Donde 𝑛 𝑗 es el número de pixeles con intensidad 𝑟 𝑗 y 𝑀𝑁 es el número total de pixeles en la imagen. Universidad de Sonora
Ecualización de histogramas Una explicación paso a paso está disponible en: https://theailearner.com/2019/04/01/histogram-equalization/ Universidad de Sonora
Ecualización de histogramas Algoritmo: Entrada: una imagen N x M con L niveles de grises. Paso 1. Crear un arreglo H con L entradas e inicializarlo a 0. Paso 2. Crear el histograma de la imagen: H[grayval(pixel)] = H[grayval(pixel)] + 1 Paso 3. Crear un histograma acumulativo CH: CH[0] = H[0] CH[i] = CH[i – 1] + H[i], i = 1, 2, 3, ... L – 1 Universidad de Sonora
Ecualización de histogramas Paso 4. Calcular la transformación T: Set T[i] = Round(((L – 1) * CH[i]) / (N x M)) Paso 5. Generar la imagen ecualizada usando T: NewImg[x][y] = T[OldImg[x][y]] Implementación en Java disponible en: https://www.codeproject.com/Tips/1172662/Histogram-Equalisation-in-Java Universidad de Sonora
Emparejamiento (especificación) de histogramas En inglés histogram matching o histogram specification. Es transformar una imagen para que su histograma sea igual (matches) al histograma de otra imagen. La ecualización de un histograma es un caso particular en el cual el histograma especificado está uniformemente distribuido. Se puede usar para calibrar imágenes. Por ejemplo, para normalizar dos imágenes que se tomaron en el mismo lugar e iluminación, pero con distintos sensores. Universidad de Sonora
Especificación de histogramas Implementación: Considerar los histogramas normalizados acumulados de la imagen fuente, 𝑆( 𝑟 𝑘 ), y de la imagen destino, 𝐺( 𝑠 𝑘 ). 𝑆 𝑟 𝑘 = 𝑗=0 𝑘 𝑝 𝑟 ( 𝑟 𝑗 ) 𝐺 𝑧 𝑘 = 𝑗=0 𝑘 𝑝 𝑧 ( 𝑧 𝑗 ) Universidad de Sonora
Especificación de histogramas 𝑆 𝑟 𝑗 =𝐺 (𝑧 𝑖 ), por lo tanto 𝑧 𝑖 = 𝐺 −1 (𝑆 𝑟 𝑗 ) By Sinonalexander - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=68374960 La idea es mapear cada valor r, en la imagen original, al valor z que tenga la misma probabilidad en la imagen destino. Universidad de Sonora
Especificación de histogramas El proceso se simplifica si las dos imágenes se ecualizan primero. Al ecualizar una imagen discreta rara vez el histograma resultante es plano. Es muy posible que los histogramas de las dos imágenes ecualizadas no sean iguales. Como resultado, el emparejamiento de los dos histogramas no va a ser perfecto. Una explicación paso a paso está disponible en: https://theailearner.com/2019/04/10/histogram-matching-specification/ Universidad de Sonora
Comparación Dada una imagen con muchos pixeles con niveles cercanos a 0 (negro), se compara el resultado de ecualizar la imagen original contra especificar un histograma que no tenga tantos niveles cercanos a 0 y transformar la imagen original para que su histograma se empareje (matches) dicho histograma. Universidad de Sonora
Imagen original Universidad de Sonora
Imagen ecualizada Universidad de Sonora
Especificación del histograma Universidad de Sonora
Mejoras locales Los dos métodos vistos (ecualización y especificación de histogramas) son globales. Modifican los pixeles por una transformación basada en la distribución de intensidades en toda la imagen. En ocasiones es necesario mejorar los detalles sobre áreas pequeñas de una imagen. La solución diseñar funciones de transformación basadas en la distribución de intensidades en la vecindad de cada pixel de la imagen. La ecualización y el especificación de histogramas se pueden adaptar para mejoras locales. Universidad de Sonora
Mejoras locales El procedimiento es definir una vecindad y mover su centro pixel a pixel. En cada lugar, se obtiene el histograma de los pixeles en la vecindad y se obtiene una función de transformación, ya sea para ecualización o para especificación del histograma. Esta función se usa para mapear la intensidad del pixel en el centro de la vecindad. El centro de la vecindad se mueve a un pixel adyacente y se repite el procedimiento. Universidad de Sonora
Mejoras locales Universidad de Sonora
Uso de estadísticas del histograma Dada una imagen con 𝑀 renglones y 𝑁 columnas se puede calcular la media, 𝑚, y la varianza 𝜎 2 de las intensidades. 𝑚= 1 𝑀𝑁 𝑥=0 𝑀−1 𝑦=0 𝑁−1 𝑓(𝑥,𝑦) 𝜎 2 = 1 𝑀𝑁 𝑥=0 𝑀−1 𝑦=0 𝑁−1 𝑓 𝑥,𝑦 −𝑚 2 La media es una medida de la intensidad promedio de la imagen. La varianza es una medida del contraste de la imagen. Universidad de Sonora
Uso de estadísticas del histograma La media y la varianza se pueden calcular globalmente sobre toda la imagen o localmente sobre una vecindad alrededor de cada pixel. Por ejemplo, suponer que se desea mejorar las áreas oscuras de una imagen dejando las partes claras sin afectar. Una forma de saber si un área está oscura es calcular la media local, 𝑚 𝑙 , y compararla con la media global, 𝑚 𝑔 . Un pixel es candidato al proceso de mejora si 𝑚 𝑙 ≤ 𝑘 0 𝑚 𝑔 , donde 𝑘 0 es una constante positiva menor que 1. Universidad de Sonora
Uso de estadísticas del histograma Una forma de saber si un área tiene un bajo contraste es calcular la varianza local, 𝜎 𝑙 2 , y compararla con la varianza global, 𝜎 𝑔 2 . Un pixel es candidato al proceso de mejora si 𝜎 𝑙 2 ≤ 𝑘 2 𝜎 𝑔 2 , donde 𝑘 2 es una constante positiva menor que 1 si se desea mejorar las áreas oscuras o mayor que 1 para las áreas claras. Hay que definir un contraste mínimo. De otra forma se afectarían áreas constantes cuya varianza es 0. Se introduce la condición 𝑘 1 𝜎 𝑔 2 ≤ 𝜎 𝑙 2 con 𝑘 1 < 𝑘 2 . Universidad de Sonora
Uso de estadísticas del histograma Un pixel que cumpla con las condiciones de mejora local se multiplica por una constante, 𝐸, para incrementar o decrementar el valor de su intensidad. Los pixeles que no cumplen las condiciones se dejan sin cambiar. Universidad de Sonora
Uso de estadísticas del histograma En resumen, sea 𝑓(𝑥,𝑦) el valor de la imagen en las coordenadas (𝑥,𝑦) y 𝑔(𝑥,𝑦) el correspondiente valor mejorado en esas coordenadas: 𝑔 𝑥,𝑦 = 𝐸×𝑓 𝑥,𝑦 , 𝑚 𝑙 ≤ 𝑘 0 𝑚 𝑔 AND 𝑘 1 𝜎 𝑔 2 ≤ 𝜎 𝑙 2 ≤ 𝑘 2 𝜎 𝑔 2 &𝑓(𝑥,𝑦), de otro modo La selección de los parámetros requiere experiencia con la imagen dada. El tamaño de la vecindad debe ser lo más pequeña posible para preservar el detalle y no hacer lento el proceso. Universidad de Sonora
Uso de estadísticas del histograma E = 4, k0 = 0.4, k1 = 0.02, k2 = 0.4 Vecindad: 3 x 3 Universidad de Sonora