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.

Mejora de imágenes con poca luz

Este ejemplo muestra cómo iluminar las regiones oscuras de una imagen evitando la sobresaturación de las regiones claras.

Una imagen puede sufrir un alto nivel de degradación a causa de las malas condiciones de iluminación. Estas imágenes pueden tener intervalos dinámicos bajos con niveles de ruido elevados que afectan al rendimiento general de los algoritmos de visión artificial. Para conseguir algoritmos de visión artificial robustos en condiciones de poca luz, utilice la mejora de imágenes con poca luz para optimizar la visibilidad de una imagen.

Lea y muestre una imagen RGB con poca luz.

A = imread("lowlight_1.jpg");
imshow(A)
title("Original Image")

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

Iluminación localizada

Ilumine la imagen con poca luz en proporción a la oscuridad de la región local. A continuación, muestre la imagen iluminada. Las regiones oscuras se iluminan significativamente. Las regiones claras también se iluminan ligeramente y quedan sobresaturadas. La imagen tiene una apariencia poco natural y es posible que esté demasiado iluminada.

B = imlocalbrighten(A);
imshow(B)

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

Muestre un histograma de los valores de los píxeles de la imagen original y de la imagen iluminada. En la imagen original, el histograma tiende hacia valores de píxeles más oscuros. En la imagen iluminada, los valores de los píxeles están más distribuidos por todo el intervalo de valores de los píxeles.

figure
subplot(1,2,1)
imhist(A)
title("Original Image")
subplot(1,2,2)
imhist(B)
title("Brightened Image")

Figure contains 4 axes objects. Axes object 1 with title Original Image contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 with title Brightened Image contains an object of type stem. Axes object 4 contains 2 objects of type image, line.

Ilumine la imagen original con poca luz de nuevo y especifique una cantidad de iluminación más baja.

amt = 0.5;
B2 = imlocalbrighten(A,amt);

Muestre la imagen iluminada. La imagen tiene una apariencia más natural. Las regiones oscuras de la imagen están mejoradas, pero las regiones claras de los ventanales siguen estando sobresaturadas.

figure
imshow(B2)
title("Image with Less Brightening")

Figure contains an axes object. The axes object with title Image with Less Brightening contains an object of type image.

Para reducir la sobresaturación de las regiones claras, aplique la composición alfa al iluminar la imagen. Las regiones oscuras están más iluminadas y los píxeles claros mantienen sus valores de píxeles originales.

B3 = imlocalbrighten(A,amt,AlphaBlend=true);
imshow(B3)
title("Image with Alpha Blending")

Figure contains an axes object. The axes object with title Image with Alpha Blending contains an object of type image.

Muestre las tres imágenes mejoradas en un montaje para compararlas.

figure
montage({B,B2,B3},Size=[1 3],BorderSize=5,BackgroundColor="w")

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

Referencias

[1] Dong, X., G. Wang, Y. Pang, W. Li, J. Wen, W. Meng, and Y. Lu. "Fast efficient algorithm for enhancement of low lighting video." Proceedings of IEEE® International Conference on Multimedia and Expo (ICME). 2011, pp. 1–6.

Consulte también