colour.adaptation.chromatic_adaptation_CIE1994#

colour.adaptation.chromatic_adaptation_CIE1994(XYZ_1: Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100], xy_o1: ArrayLike, xy_o2: ArrayLike, Y_o: Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100], E_o1: ArrayLike, E_o2: ArrayLike, n: ArrayLike = 1) Annotated[ndarray[tuple[Any, ...], dtype[float16 | float32 | float64]], 100][source]#

Adapt the specified stimulus CIE XYZ tristimulus values from test viewing conditions to reference viewing conditions using the CIE 1994 chromatic adaptation model.

Parameters:
  • XYZ_1 (Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100]) – 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 (Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100]) – 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 lux.

  • E_o2 (ArrayLike) – Reference illuminance \(E_{o2}\) in lux.

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

Returns:

CIE XYZ tristimulus values of the stimulus corresponding colour.

Return type:

numpy.ndarray

Notes

Domain

Scale - Reference

Scale - 1

XYZ_1

100

1

Y_o

100

1

Range

Scale - Reference

Scale - 1

XYZ_2

100

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...])