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.

rgb2xyz

Convertir RGB en CIE 1931 XYZ

Descripción

XYZ = rgb2xyz(RGB) convierte los valores de rojo, verde y azul de una imagen RGB en valores CIE 1931 XYZ (observador 2°).

ejemplo

XYZ = rgb2xyz(RGB,Name,Value) especifica opciones de conversión adicionales, como el espacio de color de la imagen RGB, utilizando uno o varios argumentos de nombre-valor.

Ejemplos

contraer todo

Convierta imágenes y valores de color del espacio de color RGB a CIE 1931 XYZ

Convertir una imagen RGB a XYZ

Lea una imagen RGB en el espacio de trabajo.

RGB = imread('peppers.png');

Convierta la imagen al espacio de color XYZ.

XYZ = rgb2xyz(RGB);

Muestre la imagen original junto con la nueva.

figure
imshowpair(RGB,XYZ,'montage');
title('Image in RGB Color Space (Left) and XYZ Color Space (Right)');

Figure contains an axes object. The axes object with title Image in RGB Color Space (Left) and XYZ Color Space (Right) contains an object of type image.

Convertir valores de color RGB a XYZ

Convierta el valor de blanco de RGB al espacio de color XYZ. En RGB, el blanco se representa mediante el vector [1 1 1].

rgb2xyz([1 1 1])
ans = 1×3

    0.9505    1.0000    1.0888

Convertir color RGB a XYZ usando D50 como blanco de referencia

XYZ_D50 = rgb2xyz(RGB,'WhitePoint','d50');

Muestre la primera imagen XYZ de salida junto con la imagen XYZ con D50 como blanco de referencia.

figure
imshowpair(XYZ,XYZ_D50,'montage');
title('XYZ Image, Without (Left) and With (Right) Reference White');

Figure contains an axes object. The axes object with title XYZ Image, Without (Left) and With (Right) Reference White contains an object of type image.

Convertir color de Adobe RGB (1998) a XYZ

XYZ_Adobe = rgb2xyz(RGB,'ColorSpace','adobe-rgb-1998');

Muestre las imágenes XYZ generadas a partir de los espacios de color RGB y Adobe RGB (1998) predeterminados.

figure
imshowpair(XYZ,XYZ_Adobe,'montage');
title(['XYZ Image, Starting From Default RGB (Left) and Adobe RGB ',...
  '(Right) Color Space']);

Figure contains an axes object. The axes object with title XYZ Image, Starting From Default RGB (Left) and Adobe RGB (Right) Color Space contains an object of type image.

Argumentos de entrada

contraer todo

Valores de color RGB que se desea convertir, especificados como una matriz numérica en uno de estos formatos.

  • Mapa de colores de c por 3. Cada fila especifica un valor de color RGB.

  • Imagen de m por n por 3

  • Pila de imágenes de m por n por 3 por p

Tipos de datos: single | double | uint8 | uint16

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: xyz = rgb2xyz([.2 .3 .4],WhitePoint="d50")

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: xyz = rgb2xyz([.2 .3 .4],"WhitePoint","d50")

Espacio de color de los valores de entrada RGB, especificados como "srgb", "adobe-rgb-1998", "prophoto-rgb" o "linear-rgb". Si especifica "linear-rgb", rgb2xyz asume que los valores de entrada RGB son valores sRGB linealizados.

Tipos de datos: string | char

Punto blanco de referencia, especificado como vector de 1 por 3 o uno de los iluminantes estándar CIE que aparecen en la tabla.

ValorPunto blanco
"a"

Iluminante estándar CIE A: [1.0985, 1.0000, 0.3558]. Simula la luz típica doméstica de filamento de tungsteno con una temperatura de color correlacionada de 2856 K.

"c"Iluminante estándar CIE C: [0.9807, 1.0000, 1.1822]. Simula la luz de día media o del cielo del Norte con una temperatura de color correlacionada de 6774 K. Obsoleto por la CIE.
"e"Radiador equienergético: [1.000, 1.000, 1.000]. Útil como referencia teórica.
"d50"Iluminante estándar CIE D50: [0.9642, 1.0000, 0.8251]. Simula la luz de día cálida al amanecer o al atardecer con una temperatura de color correlacionada de 5003 K. También se conoce como luz del horizonte.

"d55"

Iluminante estándar CIE D55: [0.9568, 1.0000, 0.9214]. Simula la luz de media mañana o media tarde con una temperatura de color correlacionada de 5500 K.

"d65"Iluminante estándar CIE D65: [0.9504, 1.0000, 1.0888]. Simula la luz de mediodía con una temperatura de color correlacionada de 6504 K.
"icc"Iluminante del espacio de color de conexión (PCS) utilizado en perfiles ICC. Aproximación de [0.9642, 1.000, 0.8249] que utiliza números de 32 bits con signo, de punto fijo, con 16 bits fraccionarios. Valor real: [31595,32768, 27030]/32768.

Tipos de datos: single | double | string | char

Argumentos de salida

contraer todo

Valores de color XYZ convertidos, devueltos como arreglo numérico del mismo tamaño que la entrada. El tipo de salida es clase double a no ser que el tipo de entrada sea single, en cuyo caso el tipo de salida es también single.

Sugerencias

  • Si especifica el espacio de color de entrada RGB como "linear-rgb", rgb2xyz asume que los valores de entrada RGB son valores sRGB linealizados. Si, en su lugar, desea que el espacio de color de entrada sea Adobe RGB (1998) linealizado, puede utilizar la función lin2rgb.

    Por ejemplo, para convertir una imagen de Adobe RGB (1998) linealizado RGBlinadobe al espacio de color CIE 1931 XYZ, realice la conversión en dos pasos:

    RGBadobe = lin2rgb(RGBlinadobe,"ColorSpace","adobe-rgb-1998");
    XYZ = rgb2xyz(RGBadobe,"ColorSpace","adobe-rgb-1998");
    

Historial de versiones

Introducido en R2014b

expandir todo