colour.models.XYZ_to_Izazbz#

colour.models.XYZ_to_Izazbz(XYZ_D65: ArrayLike, constants: Structure | None = None, method: Literal['Safdar 2017', 'Safdar 2021', 'ZCAM'] | str = 'Safdar 2017') NDArrayFloat[source]#

Convert from CIE XYZ tristimulus values to \(I_za_zb_z\) colourspace.

Parameters:
  • XYZ_D65 (ArrayLike) – CIE XYZ tristimulus values under CIE Standard Illuminant D Series D65.

  • constants (Structure | None) – \(J_za_zb_z\) colourspace constants.

  • method (Literal['Safdar 2017', 'Safdar 2021', 'ZCAM'] | str) – Computation method, Safdar 2021 and ZCAM methods are equivalent.

Returns:

\(I_za_zb_z\) colourspace array where \(I_z\) is the achromatic response, \(a_z\) is redness-greenness and \(b_z\) is yellowness-blueness.

Return type:

numpy.ndarray

Warning

The underlying SMPTE ST 2084:2014 transfer function is an absolute transfer function.

Notes

  • The underlying SMPTE ST 2084:2014 transfer function is an absolute transfer function, thus the domain and range values for the Reference and 1 scales are only indicative that the data is not affected by scale transformations. The effective domain of SMPTE ST 2084:2014 inverse electro-optical transfer function (EOTF) is [0.0001, 10000].

Domain

Scale - Reference

Scale - 1

XYZ

UN

UN

Range

Scale - Reference

Scale - 1

Izazbz

Iz : [0, 1]

az : [-1, 1]

bz : [-1, 1]

Iz : [0, 1]

az : [-1, 1]

bz : [-1, 1]

References

[SCKL17], [SHRL21]

Examples

>>> XYZ = np.array([0.20654008, 0.12197225, 0.05136952])
>>> XYZ_to_Izazbz(XYZ)  
array([ 0.0120779...,  0.0092430...,  0.0052600...])