La gráfica que aparece en la Figura 3 es el histograma ...hilario_sm/slide/PDI/unidad II.pdf · La...

Post on 06-Sep-2019

6 views 0 download

Transcript of La gráfica que aparece en la Figura 3 es el histograma ...hilario_sm/slide/PDI/unidad II.pdf · La...

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ólica2.5. Binarización a la media, umbralización controlada y ecualización

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:

Histograma de una imagen digital

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 laizquierda está el valor más oscuro (negro) y en el extremo derecho el más claro (blanco). El resto de niveles se distribuyenuniformemente. Se ha puesto una escala con los tonos de gris correspondientes para facilitar la comprensión. En unhistograma real habitualmente no encontrará numerado el eje vertical, ni la escala de tonos para el eje horizontal. Laaltura de cada barra representa el número de píxeles de la imagen que presentan ese nivel de gris concreto. Se puedededucir entonces que la imagen tiene 15 píxeles completamente negros (con nivel 0), 11 de tono gris oscuro (nivel 1) y 38pí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 laimagen. Como ve, con sólo mirar el histograma podemos deducir algunas cosas interesantes sobre la imagen, lo quedemuestra su utilidad: La mayor parte de los píxeles son blancos, así que probablemente se aprecie un fondo blancouniforme. Hay un número significativo de píxeles totalmente blancos y totalmente negros, por lo que presentará unaspecto 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 lacomposició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 lasuperposición de 3 histogramas distintos, los que corresponden a cada uno de los canales que forman la imagen. En Gimpse 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, comolas que se llevan a cabo en el área de la visión por computador. La Figura 12 muestra un ejemplo típico. Para unaaplicación de inspección automática, se trata de determinar los píxeles de la imagen que corresponden a laherramienta, que se sabe depositada sobre un fondo de color más claro, bastante uniforme. La clave está enencontrar 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 delhistograma.

La figura muestra un típico histograma bimodal, donde hay dos grandes agrupaciones de niveles que aparecen concierta frecuencia en la imagen, una correspondiente al objeto oscuro y otra debida al fondo claro. Una vezdeterminadas estas dos agrupaciones, el nivel de gris equidistante entre ambas, resultaría un nivel de umbraladecuado.

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 histogramasLa 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ónsolo 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 lapróxima.

• Negativo, Corrección gamma, Logaritmo parametrizado,Corrección de rango dinámico

Operadores funcionales elementales:

OpenCV Gamma Correction

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

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ásde ayudar a uno hacer la mayor parte de la edición de imágenes.

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/