colour.XYZ_to_CIECAM02#

colour.XYZ_to_CIECAM02(XYZ: ArrayLike, XYZ_w: ArrayLike, L_A: ArrayLike, Y_b: ArrayLike, surround: InductionFactors_CIECAM02 = VIEWING_CONDITIONS_CIECAM02['Average'], discount_illuminant: bool = False, compute_H: bool = True) [source]#

Compute the CIECAM02 colour appearance model correlates from given CIE XYZ tristimulus values.

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

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

• L_A (ArrayLike) – 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 (ArrayLike) – Luminous factor of background $$Y_b$$ such as $$Y_b = 100 x L_b / L_w$$ where $$L_w$$ is the luminance of the light source and $$L_b$$ is the luminance of the background. For viewing images, $$Y_b$$ can be the average $$Y$$ value for the pixels in the entire image, or frequently, a $$Y$$ value of 20, approximate an $$L^*$$ of 50 is used.

• surround (InductionFactors_CIECAM02) – Surround viewing conditions induction factors.

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

• compute_H (bool) – Whether to compute Hue $$h$$ quadrature $$H$$. $$H$$ is rarely used, and expensive to compute.

Returns:

CIECAM02 colour appearance model specification.

Return type:

colour.CAM_Specification_CIECAM02

Notes

Domain

Scale - Reference

Scale - 1

XYZ

[0, 100]

[0, 1]

XYZ_w

[0, 100]

[0, 1]

Range

Scale - Reference

Scale - 1

CAM_Specification_CIECAM02.J

[0, 100]

[0, 1]

CAM_Specification_CIECAM02.C

[0, 100]

[0, 1]

CAM_Specification_CIECAM02.h

[0, 360]

[0, 1]

CAM_Specification_CIECAM02.s

[0, 100]

[0, 1]

CAM_Specification_CIECAM02.Q

[0, 100]

[0, 1]

CAM_Specification_CIECAM02.M

[0, 100]

[0, 1]

CAM_Specification_CIECAM02.H

[0, 400]

[0, 1]

References

[Fai04], [LL13], [MFH+02],

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 = VIEWING_CONDITIONS_CIECAM02["Average"]
>>> XYZ_to_CIECAM02(XYZ, XYZ_w, L_A, Y_b, surround)
CAM_Specification_CIECAM02(J=41.7310911..., C=0.1047077..., h=219.0484326..., s=2.3603053..., Q=195.3713259..., M=0.1088421..., H=278.0607358..., HC=None)