Coverage for colour/models/rgb/datasets/itur_bt_470.py: 100%
37 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"""
2Recommendation ITU-R BT.470 Colourspaces
3========================================
5Define the *Recommendation ITU-R BT.470* colourspaces:
7- :attr:`colour.models.RGB_COLOURSPACE_BT470_525`.
8- :attr:`colour.models.RGB_COLOURSPACE_BT470_625`.
10References
11----------
12- :cite:`InternationalTelecommunicationUnion1998a` : International
13 Telecommunication Union. (1998). Recommendation ITU-R BT.470-6 -
14 CONVENTIONAL TELEVISION SYSTEMS (pp. 1-36).
15 http://www.itu.int/dms_pubrec/itu-r/rec/bt/\
16R-REC-BT.470-6-199811-S!!PDF-E.pdf
17"""
19from __future__ import annotations
21import typing
22from functools import partial
24import numpy as np
26from colour.colorimetry import CCS_ILLUMINANTS
28if typing.TYPE_CHECKING:
29 from colour.hints import NDArrayFloat
31from colour.models.rgb import RGB_Colourspace, gamma_function, normalised_primary_matrix
33__author__ = "Colour Developers"
34__copyright__ = "Copyright 2013 Colour Developers"
35__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
36__maintainer__ = "Colour Developers"
37__email__ = "colour-developers@colour-science.org"
38__status__ = "Production"
40__all__ = [
41 "PRIMARIES_BT470_525",
42 "CCS_WHITEPOINT_BT470_525",
43 "WHITEPOINT_NAME_BT470_525",
44 "MATRIX_BT470_525_TO_XYZ",
45 "MATRIX_XYZ_TO_BT470_525",
46 "RGB_COLOURSPACE_BT470_525",
47 "PRIMARIES_BT470_625",
48 "CCS_WHITEPOINT_BT470_625",
49 "WHITEPOINT_NAME_BT470_625",
50 "MATRIX_BT470_625_TO_XYZ",
51 "MATRIX_XYZ_TO_BT470_625",
52 "RGB_COLOURSPACE_BT470_625",
53]
55PRIMARIES_BT470_525: NDArrayFloat = np.array(
56 [
57 [0.6700, 0.3300],
58 [0.2100, 0.7100],
59 [0.1400, 0.0800],
60 ]
61)
62"""*Recommendation ITU-R BT.470 - 525* colourspace primaries."""
64WHITEPOINT_NAME_BT470_525: str = "C"
65"""*Recommendation ITU-R BT.470 - 525* colourspace whitepoint name."""
67CCS_WHITEPOINT_BT470_525: NDArrayFloat = CCS_ILLUMINANTS[
68 "CIE 1931 2 Degree Standard Observer"
69][WHITEPOINT_NAME_BT470_525]
70"""
71*Recommendation ITU-R BT.470 - 525* colourspace whitepoint chromaticity
72coordinates.
73"""
75MATRIX_BT470_525_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
76 PRIMARIES_BT470_525, CCS_WHITEPOINT_BT470_525
77)
78"""
79*Recommendation ITU-R BT.470 - 525* colourspace to *CIE XYZ* tristimulus values
80matrix.
81"""
83MATRIX_XYZ_TO_BT470_525: NDArrayFloat = np.linalg.inv(MATRIX_BT470_525_TO_XYZ)
84"""
85*CIE XYZ* tristimulus values to *Recommendation ITU-R BT.470 - 525* colourspace
86matrix.
87"""
89RGB_COLOURSPACE_BT470_525: RGB_Colourspace = RGB_Colourspace(
90 "ITU-R BT.470 - 525",
91 PRIMARIES_BT470_525,
92 CCS_WHITEPOINT_BT470_525,
93 WHITEPOINT_NAME_BT470_525,
94 MATRIX_BT470_525_TO_XYZ,
95 MATRIX_XYZ_TO_BT470_525,
96 partial(gamma_function, exponent=1 / 2.8),
97 partial(gamma_function, exponent=2.8),
98)
99RGB_COLOURSPACE_BT470_525.__doc__ = """
100*Recommendation ITU-R BT.470 - 525* colourspace.
102References
103----------
104:cite:`InternationalTelecommunicationUnion1998a`
105"""
107PRIMARIES_BT470_625: NDArrayFloat = np.array(
108 [
109 [0.6400, 0.3300],
110 [0.2900, 0.6000],
111 [0.1500, 0.0600],
112 ]
113)
114"""*Recommendation ITU-R BT.470 - 625* colourspace primaries."""
116WHITEPOINT_NAME_BT470_625: str = "D65"
117"""*Recommendation ITU-R BT.470 - 625* colourspace whitepoint name."""
119CCS_WHITEPOINT_BT470_625: NDArrayFloat = CCS_ILLUMINANTS[
120 "CIE 1931 2 Degree Standard Observer"
121][WHITEPOINT_NAME_BT470_625]
122"""
123*Recommendation ITU-R BT.470 - 625* colourspace whitepoint chromaticity
124coordinates.
125"""
127MATRIX_BT470_625_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
128 PRIMARIES_BT470_625, CCS_WHITEPOINT_BT470_625
129)
130"""
131*Recommendation ITU-R BT.470 - 625* colourspace to *CIE XYZ* tristimulus values
132matrix.
133"""
135MATRIX_XYZ_TO_BT470_625: NDArrayFloat = np.linalg.inv(MATRIX_BT470_625_TO_XYZ)
136"""
137*CIE XYZ* tristimulus values to *Recommendation ITU-R BT.470 - 625* colourspace
138matrix.
139"""
141RGB_COLOURSPACE_BT470_625: RGB_Colourspace = RGB_Colourspace(
142 "ITU-R BT.470 - 625",
143 PRIMARIES_BT470_625,
144 CCS_WHITEPOINT_BT470_625,
145 WHITEPOINT_NAME_BT470_625,
146 MATRIX_BT470_625_TO_XYZ,
147 MATRIX_XYZ_TO_BT470_625,
148 partial(gamma_function, exponent=1 / 2.8),
149 partial(gamma_function, exponent=2.8),
150)
151RGB_COLOURSPACE_BT470_625.__doc__ = """
152*Recommendation ITU-R BT.470 - 625* colourspace.
154References
155----------
156:cite:`InternationalTelecommunicationUnion1998a`
157"""