Coverage for colour/models/rgb/datasets/filmlight.py: 100%
32 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"""
2FilmLight Colourspaces
3======================
5Define the *FilmLight* colourspaces:
7- :attr:`colour.models.RGB_COLOURSPACE_FILMLIGHT_E_GAMUT`.
8- :attr:`colour.models.RGB_COLOURSPACE_FILMLIGHT_E_GAMUT_2`.
10References
11----------
12- :cite:`Siragusano2018a` : Siragusano, D. (2018). Private Discussion with
13 Shaw, Nick.
14- :cite:`Siragusano2025` : Siragusano, D. (2025). Private discussion on
15 colour-science Discord server. https://discord.com/channels/\
16 1269935627386884106/1269935628808622102/1325770472058523668
17"""
19from __future__ import annotations
21import typing
23import numpy as np
25from colour.colorimetry import CCS_ILLUMINANTS
27if typing.TYPE_CHECKING:
28 from colour.hints import NDArrayFloat
30from colour.models.rgb import (
31 RGB_Colourspace,
32 log_decoding_FilmLightTLog,
33 log_encoding_FilmLightTLog,
34 normalised_primary_matrix,
35)
37__author__ = "Colour Developers"
38__copyright__ = "Copyright 2013 Colour Developers"
39__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
40__maintainer__ = "Colour Developers"
41__email__ = "colour-developers@colour-science.org"
42__status__ = "Production"
44__all__ = [
45 "PRIMARIES_FILMLIGHT_E_GAMUT",
46 "WHITEPOINT_NAME_FILMLIGHT_E_GAMUT",
47 "CCS_WHITEPOINT_FILMLIGHT_E_GAMUT",
48 "MATRIX_FILMLIGHT_E_GAMUT_TO_XYZ",
49 "MATRIX_XYZ_TO_FILMLIGHT_E_GAMUT",
50 "RGB_COLOURSPACE_FILMLIGHT_E_GAMUT",
51 "PRIMARIES_FILMLIGHT_E_GAMUT_2",
52 "MATRIX_FILMLIGHT_E_GAMUT_2_TO_XYZ",
53 "MATRIX_XYZ_TO_FILMLIGHT_E_GAMUT_2",
54 "RGB_COLOURSPACE_FILMLIGHT_E_GAMUT_2",
55]
57PRIMARIES_FILMLIGHT_E_GAMUT: NDArrayFloat = np.array(
58 [
59 [0.8000, 0.3177],
60 [0.1800, 0.9000],
61 [0.0650, -0.0805],
62 ]
63)
64"""*FilmLight E-Gamut* colourspace primaries."""
66WHITEPOINT_NAME_FILMLIGHT_E_GAMUT: str = "D65"
67"""*FilmLight E-Gamut* colourspace whitepoint name."""
69CCS_WHITEPOINT_FILMLIGHT_E_GAMUT: NDArrayFloat = CCS_ILLUMINANTS[
70 "CIE 1931 2 Degree Standard Observer"
71][WHITEPOINT_NAME_FILMLIGHT_E_GAMUT]
72"""*FilmLight E-Gamut* colourspace whitepoint chromaticity coordinates."""
74MATRIX_FILMLIGHT_E_GAMUT_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
75 PRIMARIES_FILMLIGHT_E_GAMUT, CCS_WHITEPOINT_FILMLIGHT_E_GAMUT
76)
77"""*FilmLight E-Gamut* colourspace to *CIE XYZ* tristimulus values matrix."""
79MATRIX_XYZ_TO_FILMLIGHT_E_GAMUT: NDArrayFloat = np.linalg.inv(
80 MATRIX_FILMLIGHT_E_GAMUT_TO_XYZ
81)
82"""*CIE XYZ* tristimulus values to *FilmLight E-Gamut* colourspace matrix."""
84RGB_COLOURSPACE_FILMLIGHT_E_GAMUT: RGB_Colourspace = RGB_Colourspace(
85 "FilmLight E-Gamut",
86 PRIMARIES_FILMLIGHT_E_GAMUT,
87 CCS_WHITEPOINT_FILMLIGHT_E_GAMUT,
88 WHITEPOINT_NAME_FILMLIGHT_E_GAMUT,
89 MATRIX_FILMLIGHT_E_GAMUT_TO_XYZ,
90 MATRIX_XYZ_TO_FILMLIGHT_E_GAMUT,
91 log_encoding_FilmLightTLog,
92 log_decoding_FilmLightTLog,
93)
94RGB_COLOURSPACE_FILMLIGHT_E_GAMUT.__doc__ = """
95*FilmLight E-Gamut* colourspace.
97References
98----------
99:cite:`Siragusano2018a`
100"""
102PRIMARIES_FILMLIGHT_E_GAMUT_2: NDArrayFloat = np.array(
103 [
104 [0.8300, 0.3100],
105 [0.1500, 0.9500],
106 [0.0650, -0.0805],
107 ]
108)
109"""*FilmLight E-Gamut 2* colourspace primaries."""
111MATRIX_FILMLIGHT_E_GAMUT_2_TO_XYZ: NDArrayFloat = np.array(
112 [
113 [0.736478, 0.130740, 0.083239],
114 [0.275070, 0.828018, -0.103088],
115 [-0.124225, -0.087160, 1.300443],
116 ]
117)
118"""*FilmLight E-Gamut 2* colourspace to *CIE XYZ* tristimulus values matrix."""
120MATRIX_XYZ_TO_FILMLIGHT_E_GAMUT_2: NDArrayFloat = np.linalg.inv(
121 MATRIX_FILMLIGHT_E_GAMUT_2_TO_XYZ
122)
123"""*CIE XYZ* tristimulus values to *FilmLight E-Gamut 2* colourspace matrix."""
125RGB_COLOURSPACE_FILMLIGHT_E_GAMUT_2: RGB_Colourspace = RGB_Colourspace(
126 "FilmLight E-Gamut 2",
127 PRIMARIES_FILMLIGHT_E_GAMUT_2,
128 CCS_WHITEPOINT_FILMLIGHT_E_GAMUT,
129 WHITEPOINT_NAME_FILMLIGHT_E_GAMUT,
130 MATRIX_FILMLIGHT_E_GAMUT_2_TO_XYZ,
131 MATRIX_XYZ_TO_FILMLIGHT_E_GAMUT_2,
132 log_encoding_FilmLightTLog,
133 log_decoding_FilmLightTLog,
134)
135RGB_COLOURSPACE_FILMLIGHT_E_GAMUT_2.__doc__ = """
136*FilmLight E-Gamut 2* colourspace.
138References
139----------
140:cite:`Siragusano2025`
141"""