colour.XYZ_to_CIECAM02#
- colour.XYZ_to_CIECAM02(XYZ: Domain100, XYZ_w: Domain100, L_A: ArrayLike, Y_b: ArrayLike, surround: InductionFactors_CIECAM02 = VIEWING_CONDITIONS_CIECAM02['Average'], discount_illuminant: bool = False, compute_H: bool = True) Annotated[CAM_Specification_CIECAM02, 100, 100, 360, 100, 100, 100, 400][source]#
Compute the CIECAM02 colour appearance model correlates from the specified CIE XYZ tristimulus values.
- Parameters:
XYZ (Domain100) – CIE XYZ tristimulus values of test sample / stimulus.
XYZ_w (Domain100) – 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 \times 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:
Notes
Domain
Scale - Reference
Scale - 1
XYZ100
1
XYZ_w100
1
Range
Scale - Reference
Scale - 1
specification.J100
1
specification.C100
1
specification.h360
1
specification.s100
1
specification.Q100
1
specification.M100
1
specification.H400
1
References
[Fai04], [LL13], [MFH+02], [Wikipedia07d]
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=np.float64(41.7310911...), C=np.float64(0.1047077...), h=np.float64(219.0484326...), s=np.float64(2.3603053...), Q=np.float64(195.3713259...), M=np.float64(0.1088421...), H=np.float64(278.0607358...), HC=None)