colour.XYZ_to_RGB

colour.XYZ_to_RGB(XYZ: ArrayLike, illuminant_XYZ: ArrayLike, illuminant_RGB: ArrayLike, matrix_XYZ_to_RGB: ArrayLike, chromatic_adaptation_transform: Union[Literal['Bianco 2010', 'Bianco PC 2010', 'Bradford', 'CAT02 Brill 2008', 'CAT02', 'CAT16', 'CMCCAT2000', 'CMCCAT97', 'Fairchild', 'Sharp', 'Von Kries', 'XYZ Scaling'], str] = 'CAT02', cctf_encoding: Optional[Callable] = None) numpy.ndarray[source]

Convert from CIE XYZ tristimulus values to RGB colourspace array.

Parameters
  • XYZ (ArrayLike) – CIE XYZ tristimulus values.

  • illuminant_XYZ (ArrayLike) – CIE xy chromaticity coordinates or CIE xyY colourspace array of the illuminant for the input CIE XYZ tristimulus values.

  • illuminant_RGB (ArrayLike) – CIE xy chromaticity coordinates or CIE xyY colourspace array of the illuminant for the output RGB colourspace array.

  • matrix_XYZ_to_RGB (ArrayLike) – Matrix converting the CIE XYZ tristimulus values to RGB colourspace array, i.e. the inverse Normalised Primary Matrix (NPM).

  • chromatic_adaptation_transform (Union[Literal['Bianco 2010', 'Bianco PC 2010', 'Bradford', 'CAT02 Brill 2008', 'CAT02', 'CAT16', 'CMCCAT2000', 'CMCCAT97', 'Fairchild', 'Sharp', 'Von Kries', 'XYZ Scaling'], str]) – Chromatic adaptation transform, if None no chromatic adaptation is performed.

  • cctf_encoding (Optional[Callable]) – Encoding colour component transfer function (Encoding CCTF) or opto-electronic transfer function (OETF).

Returns

RGB colourspace array.

Return type

numpy.ndarray

Notes

Domain

Scale - Reference

Scale - 1

XYZ

[0, 1]

[0, 1]

illuminant_XYZ

[0, 1]

[0, 1]

illuminant_RGB

[0, 1]

[0, 1]

Range

Scale - Reference

Scale - 1

RGB

[0, 1]

[0, 1]

Examples

>>> XYZ = np.array([0.21638819, 0.12570000, 0.03847493])
>>> illuminant_XYZ = np.array([0.34570, 0.35850])
>>> illuminant_RGB = np.array([0.31270, 0.32900])
>>> chromatic_adaptation_transform = 'Bradford'
>>> matrix_XYZ_to_RGB = np.array(
...     [[3.24062548, -1.53720797, -0.49862860],
...      [-0.96893071, 1.87575606, 0.04151752],
...      [0.05571012, -0.20402105, 1.05699594]]
... )
>>> XYZ_to_RGB(XYZ, illuminant_XYZ, illuminant_RGB, matrix_XYZ_to_RGB,
...            chromatic_adaptation_transform)  
array([ 0.4559557...,  0.0303970...,  0.0408724...])