Está en la página 1de 35

2.

1 Histograma de una imagen digital


2.2. Operadores funcionales elementales: negativo, corrección gamma, logaritmo parametrizado, corrección
de rango dinámico
2.3. Operaciones puntuales de corrimiento: contraste porcentual y por canal
2.4. Operadores adicionales: sigmoides, senoidal, tangente hiperbólica
2.5. Binarización a la media, umbralización controlada y ecualización
Histograma de una imagen digital
Vamos a usar la pequeña imagen que representa la Figura 2 para comprender qué es un histograma.

Se trata de una imagen en niveles de gris muy simple, de 8x8 píxeles de tamaño (se han señalado los límites
entre píxeles para facilitar su identificación). Sólo son posibles 4 niveles de gris, porque se van a usar 2 bits
para codificar el brillo de cada píxel. De la forma habitual, los niveles de gris se numeran del 0 al 3,
correspondiendo un brillo mayor a los valores más altos. La tabla siguiente resume esto:
La gráfica que aparece en la Figura 3 es el histograma correspondiente a esta imagen.
Los números que aparecen el eje horizontal representan los niveles de gris que pueden aparecer en la imagen: a la
izquierda está el valor más oscuro (negro) y en el extremo derecho el más claro (blanco). El resto de niveles se distribuyen
uniformemente. Se ha puesto una escala con los tonos de gris correspondientes para facilitar la comprensión. En un
histograma real habitualmente no encontrará numerado el eje vertical, ni la escala de tonos para el eje horizontal. La
altura de cada barra representa el número de píxeles de la imagen que presentan ese nivel de gris concreto. Se puede
deducir entonces que la imagen tiene 15 píxeles completamente negros (con nivel 0), 11 de tono gris oscuro (nivel 1) y 38
píxeles completamente blancos (nivel 3). No hay ningún píxel en la imagen con un nivel de gris 2.
¿Cuánto deberán sumar las alturas de todas las barras? Efectivamente, 64, que es el número total de píxeles que tiene la
imagen. Como ve, con sólo mirar el histograma podemos deducir algunas cosas interesantes sobre la imagen, lo que
demuestra su utilidad: La mayor parte de los píxeles son blancos, así que probablemente se aprecie un fondo blanco
uniforme. Hay un número significativo de píxeles totalmente blancos y totalmente negros, por lo que presentará un
aspecto bien contrastado.
El histograma de canales de color
En todos los histogramas que han aparecido hasta ahora el eje horizontal representa el valor de brillo de los píxeles.
Para imágenes en color es posible realizar un análisis más detallado, considerando que están formadas por la
composición de tres canales de color RGB (componentes roja, verde y azul):
Para las imágenes en color es posible obtener el histograma de canales de color, que cabe entenderlo como la
superposición de 3 histogramas distintos, los que corresponden a cada uno de los canales que forman la imagen. En Gimp
se accede a este histograma seleccionando la opción “RGB”, tal como se señala en la Figura 11:
También es posible obtener el histograma de cada uno de estos canales por separado:
Histograma y visión por computador
El histograma resulta una herramienta de gran interés también en tareas de análisis automático de imágenes, como
las que se llevan a cabo en el área de la visión por computador. La Figura 12 muestra un ejemplo típico. Para una
aplicación de inspección automática, se trata de determinar los píxeles de la imagen que corresponden a la
herramienta, que se sabe depositada sobre un fondo de color más claro, bastante uniforme. La clave está en
encontrar un nivel de gris o umbral, tal que todos los píxeles más oscuros (a su izquierda en el histograma)
correspondan a la herramienta y los más claros al fondo. Este nivel podría determinarse a partir del análisis del
histograma.

La figura muestra un típico histograma bimodal, donde hay dos grandes agrupaciones de niveles que aparecen con
cierta frecuencia en la imagen, una correspondiente al objeto oscuro y otra debida al fondo claro. Una vez
determinadas estas dos agrupaciones, el nivel de gris equidistante entre ambas, resultaría un nivel de umbral
adecuado.
En la siguiente figura se señalan con color rojo todos los píxeles que se consideran pertenecientes a la herramienta por ser
más oscuros que el nivel de umbral.
Application of Mask
Ecualización de histogramas
La ecualización de histograma busca obtener una distribución uniforme de los distintos niveles de intensidad, esta
técnica es muy utilizada para mejorar el contraste de las imágenes.

Para aplicar la ecualización de histograma OpenCV nos provee la función


solo debemos pasarle la imagen de estrada, la función nos retorna la imagen ecualizada.
Podemos observar que la imagen está bastante clara, tiene mucho brillo, si vemos el histograma podremos ver
que la mayoría de los pixeles son blancos, en la siguiente imagen vemos el caso contrario, la imagen tiene poca
luz, está oscura.
Ahora la mayor concentración de pixeles está en el nivel de intensidad cercano a 0 es decir el color negro.
Usando la ecualización de histogramas podemos mejorar ambas imágenes, veamos el código:
Obtenemos el siguiente resultado:

De momento terminamos este tutorial de visión por computador con OpenCV y el lenguaje Python, todavía hay
muchas que aprender sobre los histogramas, esperamos en el futuro poder profundizar en el tema, hasta la
próxima.
Operadores funcionales elementales:

• Negativo,
Corrección gamma,
Logaritmo parametrizado,
Corrección de rango dinámico
OpenCV Gamma Correction
Gamma es una característica importante, pero rara vez entendida de prácticamente todos los sistemas
de imágenes digitales. Se define la relación entre el valor numérico de un pixel y su luminancia
real. Sin gamma, sombras capturadas por las cámaras digitales no aparecerían como lo hicieron a
nuestros ojos (en un monitor estándar). Es también conocida como la corrección de gamma, la
codificación gamma o rayos gamma de compresión, pero todas ellas se refieren a un concepto
similar. Entender cómo funciona la gamma pueden mejorar la técnica de uno de la exposición, además
de ayudar a uno hacer la mayor parte de la edición de imágenes.

Gamma correction is also known as the Power Law Transform. First, our image pixel intensities must be
scaled from the range [0, 255] to [0, 1.0]. From there, we obtain our output gamma corrected image by
applying the following equation:
O = I ^ (1 / G)
Where I is our input image and G is our gamma value. The output image O is then scaled back to the
range [0, 255].
Gamma values < 1 will shift the image towards the darker end of the spectrum while gamma values >
1 will make the image appear lighter. A gamma value of G=1 will have no affect on the input image
Logaritmo parametrizado
corrección de rango dinámico
Operaciones puntuales de corrimiento

• Contraste porcentual
• Por canal
Operadores adicionales:
• Sigmoides
• Senoidal
• Tangente hiperbólica
• Binarización a la media
• Umbralización controlada
• Ecualización
Bibliografía
• https://riunet.upv.es/bitstream/handle/10251/12711/El%20histograma%20una%20imagen%20digital.pdf?sequence=1
• https://docs.opencv.org/3.1.0/d1/db7/tutorial_py_histogram_begins.html
• http://acodigo.blogspot.com/2017/08/histogramas-opencv-python.html
• https://sites.google.com/site/todofotografiadigital/home/tutoriales-de-fotografia-digital/entender-la-correccion-gamma
• https://www.pyimagesearch.com/2015/10/05/opencv-gamma-correction/

También podría gustarte