Coverage for colour/models/rgb/datasets/color_match_rgb.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"""
2ColorMatch RGB Colourspace
3==========================
5Define the *ColorMatch RGB* colourspace:
7- :attr:`colour.models.RGB_COLOURSPACE_COLOR_MATCH_RGB`.
9References
10----------
11- :cite:`Lindbloom2014a` : Lindbloom, B. (2014). RGB Working Space
12 Information. Retrieved April 11, 2014, from
13 http://www.brucelindbloom.com/WorkingSpaceInfo.html
14"""
16from __future__ import annotations
18import typing
19from functools import partial
21import numpy as np
23from colour.colorimetry import CCS_ILLUMINANTS
25if typing.TYPE_CHECKING:
26 from colour.hints import NDArrayFloat
28from colour.models.rgb import RGB_Colourspace, gamma_function, normalised_primary_matrix
30__author__ = "Colour Developers"
31__copyright__ = "Copyright 2013 Colour Developers"
32__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
33__maintainer__ = "Colour Developers"
34__email__ = "colour-developers@colour-science.org"
35__status__ = "Production"
37__all__ = [
38 "PRIMARIES_COLOR_MATCH_RGB",
39 "WHITEPOINT_NAME_COLOR_MATCH_RGB",
40 "CCS_WHITEPOINT_COLOR_MATCH_RGB",
41 "MATRIX_COLOR_MATCH_RGB_TO_XYZ",
42 "MATRIX_XYZ_TO_COLOR_MATCH_RGB",
43 "RGB_COLOURSPACE_COLOR_MATCH_RGB",
44]
46PRIMARIES_COLOR_MATCH_RGB: NDArrayFloat = np.array(
47 [
48 [0.6300, 0.3400],
49 [0.2950, 0.6050],
50 [0.1500, 0.0750],
51 ]
52)
53"""*ColorMatch RGB* colourspace primaries."""
55WHITEPOINT_NAME_COLOR_MATCH_RGB: str = "D50"
56"""*ColorMatch RGB* colourspace whitepoint name."""
58CCS_WHITEPOINT_COLOR_MATCH_RGB: NDArrayFloat = CCS_ILLUMINANTS[
59 "CIE 1931 2 Degree Standard Observer"
60][WHITEPOINT_NAME_COLOR_MATCH_RGB]
61"""*ColorMatch RGB* colourspace whitepoint chromaticity coordinates."""
63MATRIX_COLOR_MATCH_RGB_TO_XYZ: NDArrayFloat = normalised_primary_matrix(
64 PRIMARIES_COLOR_MATCH_RGB, CCS_WHITEPOINT_COLOR_MATCH_RGB
65)
66"""*ColorMatch RGB* colourspace to *CIE XYZ* tristimulus values matrix."""
68MATRIX_XYZ_TO_COLOR_MATCH_RGB: NDArrayFloat = np.linalg.inv(
69 MATRIX_COLOR_MATCH_RGB_TO_XYZ
70)
71"""*CIE XYZ* tristimulus values to *ColorMatch RGB* colourspace matrix."""
73RGB_COLOURSPACE_COLOR_MATCH_RGB: RGB_Colourspace = RGB_Colourspace(
74 "ColorMatch RGB",
75 PRIMARIES_COLOR_MATCH_RGB,
76 CCS_WHITEPOINT_COLOR_MATCH_RGB,
77 WHITEPOINT_NAME_COLOR_MATCH_RGB,
78 MATRIX_COLOR_MATCH_RGB_TO_XYZ,
79 MATRIX_XYZ_TO_COLOR_MATCH_RGB,
80 partial(gamma_function, exponent=1 / 1.8),
81 partial(gamma_function, exponent=1.8),
82)
83RGB_COLOURSPACE_COLOR_MATCH_RGB.__doc__ = """
84*ColorMatch RGB* colourspace.
86References
87----------
88:cite:`Lindbloom2014a`
89"""