Main Content

illumwhite

Estimar el iluminante usando el algoritmo White Patch Retinex

Descripción

illuminant = illumwhite(A) estima la iluminación de la escena en la imagen RGB suponiendo que los valores rojos, verdes y azules más brillantes del 1% representan el color blanco.A

ejemplo

illuminant = illumwhite(A,topPercentile) estima la iluminación utilizando el porcentaje más brillante de valores rojos, verdes y azules.topPercentile

illuminant = illumwhite(___,Name,Value) estima la iluminación utilizando pares nombre-valor para controlar opciones adicionales.

Ejemplos

contraer todo

Abra una imagen y muésela. Especifique una ampliación opcional para reducir el tamaño de la imagen mostrada.

A = imread('foosball.jpg'); figure imshow(A,'InitialMagnification',25) title('Original Image')

El formato de archivo JPEG guarda las imágenes en el espacio de color sRGB corregido por gamma. Deshacer la corrección gamma mediante la función.rgb2lin

A_lin = rgb2lin(A);

Estimar la iluminación de la escena desde el 5% más brillante píxeles superiores. Dado que la imagen de entrada se ha linealizado, la función devuelve el iluminante en el espacio de color RGB lineal.illumwhite

topPercentile = 5; illuminant = illumwhite(A,topPercentile)
illuminant = 1×3

    0.7333    0.8314    1.0000

El tercer coeficiente de es el más grande, que es consistente con el tinte azul de la imagen.illuminant

Corrija los colores proporcionando el iluminante estimado a la función.chromadapt

B_lin = chromadapt(A_lin,illuminant,'ColorSpace','linear-rgb');

Para mostrar la imagen con balance blanco correctamente en la pantalla, aplique la corrección gamma utilizando la función.lin2rgb

B = lin2rgb(B_lin);

Visualice la imagen corregida, ajustando la ampliación opcional.

figure imshow(B,'InitialMagnification',25) title(['White-Balanced Image using White Patch with topPercentile=' ...     num2str(topPercentile)])

Argumentos de entrada

contraer todo

Imagen RGB de entrada, especificada como una matriz real, no dispersa, -by- -by-3.mn

Tipos de datos: single | double | uint8 | uint16

Porcentaje de colores más brillantes para utilizar para la estimación de iluminante, especificado como un escalar numérico en el rango [0, 100). Para devolver los valores rojo, verde y azul máximos, establezca en 0.topPercentile

La imagen indica el valor rojo, verde y azul seleccionado para estimar el iluminante. La selección es independiente para cada canal de color.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: estima el iluminante de escena utilizando un subconjunto de píxeles en la imagen, seleccionado según una máscara binaria, .illuminant = illumwhite(I,'Mask',m)Im

Máscara de imagen, especificada como el par separado por comas que consta de una matriz -por- lógica o numérica.'Mask'mn La máscara indica qué píxeles de la imagen de entrada se utilizarán al estimar el iluminante.A El cálculo excluye los píxeles que corresponden a un valor de máscara de 0.A De forma predeterminada, la máscara tiene todos los 1s y todos los píxeles de la estimación.A

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Argumentos de salida

contraer todo

Estimación de la iluminación de escena, devuelta como un vector de fila numérico de 3 elementos. Los tres elementos corresponden a los valores rojo, verde y azul del iluminante.

Tipos de datos: double

Referencias

[1] Ebner, Marc. "White Patch Retinex." Color Constancy. Chichester, West Sussex: John Wiley & Sons, 2007.

Introducido en R2017b