Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Procesamiento digital de imágenes, Unidad 4 — Histogramas de imagen, 4.2 — Ecualización de histograma ·

Ecualización global

Ecualización global

Introducción

En el procesamiento digital de imágenes, la ecualización de histograma es una técnica poderosa y versátil para mejorar la visibilidad y calidad visual de las imágenes. Es particularmente útil cuando se trabaja con imágenes que presentan un rango de intensidades limitado o desigual. La ecualización de histograma se centra en redistribuir los valores de píxeles de tal manera que el histograma resultante sea más uniforme, lo cual puede mejorar la contraste y la nitidez visual.

La importancia de esta técnica radica en su capacidad para transformar imágenes con contraste deficiente o desigual en imágenes más equilibradas. Es una herramienta fundamental tanto en el procesamiento digital de imágenes como en aplicaciones de visión por computador, donde el contraste adecuado es crucial.

Explicación principal

La ecualización de histograma es un proceso que mapea los valores de intensidad de la imagen original a nuevos valores de manera que se maximiza el rango de contraste. Este proceso implica varios pasos:

  1. Histograma original: Calcula la distribución de frecuencia de los píxeles en la imagen.
  2. Cálculo del histograma acumulado: Genera un nuevo histograma donde cada valor es la suma de las frecuencias anteriores y el propio valor.
  3. Mapeo lineal: Aplica una transformación lineal a los valores del histograma para que se distribuyan uniformemente.

A continuación, se muestra un ejemplo simple en Python utilizando la biblioteca OpenCV:

import cv2
import numpy as np
from matplotlib import pyplot as plt

# Cargar imagen
img = cv2.imread('image.jpg', 0)  # Carga una imagen escala de grises

# Calcular histograma y ecualizar
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
cdf = hist.cumsum()  # Cálculo del histograma acumulado
cdf_normalized = cdf * hist.max() / cdf.max()  # Normalización

# Aplicar ecualización
img_equalized = np.interp(img.flatten(), bins[:-1], cdf_normalized)
img_equalized = img_equalized.reshape(img.shape)

plt.figure(figsize=(12, 6))
plt.subplot(131), plt.imshow(img, cmap='gray')
plt.title('Imagen original'), plt.xticks([]), plt.yticks([])
plt.subplot(132), plt.hist(img.flatten(), 256, [0, 256], color='r')
plt.xlim([0, 256]), plt.xlabel('Intensidad de píxel'), plt.ylabel('Frecuencia')
plt.subplot(133), plt.imshow(img_equalized, cmap='gray')
plt.title('Imagen ecualizada'), plt.xticks([]), plt.yticks([])
plt.show()

Errores típicos / trampas

Trampa 1: Ignorar el tipo de imagen

Es frecuente olvidarse de trabajar con imágenes en escala de grises cuando se aplica la ecualización. Recuerda que esta técnica es particularmente útil para imagenes escala de grises, aunque también puede aplicarse a imágenes RGB mediante separación y combinación.

Trampa 2: No normalizar el histograma

El histograma acumulado debe ser normalizado para que los valores estén en la misma escala que los píxeles originales. Si no se realiza este paso, la ecualización puede resultar en una imagen con valores fuera del rango permitido.

Trampa 3: Ignorar el contraste local

La ecualización global no considera cambios de contraste en diferentes regiones de la imagen. En algunas aplicaciones, es necesario usar técnicas de ecualización adaptativa para mejorar los resultados en áreas con variación de contraste.

Checklist accionable

  1. Verifica que trabajes con imágenes escala de grises: Si trabajas con imágenes RGB, asegúrate de convertirlas a escala de grises antes de aplicar la ecualización.
  2. Cálculo del histograma acumulado: Asegúrate de calcular el histograma acumulado correctamente para evitar errores en la transformación.
  3. Normaliza los valores: Normaliza los valores del histograma acumulado para que se ajusten a la escala de píxeles originales.
  4. Aplica ecualización adaptativa: Para áreas con contraste local, considera usar técnicas de ecualización adaptativa como la ecualización adaptativa o las ventanas morfológicas.
  5. Visualiza el resultado: Asegúrate de visualizar tanto la imagen original como la ecualizada para verificar que el contraste haya sido mejorado.

Siguientes pasos

  1. Prueba en diferentes tipos de imágenes: Aplica la ecualización global a una variedad de imágenes para entender cómo se comporta con diferentes tipos de contenido y rango de intensidad.
  2. Implementa ecualización adaptativa: Experimenta con técnicas de ecualización adaptativa, como el algoritmo de ecualización adaptativa o la ventanas morfológicas, para mejorar resultados en áreas con contraste variado.
  3. Integra en proyectos: Incluye la ecualización global en tus proyectos actuales para evaluar su efectividad y aplicarla según sea necesario.

En resumen, la ecualización de histograma es una técnica poderosa que puede transformar imágenes deficiente en imágenes con mayor contraste y nitidez. Asegúrate de entender sus limitaciones y considerar técnicas adicionales cuando se necesite mejorar el contraste local o adaptarse a diferentes tipos de imágenes.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).