colour.XYZ_to_CAM16

colour.XYZ_to_CAM16(XYZ, XYZ_w, L_A, Y_b, surround=CIECAM02_InductionFactors(F=1, c=0.69, N_c=1), discount_illuminant=False)[source]

Computes the CAM16 colour appearance model correlates from given CIE XYZ tristimulus values.

This is the forward implementation.

Parameters
  • XYZ (array_like) – CIE XYZ tristimulus values of test sample / stimulus.

  • XYZ_w (array_like) – CIE XYZ tristimulus values of reference white.

  • L_A (numeric or array_like) – Adapting field luminance \(L_A\) in \(cd/m^2\), (often taken to be 20% of the luminance of a white object in the scene).

  • Y_b (numeric or array_like) – Relative luminance of background \(Y_b\) in \(cd/m^2\).

  • surround (CAM16_InductionFactors, optional) – Surround viewing conditions induction factors.

  • discount_illuminant (bool, optional) – Truth value indicating if the illuminant should be discounted.

Returns

CAM16 colour appearance model specification.

Return type

CAM16_Specification

Notes

Domain

Scale - Reference

Scale - 1

XYZ

[0, 100]

[0, 1]

XYZ_w

[0, 100]

[0, 1]

Range

Scale - Reference

Scale - 1

CAM16_specification.J

[0, 100]

[0, 1]

CAM16_specification.C

[0, 100]

[0, 1]

CAM16_specification.h

[0, 360]

[0, 1]

CAM16_specification.s

[0, 100]

[0, 1]

CAM16_specification.Q

[0, 100]

[0, 1]

CAM16_specification.M

[0, 100]

[0, 1]

CAM16_specification.H

[0, 360]

[0, 1]

References

[LLW+17]

Examples

>>> XYZ = np.array([19.01, 20.00, 21.78])
>>> XYZ_w = np.array([95.05, 100.00, 108.88])
>>> L_A = 318.31
>>> Y_b = 20.0
>>> surround = CAM16_VIEWING_CONDITIONS['Average']
>>> XYZ_to_CAM16(XYZ, XYZ_w, L_A, Y_b, surround)  
CAM16_Specification(J=41.7312079..., C=0.1033557..., h=217.0679597..., s=2.3450150..., Q=195.3717089..., M=0.1074367..., H=275.5949861..., HC=None)