Ecualización del histograma

De Wikipedia, la enciclopedia libre

La ecualización del histograma de una imagen es una transformación que pretende obtener para una imagen un histograma con una distribución uniforme. Es decir, que exista el mismo número de píxeles para cada nivel de gris del histograma de una imagen monocroma.

La función de la ecualización es:

En teoría, la aplicación de esta operación debería transformar el histograma en otro con una forma perfectamente uniforme sobre todos los niveles de gris. Sin embargo, en la práctica esto no se va a poder conseguir pues se estaría trabajando con funciones de distribución discretas en lugar de continuas. En la transformación, todos los píxeles de un mismo nivel de gris se transformarán a otro nivel de gris, y el histograma se distribuirá en todo el rango disponible separando en lo posible las ocupaciones de cada nivel.

El resultado de la ecualización maximiza el contraste de una imagen sin perder información de tipo estructural, esto es, conservando su entropía (información).

Análisis de los canales de color de una imagen haciendo uso de histogramas[editar]

Una imagen digital está compuesta por píxeles. Cada píxel es un punto con un valor de intensidad para cada canal y combinando los diferentes canales obtenemos el color deseado. En este caso se analiza el aporte de cada canal a la imagen. Estudiando los canales denominados RGB: rojo, verde y azul.

Cada píxel toma un valor entero entre 0 y 255 (píxeles de 8 bits) para asignarle un color, generando una escala entre estos valores para cada canal. De esta manera, las zonas más oscuras de una imagen estarán representadas por píxeles con valores cercanos a 0, mientras que las zonas más claras con píxeles cercanos a 255.

De este modo, al analizar los canales RGB de una determinada selección de una imagen podemos saber el número de píxeles con cada valor (entre 0 y 255) que hay para cada canal. Al graficar número de píxeles en función del valor dentro de la escala obtenemos un histograma (un conteo de píxeles para cada valor).

Haciendo uso del programa ImageJ se obtiene el histograma de manera directa. Para ello seleccionamos primero la región de interés, y luego hacemos click en el menú Analyze-->Histogram. Inmediatamente el programa abre una nueva ventana donde aparece un histograma promedio de todos los canales tal y como vemos a continuación.

Imagen a usar.
Menú Analyze->Histogram.

Accedemos al histograma.

Ventana con los datos para los histogramas de cada canal.

Al hacer click en el botón RGB vamos cambiando a los diferentes canales, y sus respectivos histogramas.

Histogramas para el promedio de todos los canales y para cada canal.

En la ventana 'Histogramas' también se muestran los valores para diferentes parámetros, que se muestran a continuación:

  • Mode: es el valor que más veces aparece —se ve como el máximo del histograma—.
  • Mean: es el promedio de todos los valores —generalmente es cercano a la moda—.
  • Count: es el número de píxeles analizados.
  • StdDev: es la desviación estándar, que puede aproximarse como el error en la determinación de la media.
  • Min: valor mínimo del histograma.
  • Max: valor máximo del histograma.

Al hacer click en el botón Copy se copia una tabla de valores que puede copiarse, por ejemplo, a una planilla de cálculo. En dicha tabla aparecerá el valor dentro de la escala del canal elegido, y el número de píxeles con dicho valor. De este modo se pueden copiar todos los datos a una hoja de cálculo para su posterior análisis (incluso se pueden realizar gráficas del histograma por cuenta propia).

Por ejemplo, en la hoja de cálculo con los datos proporcionados de un determinado histograma. La columna 'A' adquiere los diferentes valores del color y la columna 'B' adquiere el número de píxeles para dichos valores.

Hoja de cálculo con los datos obtenidos del histograma.

De manera que se puede realizar un análisis RGB de los canales de una determinada imagen y volcar la información obtenida en una hoja de cálculo, para su posterior análisis.

Ejemplos de ecualización de histogramas[editar]

Se presentan a continuación distintos ejemplos de ecualización de histogramas mediante el uso del software libre ImageJ.

  • Realce de contraste

Mediante esta técnica se mejora el contraste de la imagen ampliando el rango del histograma. Por ejemplo en la imagen presentada a continuación, la figura del Maneki-Neko presenta un contraste bueno, sin embargo la mesa sobre la que está apoyada no presenta un contraste tan óptimo. Mediante realce de contraste, podemos observar como se redistribuyen los valores del histograma, para cubrir una mayor zona y mejorar el contraste de la mesa.

Histograma imagen original
Histograma imagen realzada
  • Ecualización manual del histograma

Proceso básico utilizado por ejemplo en el mundo de la medicina, concretamente en radiología. Mediante la modificación del brillo y contraste de la imagen, se pueden observar tejidos de distintas densidades en las imágenes radiológicas, tanto en las modalidades de radiografía convencional, tomografía computarizada, mamografías, etc … A continuación podemos observar un corte de imagen de una exploración de tomografía computarizada. Variando el contraste y brillo de la imagen se pueden realzar las zonas óseas o los pulmones y sus bronquios.

Imagen CT original
Imagen CT con realce de huesos
Image CT con realce para pulmón
Histograma imagen original
Histograma de CT con realce para huesos
Histograma de CT con realce de pulmón

Uso de ImageJ para Ecualizar histogramas[editar]

Como se ha mencionado más arriba la ecualización del histograma de una imagen (representación de cómo se distribuye la información de una imagen en forma de sucesos con una determinada frecuencia), sirve en primera instancia para mejorar el contraste de ésta sin perder la información de tipo estructural.

Hay dos modos sencillos de ecualizar un histograma en ImageJ, para ilustrarlos, partimos de una imagen de prueba de la que obtenemos su histograma de niveles de gris mediante los comandos:

“Analize” → “Histogram”
Imagen Original
Histograma Original
  1. El primer modo consiste en ajustar manualmente el rango del histograma, para ello,usamos los siguientes comandos:
“Image” → “Adjust” → Brightness/Contrast

Nos aparecerá la siguiente ventana:

Ajuste Manual

Variando los valores del mínimo y el máximo del histograma veremos como automáticamente van variando los valores de brillo y contraste. Ajustando el intervalo sobre la zona del histograma en la que tenemos señal, conseguimos una posterior redistribución de éstos niveles del histograma que abarcarán todo el rango inicial aumentando así el contraste entre píxels.

El resultado tanto de la imagen como del histograma es el siguiente:

Imagen Ecualización Manual
Histograma Ecualización Manual

Como podemos comprobar, ha aumentado el brillo de la imagen y se resuelven mejor los detalles.

2. El segundo modo de ecualizar el histograma de una imagen es más automático,mediante el uso de los comandos:

Process” → “Enhance Contrast”

Nos aparece entonces el siguiente cuadro de diálogo:

Ventana Ecualización automática

En el que marcamos la opción de “Equalize histogram”.

El valor que introducimos en “Saturated pixels” indica que estamos dejando que en la nueva distribución de sucesos del histograma se tenga un 5% (en este caso) de píxels en el rango del valor máximo del histograma (255 en nuestro caso), es decir, que se puede regular el grado de saturación de la imagen.

El resultado de esta ecualización es el siguiente:

Imagen Ecualización Automática
Histograma Ecualización Automática

En este caso vemos como la ecualización automática ha repartido de un modo más eficiente los valores de gris entre los píxels de la imagen.

Podríamos haber obtenido este mismo resultado con el método anterior si, en la ventana B&C hubiésemos presionado el botón “Auto” que aparece en la parte inferior.

Comparando ambo métodos, vemos cómo la ecualización automática es más efectiva a la hora de optimizar el proceso para obtener el mejor contraste posible, mientras que la ecualización manual nos permite ajustar el histograma de la imagen en función de lo que realmente queramos resaltar de ella, nos da más libertad de ajuste aunque el resultado no sea el óptimo.

Referencias[editar]

  • Acharya and Ray, Image Processing: Principles and Applications, Wiley-Interscience 2005 ISBN 0-471-71998-6
  • Russ, The Image Processing Handbook: Fourth Edition, CRC 2002 ISBN 0-8493-2532-3