colour.adaptation.chromatic_adaptation_CIE1994#

colour.adaptation.chromatic_adaptation_CIE1994(XYZ_1: ArrayLike, xy_o1: ArrayLike, xy_o2: ArrayLike, Y_o: ArrayLike, E_o1: ArrayLike, E_o2: ArrayLike, n: ArrayLike = 1) NDArrayFloat[source]#

Adapt given stimulus CIE XYZ_1 tristimulus values from test viewing conditions to reference viewing conditions using CIE 1994 chromatic adaptation model.

Parameters:
  • XYZ_1 (ArrayLike) – CIE XYZ tristimulus values of test sample / stimulus.

  • xy_o1 (ArrayLike) – Chromaticity coordinates \(x_{o1}\) and \(y_{o1}\) of test illuminant and background.

  • xy_o2 (ArrayLike) – Chromaticity coordinates \(x_{o2}\) and \(y_{o2}\) of reference illuminant and background.

  • Y_o (ArrayLike) – Luminance factor \(Y_o\) of achromatic background as percentage normalised to domain [18, 100] in ‘Reference’ domain-range scale.

  • E_o1 (ArrayLike) – Test illuminance \(E_{o1}\) in \(cd/m^2\).

  • E_o2 (ArrayLike) – Reference illuminance \(E_{o2}\) in \(cd/m^2\).

  • n (ArrayLike) – Noise component in fundamental primary system.

Returns:

Adapted CIE XYZ_2 tristimulus values of test stimulus.

Return type:

numpy.ndarray

Notes

Domain

Scale - Reference

Scale - 1

XYZ_1

[0, 100]

[0, 1]

Y_o

[0, 100]

[0, 1]

Range

Scale - Reference

Scale - 1

XYZ_2

[0, 100]

[0, 1]

References

[CIET13294]

Examples

>>> XYZ_1 = np.array([28.00, 21.26, 5.27])
>>> xy_o1 = np.array([0.4476, 0.4074])
>>> xy_o2 = np.array([0.3127, 0.3290])
>>> Y_o = 20
>>> E_o1 = 1000
>>> E_o2 = 1000
>>> chromatic_adaptation_CIE1994(XYZ_1, xy_o1, xy_o2, Y_o, E_o1, E_o2)
... 
array([ 24.0337952...,  21.1562121...,  17.6430119...])