colour.XYZ_to_sCAM#

colour.XYZ_to_sCAM(XYZ: Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100], XYZ_w: Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100], L_A: ArrayLike, Y_b: ArrayLike, surround: InductionFactors_sCAM = VIEWING_CONDITIONS_sCAM['Average'], discount_illuminant: bool = False) Annotated[CAM_Specification_sCAM, 100, 100, 360, 100, 100, 400, 100, 100, 100, 100][source]#

Compute the sCAM colour appearance model correlates from the specified CIE XYZ tristimulus values.

Parameters:
  • XYZ (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.

  • XYZ_w (Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 100]) – 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, approximating an \(L^*\) of 50 is used.

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

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

Returns:

sCAM colour appearance model specification.

Return type:

colour.CAM_Specification_sCAM

Notes

Domain

Scale - Reference

Scale - 1

XYZ

100

1

XYZ_w

100

1

Range

Scale - Reference

Scale - 1

specification.J

100

1

specification.C

100

1

specification.h

360

1

specification.Q

100

1

specification.M

100

1

specification.H

400

1

specification.HC

None

None

specification.V

100

1

specification.K

100

1

specification.W

100

1

specification.D

100

1

References

[LL24]

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_sCAM["Average"]
>>> XYZ_to_sCAM(XYZ, XYZ_w, L_A, Y_b, surround)
CAM_Specification_sCAM(J=np.float64(49.9795668...), C=np.float64(0.0140531...), h=np.float64(328.2724924...), Q=np.float64(195.2302423...), M=np.float64(0.0050244...), H=np.float64(363.6013437...), HC=None, V=np.float64(49.9795727...), K=np.float64(50.0204272...), W=np.float64(34.9734327...), D=np.float64(65.0265672...))