This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.


Convert RGB to CIE 1931 XYZ


xyz = rgb2xyz(rgb)
xyz = rgb2xyz(rgb,Name,Value)


xyz = rgb2xyz(rgb) converts RGB values to CIE 1931 XYZ values.


xyz = rgb2xyz(rgb,Name,Value) specifies additional options with one or more name-value pair arguments.


collapse all

Convert images and color values from RGB to CIE 1931 XYZ color space.

Convert RGB Image to XYZ

Read an RGB image into the workspace.

RGB = imread('peppers.png');

Convert the image to XYZ color space.

XYZ = rgb2xyz(RGB);

Display the original image alongside the new image.

title('Image in RGB Color Space (Left) and XYZ Color Space (Right)');

Convert RGB Color Value to XYZ

Convert the value of white from RGB to XYZ color space. In RGB, white is represented by the vector [1 1 1].

rgb2xyz([1 1 1])
ans = 

    0.9505    1.0000    1.0888

Convert RGB Color to XYZ using D50 as Reference White

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

Display the first output XYZ image alongside the XYZ image with D50 as reference white.

title('XYZ Image, Without (Left) and With (Right) Reference White');

Convert Adobe RGB (1998) Color to XYZ

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

Display the XYZ images generated from the default RGB and the Adobe RGB (1998) color spaces.

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

Input Arguments

collapse all

Color values to convert, specified as a p-by-3 matrix of color values (one color per row), an m-by-n-by-3 image array, or an m-by-n-by-3-by-f image stack.

Example: rgb2xyz([1 1 1])

Data Types: single | double | uint8 | uint16

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: rgb2xyz([.2 .3 .4],'WhitePoint','d50')

collapse all

Color space of the input RGB values, specified as the comma-separated pair consisting of 'ColorSpace' and one of 'srgb', 'adobe-rgb-1998', or 'linear-rgb'.

Data Types: char

Reference white point, specified as the comma-separated pair consisting of 'WhitePoint' and a 1-by-3 vector or one of the CIE standard illuminants, listed in the table.

ValueWhite Point

CIE standard illuminant A, [1.0985, 1.0000, 0.3558]. Simulates typical, domestic, tungsten-filament lighting with correlated color temperature of 2856 K. 

'c'CIE standard illuminant C, [0.9807, 1.0000, 1.1822]. Simulates average or north sky daylight with correlated color temperature of 6774 K. Deprecated by CIE.
'e'Equal-energy radiator, [1.000, 1.000, 1.000]. Useful as a theoretical reference.
'd50'CIE standard illuminant D50, [0.9642, 1.0000, 0.8251]. Simulates warm daylight at sunrise or sunset with correlated color temperature of 5003 K. Also known as horizon light.


CIE standard illuminant D55, [0.9568, 1.0000, 0.9214]. Simulates mid-morning or mid-afternoon daylight with correlated color temperature of 5500 K.  

'd65'CIE standard illuminant D65, [0.9504, 1.0000, 1.0888]. Simulates noon daylight with correlated color temperature of 6504 K. 
'icc'Profile Connection Space (PCS) illuminant used in ICC profiles. Approximation of [0.9642, 1.000, 0.8249] using fixed-point, signed, 32-bit numbers with 16 fractional bits. Actual value: [31595,32768, 27030]/32768.

Data Types: single | double | char

Output Arguments

collapse all

Converted color values, returned as an array the same shape as the input. The output type is class double unless the input type is single, in which case the output type is also single.

Introduced in R2014b

Was this topic helpful?