Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema:
Manejo de Imágenes en Matlab
Manejo de Imágenes en Matlab
¿PARA QUÉ SE UTILIZA EL HISTOGRAMA?
Analizar tus imágenes sólo observándolas a través de la pantalla, ya que este método es poco
fiable, depende de la luz ambiente, de la calidad de la pantalla, y de su propia luminosidad.
•Un histograma con toda la información acumulada en una misma zona, nos habla de una
imagen con poco contraste.
•Un histograma con la información acumulada en los extremos de la gráfica (en las luces
y en las sombras) y con poca o ninguna información en la zona de luces medias, es un
histograma de alto contraste, ya que la diferencia entre luces y sombras es elevada, por
ejemplo una imagen a contraluz, daría un histograma parecido al que planteamos.
Manejo de Imágenes en Matlab
Ayuda a decidir cual es el procesamiento mas adecuado para mejorar la calidad de la imagen…
- Tanto cualitativamente (que operación aplicar)
- Tanto cuantitativamente (en qué cantidad)
La instrucción:
imadjust(b, [low_in high_in], [low_out high_out], gamma)
⇒ Con: gamma = 1
low_in = low_out = 0
high_in = high_out = 1
La imagen no sufre transformación alguna.
Manejo de Imágenes en Matlab
Contracción del histograma
Se contraen los niveles de grises, es decir los niveles de grises usados en la imagen de salida serán
menores que los usados en la imagen original.
Manejo de Imágenes en Matlab
ó
>>J=imadjust(nombre de imagen,[0 1],[0.3 0.7]);
>> imhist(J)
ó
>> d=imadjust(b,[0 1],[0 1],0.5); % gamma 0.5, y el 0 es el negro y el 1 es el blanco
Manejo de Imágenes en Matlab
Expansión del histograma
Se expanden los niveles de grises, es decir los niveles de grises usados en la imagen de salida serán
mayores que los usados en la imagen original
Manejo de Imágenes en Matlab
ó
>> e=imadjust(b,[0 1],[0 1],1.5); % gamma 1.5, manteniendo el 0 y el 1
>> imhist(e)
Manejo de Imágenes en Matlab
Gamma = 1
Manejo de Imágenes en Matlab
Transformación Gamma
Imhist(imadjust (I,[low_in,high_in] [low_out,high_out], gamma))
Manejo de Imágenes en Matlab
Imhist(imadjust (I,[low_in,high_in] [low_out,high_out], gamma))
Transformación Gamma ¿Qué representa la transformación gamma?
Es el ajuste de los valores de intensidad de una imagen con el objetivo de compensar las
variaciones de los dispositivos de salida.
Para gamma > 1 hay una gran corrección en el contraste para valores pequeños del color de
entrada mientras que una pequeña corrección en el contraste para valores grandes. El brillo
aumenta más para valores intermedios del color de entrada.
Para gamma < 1 hay una pequeña corrección en el contraste para valores pequeños del color
de entrada mientras que una gran corrección en el contraste para valores grandes. El brillo
disminuye más para valores intermedios del color de entrada.
Manejo de Imágenes en Matlab
Transformación Gamma
Imhist(imadjust (I,[low_in,high_in] [low_out,high_out], gamma))
Manejo de Imágenes en Matlab
Ejercicio:
- Tomar una imagen color, transformarla en escala de grises
- Realizar el histograma de grises de imagen invertida
- Realizar el histograma de grises de imagen en escala de grises.
- Realizar la contracción del histograma de imagen invertida
- Realizar la contracción del histograma de en escala de grises.
- Realizar la expansión del histograma de imagen invertida
- Realizar la expansión del histograma de en escala de grises.
- Realizar la transformación del histograma utilizando gamma 0,5 – 0,75 – 1 - 2 – 4
- Dividir la pantalla y visualizar las distintas imágenes y sus histogramas
- Colocar el titulo a cada uno.
Manejo de Imágenes en Matlab
Caso Práctico:
Dada la siguiente imagen como podemos corregir la falta de contraste
- Analizar el histograma
Manejo de Imágenes en Matlab
Una imagen muy brillante tendrá todos Para aumentar el contraste de una imagen se estirar
los píxeles confinados en valores altos su histograma hacia cualquiera de los extremos
ECUALIZAR:
El objetivo de la ecualización es ampliar el rango dinámico de los niveles de grises para
acentuar el contraste visual de la imagen.
Se busca que la imagen tenga una distribución uniforme sobre toda la escala de grises.
Manejo de Imágenes en Matlab
ECUALIZACIÓN
• Proceso no lineal.
ECUALIZACIÓN
Manejo de Imágenes en Matlab
Cuanto mayor es la dispersión a lo largo del eje de los niveles de gris, mayor es el
contraste de la imagen y es entonces cuando el sistema visual humano consigue una
mejor respuesta en su apreciación de la imagen.
Manejo de Imágenes en Matlab
Un Histograma informa sobre el número de píxeles que hay para cada nivel de gris.
Es una gráfica en donde se muestra el número de pixel de cada nivel de gris
Los histogramas son la base de muchas técnicas de procesamiento de la imagen en el dominio espacial.
>> J = histeq(I,n)
donde
I es la imagen en escala de grises que queremos ecualizar
n es la cantidad de niveles de grises que se quieren utilizar en la ecualización.
La ecualización del histograma genera una imagen cuyos niveles de intensidad son igualmente
probables y, además, cubren todo el rango [0,255].
El resultado neto de este proceso es una imagen cuyo rango dinámico ha sido incrementado, que
tenderá a poseer un mayor contraste.
Manejo de Imágenes en Matlab
Histograma de la imagen: >> imhist (f,n)
Por ejemplo:
Manejo de Imágenes en Matlab
Ecualización
del histograma
Manejo de Imágenes en Matlab
Contraste de ecualización adaptable del histograma (CLAHE)
Imagen Original Después de la ecualización
Para resolver este problema, se utiliza la ecualización de histograma adaptable de contraste limitado CLAHE
Manejo de Imágenes en Matlab
En Matlab
>> J = adapthisteq(I)
Manejo de Imágenes en Matlab
I = imread('tire.tif');
J = histeq(I); % Ecualizar
imshowpair(I,J,'montage') axis off
Manejo de Imágenes en Matlab
I = imread('tire.tif');
J = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh'); % ecualización Clahe
imshowpair(I,J,'montage'); title('Original Image (left) and Contrast Enhanced Image (right)')
Manejo de Imágenes en Matlab