Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

chromadapt

Ajuste el balance de color de la imagen RGB con adaptación cromática

Descripción

ejemplo

B = chromadapt(A,illuminant) ajusta el balance de color de la imagen sRGB según la iluminante de la escena.A La iluminante debe estar en el mismo espacio de color que la imagen de entrada.

ejemplo

B = chromadapt(A,illuminant,Name,Value) ajusta el balance de color del uso de pares nombre-valor para controlar opciones adicionales.A

Ejemplos

contraer todo

Leer una imagen con un fuerte color amarillo fundido. Visualice la imagen, especificando una ampliación opcional para reducir el tamaño de la imagen mostrada.

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

Designe un píxel de la imagen que se vea blanco o gris, como un punto en un pilar. No elija un píxel saturado, como un punto en la luz del techo.

x = 2800; y = 1000; gray_val = [A(y,x,1) A(y,x,2) A(y,x,3)];

Utilice el color seleccionado como referencia para la iluminación de la escena y corrija el balance de blancos de la imagen.

B = chromadapt(A,gray_val);

Visualice la imagen corregida, estableciendo una ampliación inicial opcional.

figure imshow(B,'InitialMagnification',25) title('White-Balanced Image')

Los pilares ahora son blancos como se esperaba, y el resto de la imagen no tiene tinte amarillo.

Abra un archivo de imagen que contenga intensidades RGB lineales mínimamente procesadas.

A = imread('foosballraw.tiff');

Los datos de imagen son los datos del sensor sin procesar después de corregir el nivel de negro y escalar a 16 bits por píxel. Interpolar las intensidades para reconstruir el color. El patrón de matriz de filtro de color es RGGB.

A = demosaic(A,'rggb');

Visualice la imagen. Dado que la imagen está en un espacio de color RGB lineal, aplique la corrección de gamma para que la imagen aparezca correctamente en la pantalla. Para reducir la imagen de forma que aparezca completamente en la pantalla, establezca la ampliación inicial opcional en un valor inferior a 100

A_sRGB = lin2rgb(A); figure imshow(A_sRGB,'InitialMagnification',25) title('Original Image')

La imagen tiene un gráfico ColorChecker en la escena. Para obtener el color de la luz ambiental, elija un píxel en uno de los parches neutrales del gráfico.

x = 1510; y = 1250; light_color = [A(y,x,1) A(y,x,2) A(y,x,3)]
light_color = 1x3 uint16 row vector

    7361   14968   10258

La intensidad del canal rojo es inferior a la intensidad de los otros dos canales, lo que indica que la luz es de color verde azulado.

Equilibrar los canales de color de la imagen. Utilice la opción para especificar que la imagen y la iluminante se expresan en RGB lineal.'ColorSpace'

B = chromadapt(A,light_color,'ColorSpace','linear-rgb');

Visualice la imagen corregida, aplicando la corrección gamma y ajustando la magnificación inicial.

B_sRGB = lin2rgb(B); figure imshow(B_sRGB,'InitialMagnification',25) title('White-Balanced Image')

Confirme que el parche gris ha sido equilibrado de color.

patch_color = [B(y,x,1) B(y,x,2) B(y,x,3)]
patch_color = 1x3 uint16 row vector

   13010   13010   13010

Los tres canales de color en el parche gris de color equilibrado tienen intensidades similares, como se esperaba.

Argumentos de entrada

contraer todo

Entrada de imagen RGB, especificada como una matriz real, no dispersa,-por--por-3.mn

Tipos de datos: single | double | uint8 | uint16

Iluminante de escena, especificado como un vector real, no vacío, de 3 elementos. El iluminante debe estar en el mismo espacio de color que la imagen de entrada,.A

Tipos de datos: single | double | uint8 | uint16

Argumentos de par nombre-valor

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

Ejemplo: ajusta el balance de color de una imagen, en el espacio de color RGB lineal.I2 = chromadapt(I,uint8([22 97 118]),'ColorSpace','linear-rgb')I

Espacio de color de la imagen de entrada e iluminante, especificado como el par separado por comas que consta de y, o.'ColorSpace''srgb''adobe-rgb-1998''linear-rgb' Utilice la opción para ajustar el balance de color de una imagen RGB cuyas intensidades son lineales.'linear-rgb'

Tipos de datos: char | string

Método de adaptación cromática utilizado para escalar los valores RGB en, especificado como el par separado por comas que consta de y uno de:A'Method'

  • — Escala utilizando el modelo de respuesta del cono Bradford'bradford'

  • — Escala utilizando el modelo de respuesta de cono de von Kries'vonkries'

  • — Escalar utilizando la iluminante'simple'

Tipos de datos: char | string

Argumentos de salida

contraer todo

Imagen RGB de color equilibrado, devuelta como un array-by-by-3. tiene el mismo tipo de datos que.mnBA

Referencias

[1] Lindbloom, Bruce. Chromatic Adaptation. http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html.

Introducido en R2017b