Coverage for colour/models/rgb/datasets/smpte_c.py: 100%
25 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-15 19:01 +1300
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-15 19:01 +1300
1"""
2SMPTE C Colourspace
3===================
5Define the *SMPTE C* colourspace:
7- :attr:`RGB_COLOURSPACE_SMPTE_C`.
9References
10----------
11- :cite:`SocietyofMotionPictureandTelevisionEngineers2004a` : Society of
12 Motion Picture and Television Engineers. (2004). RP 145:2004: SMPTE C Color
13 Monitor Colorimetry. In RP 145:2004: Vol. RP 145:200. The Society of Motion
14 Picture and Television Engineers. doi:10.5594/S9781614821649
15"""
17from __future__ import annotations
19import typing
20from functools import partial
22import numpy as np
24from colour.colorimetry import CCS_ILLUMINANTS
26if typing.TYPE_CHECKING:
27 from colour.hints import NDArrayFloat
29from colour.models.rgb import RGB_Colourspace, gamma_function, normalised_primary_matrix
31__author__ = "Colour Developers"
32__copyright__ = "Copyright 2013 Colour Developers"
33__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
34__maintainer__ = "Colour Developers"
35__email__ = "colour-developers@colour-science.org"
36__status__ = "Production"
38__all__ = [
39 "PRIMARIES_SMPTE_C",
40 "WHITEPOINT_NAME_SMPTE_C",
41 "CCS_WHITEPOINT_SMPTE_C",
42 "MATRIX_SMPTE_C_TO_XYZ",
43 "MATRIX_XYZ_TO_SMPTE_C",
44 "RGB_COLOURSPACE_SMPTE_C",
45]
47PRIMARIES_SMPTE_C: NDArrayFloat = np.array(
48 [
49 [0.630, 0.340],
50 [0.310, 0.595],
51 [0.155, 0.070],
52 ]
53)
54"""*SMPTE C* colourspace primaries."""
56WHITEPOINT_NAME_SMPTE_C: str = "D65"
57"""*SMPTE C* colourspace whitepoint name."""
59CCS_WHITEPOINT_SMPTE_C: NDArrayFloat = CCS_ILLUMINANTS[
60 "CIE 1931 2 Degree Standard Observer"
61][WHITEPOINT_NAME_SMPTE_C]
62"""*SMPTE C* colourspace whitepoint chromaticity coordinates."""
64MATRIX_SMPTE_C_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
65 PRIMARIES_SMPTE_C, CCS_WHITEPOINT_SMPTE_C
66)
67"""*SMPTE C* colourspace to *CIE XYZ* tristimulus values matrix."""
69MATRIX_XYZ_TO_SMPTE_C: NDArrayFloat = np.linalg.inv(MATRIX_SMPTE_C_TO_XYZ)
70"""*CIE XYZ* tristimulus values to *SMPTE C* colourspace matrix."""
72RGB_COLOURSPACE_SMPTE_C: RGB_Colourspace = RGB_Colourspace(
73 "SMPTE C",
74 PRIMARIES_SMPTE_C,
75 CCS_WHITEPOINT_SMPTE_C,
76 WHITEPOINT_NAME_SMPTE_C,
77 MATRIX_SMPTE_C_TO_XYZ,
78 MATRIX_XYZ_TO_SMPTE_C,
79 partial(gamma_function, exponent=1 / 2.2),
80 partial(gamma_function, exponent=2.2),
81)
82RGB_COLOURSPACE_SMPTE_C.__doc__ = """
83*SMPTE C* colourspace.
85References
86----------
87:cite:`SocietyofMotionPictureandTelevisionEngineers2004a`
88"""