Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Ajustar el contraste de una imagen utilizando la ecualización de histogramas

Este ejemplo muestra cómo ajustar el contraste de una imagen en escala de grises utilizando la ecualización de histogramas.

La ecualización de histogramas consiste en transformar los valores de intensidad para que el histograma de la imagen de salida coincida aproximadamente con un histograma especificado. De forma predeterminada, la función de ecualización de histogramas, histeq, trata de igualar un histograma plano con 64 bins, de forma que la imagen de salida tenga valores de píxeles distribuidos uniformemente en todo el intervalo. También puede especificar un histograma de destino diferente para igualar un contraste personalizado.

Histograma de la imagen original

Lea una imagen en escala de grises en el espacio de trabajo.

I = imread("pout.tif");

Muestre la imagen y su histograma. La imagen original tiene un contraste bajo, con la mayoría de los valores de los píxeles en el centro del intervalo de intensidad.

figure
subplot(1,3,1)
imshow(I)
subplot(1,3,2:3)
imhist(I)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

Ajustar el contraste utilizando la ecualización predeterminada

Ajuste el contraste mediante la ecualización de histogramas. Utilice el comportamiento predeterminado de la función de ecualización de histogramas, histeq. El histograma objetivo predeterminado es un histograma plano con 64 bins.

J = histeq(I);

Muestre la imagen en la que se ha ajustado el contraste y su nuevo histograma.

figure
subplot(1,3,1)
imshow(J)
subplot(1,3,2:3)
imhist(J)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

Ajustar el contraste especificando el número de bins

Ajuste el contraste especificando un número diferente de bins. Con un número pequeño de bins, hay claramente menos niveles de gris en la imagen en la que se ha ajustado el contraste.

nbins = 10;
K = histeq(I,nbins);

Muestre la imagen en la que se ha ajustado el contraste y su nuevo histograma.

figure
subplot(1,3,1)
imshow(K)
subplot(1,3,2:3)
imhist(K)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

Ajustar el contraste especificando la distribución objetivo

Ajuste el contraste especificando una distribución objetivo no plana. Este ejemplo muestra un histograma objetivo linealmente decreciente, lo que enfatiza los valores de píxeles pequeños y hace que las sombras parezcan más oscuras. Muestre el histograma objetivo.

target = 256:-4:4;
figure
bar(4:4:256,target)

Figure contains an axes object. The axes object contains an object of type bar.

Ajuste el histograma de la imagen para que coincida aproximadamente con el histograma objetivo.

L = histeq(I,target);

Muestre la imagen en la que se ha ajustado el contraste y su nuevo histograma.

figure
subplot(1,3,1)
imshow(L)
subplot(1,3,2:3)
imhist(L)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

Consulte también

|

Temas relacionados