Ejemplo n.º 1
0
    def _derive_transformation_matrices(self):
        """
        Computes the derived transformations matrices, the normalised primary
        matrix and its inverse.
        """

        if hasattr(self, '_primaries') and hasattr(self, '_whitepoint'):
            if self._primaries is not None and self._whitepoint is not None:
                npm = normalised_primary_matrix(self._primaries,
                                                self._whitepoint)

                self._derived_RGB_to_XYZ_matrix = npm
                self._derived_XYZ_to_RGB_matrix = np.linalg.inv(npm)
Ejemplo n.º 2
0
    def _derive_transformation_matrices(self):
        """
        Computes the derived transformations matrices, the normalised primary
        matrix and its inverse.
        """

        if hasattr(self, '_primaries') and hasattr(self, '_whitepoint'):
            if self._primaries is not None and self._whitepoint is not None:
                npm = normalised_primary_matrix(self._primaries,
                                                self._whitepoint)

                self._derived_RGB_to_XYZ_matrix = npm
                self._derived_XYZ_to_RGB_matrix = np.linalg.inv(npm)
Ejemplo n.º 3
0
"""
*Ekta Space PS 5* colourspace whitepoint name.

WHITEPOINT_NAME_EKTA_SPACE_PS_5_V : unicode
"""

CCS_WHITEPOINT_EKTA_SPACE_PS_5 = (
    CCS_ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
    [WHITEPOINT_NAME_EKTA_SPACE_PS_5_V])
"""
*Ekta Space PS 5* colourspace whitepoint chromaticity coordinates.

CCS_WHITEPOINT_EKTA_SPACE_PS_5 : ndarray
"""

MATRIX_EKTA_SPACE_PS_5_TO_XYZ = normalised_primary_matrix(
    PRIMARIES_EKTA_SPACE_PS_5, CCS_WHITEPOINT_EKTA_SPACE_PS_5)
"""
*Ekta Space PS 5* colourspace to *CIE XYZ* tristimulus values matrix.

MATRIX_EKTA_SPACE_PS_5_TO_XYZ : array_like, (3, 3)
"""

MATRIX_XYZ_TO_EKTA_SPACE_PS_5 = np.linalg.inv(MATRIX_EKTA_SPACE_PS_5_TO_XYZ)
"""
*CIE XYZ* tristimulus values to *Ekta Space PS 5* colourspace matrix.

MATRIX_XYZ_TO_EKTA_SPACE_PS_5 : array_like, (3, 3)
"""

RGB_COLOURSPACE_EKTA_SPACE_PS_5 = RGB_Colourspace(
    'Ekta Space PS 5',
Ejemplo n.º 4
0
"""
*FilmLight E-Gamut* colourspace whitepoint name.

FILMLIGHT_E_GAMUT_WHITEPOINT : unicode
"""

FILMLIGHT_E_GAMUT_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
    [FILMLIGHT_E_GAMUT_WHITEPOINT_NAME])
"""
*FilmLight E-Gamut* colourspace whitepoint.

FILMLIGHT_E_GAMUT_WHITEPOINT : ndarray
"""

FILMLIGHT_E_GAMUT_TO_XYZ_MATRIX = (normalised_primary_matrix(
    FILMLIGHT_E_GAMUT_PRIMARIES, FILMLIGHT_E_GAMUT_WHITEPOINT))
"""
*FilmLight E-Gamut* colourspace to *CIE XYZ* tristimulus values matrix.

FILMLIGHT_E_GAMUT_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_FILMLIGHT_E_GAMUT_MATRIX = (
    np.linalg.inv(FILMLIGHT_E_GAMUT_TO_XYZ_MATRIX))
"""
*CIE XYZ* tristimulus values to *FilmLight E-Gamut* colourspace matrix.

XYZ_TO_FILMLIGHT_E_GAMUT_MATRIX : array_like, (3, 3)
"""

FILMLIGHT_E_GAMUT_COLOURSPACE = RGB_Colourspace(
Ejemplo n.º 5
0
*ACES Primaries 0* to *CIE XYZ* tristimulus values matrix defined as per [2].
MATRIX_AP0_TO_XYZ : array_like, (3, 3)
"""

MATRIX_XYZ_TO_AP0 = np.array([
    [1.0498110175, 0.0000000000, -0.0000974845],
    [-0.4959030231, 1.3733130458, 0.0982400361],
    [0.0000000000, 0.0000000000, 0.9912520182],
])
"""
*CIE XYZ* tristimulus values to *ACES Primaries 0* matrix.

MATRIX_XYZ_TO_AP0 : array_like, (3, 3)
"""

MATRIX_AP1_TO_XYZ = normalised_primary_matrix(AP1, CCS_WHITEPOINT_ACES)
"""
*ACES Primaries 1* to *CIE XYZ* tristimulus values matrix.

MATRIX_AP1_TO_XYZ : array_like, (3, 3)
"""

MATRIX_XYZ_TO_AP1 = np.linalg.inv(MATRIX_AP1_TO_XYZ)
"""
*CIE XYZ* tristimulus values to *ACES Primaries 1* matrix.

MATRIX_XYZ_TO_AP1 : array_like, (3, 3)
"""

RGB_COLOURSPACE_ACES2065_1 = RGB_Colourspace(
    'ACES2065-1',
Ejemplo n.º 6
0
CINEMA_GAMUT_ILLUMINANT = 'D65'
"""
*Cinema Gamut* colourspace whitepoint name as illuminant.

CINEMA_GAMUT_ILLUMINANT : unicode
"""

CINEMA_GAMUT_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(CINEMA_GAMUT_ILLUMINANT)
"""
*Cinema Gamut* colourspace whitepoint.

CINEMA_GAMUT_WHITEPOINT : tuple
"""

CINEMA_GAMUT_TO_XYZ_MATRIX = normalised_primary_matrix(CINEMA_GAMUT_PRIMARIES,
                                                       CINEMA_GAMUT_WHITEPOINT)
"""
*Cinema Gamut* colourspace to *CIE XYZ* tristimulus values matrix.

CINEMA_GAMUT_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_CINEMA_GAMUT_MATRIX = np.linalg.inv(CINEMA_GAMUT_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Cinema Gamut* colourspace matrix.

XYZ_TO_CINEMA_GAMUT_MATRIX : array_like, (3, 3)
"""

CINEMA_GAMUT_COLOURSPACE = RGB_Colourspace(
    'Cinema Gamut',
Ejemplo n.º 7
0
SMPTE_240M_WHITEPOINT_NAME = 'D65'
"""
*SMPTE 240M* colourspace whitepoint name.

SMPTE_240M_WHITEPOINT_NAME : unicode
"""

SMPTE_240M_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                         [SMPTE_240M_WHITEPOINT_NAME])
"""
*SMPTE 240M* colourspace whitepoint.

SMPTE_240M_WHITEPOINT : ndarray
"""

SMPTE_240M_TO_XYZ_MATRIX = normalised_primary_matrix(SMPTE_240M_PRIMARIES,
                                                     SMPTE_240M_WHITEPOINT)
"""
*SMPTE 240M* colourspace to *CIE XYZ* tristimulus values matrix.

SMPTE_240M_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_SMPTE_240M_MATRIX = np.linalg.inv(SMPTE_240M_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *SMPTE 240M* colourspace matrix.

XYZ_TO_SMPTE_240M_MATRIX : array_like, (3, 3)
"""

SMPTE_240M_COLOURSPACE = RGB_Colourspace(
    'SMPTE 240M',
Ejemplo n.º 8
0
"""
*Adobe Wide Gamut RGB* colourspace whitepoint name.

WHITEPOINT_NAME_ADOBE_WIDE_GAMUT_RGB : unicode
"""

CCS_WHITEPOINT_ADOBE_WIDE_GAMUT_RGB = (
    CCS_ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
    [WHITEPOINT_NAME_ADOBE_WIDE_GAMUT_RGB])
"""
*Adobe Wide Gamut RGB* colourspace whitepoint chromaticity coordinates.

CCS_WHITEPOINT_ADOBE_WIDE_GAMUT_RGB : ndarray
"""

MATRIX_ADOBE_WIDE_GAMUT_RGB_TO_XYZ = normalised_primary_matrix(
    PRIMARIES_ADOBE_WIDE_GAMUT_RGB, CCS_WHITEPOINT_ADOBE_WIDE_GAMUT_RGB)
"""
*Adobe Wide Gamut RGB* colourspace to *CIE XYZ* tristimulus values matrix.

MATRIX_ADOBE_WIDE_GAMUT_RGB_TO_XYZ : array_like, (3, 3)
"""

MATRIX_XYZ_TO_ADOBE_WIDE_GAMUT_RGB = np.linalg.inv(
    MATRIX_ADOBE_WIDE_GAMUT_RGB_TO_XYZ)
"""
*CIE XYZ* tristimulus values to *Adobe Wide Gamut RGB* colourspace matrix.

MATRIX_XYZ_TO_ADOBE_WIDE_GAMUT_RGB : array_like, (3, 3)
"""

RGB_COLOURSPACE_ADOBE_WIDE_GAMUT_RGB = RGB_Colourspace(
Ejemplo n.º 9
0
EKTA_SPACE_PS_5_V_WHITEPOINT_NAME = 'D50'
"""
*Ekta Space PS 5* colourspace whitepoint name.

EKTA_SPACE_PS_5_V_WHITEPOINT_NAME : unicode
"""

EKTA_SPACE_PS_5_WHITEPOINT = (ILLUMINANTS[
    'CIE 1931 2 Degree Standard Observer'][EKTA_SPACE_PS_5_V_WHITEPOINT_NAME])
"""
*Ekta Space PS 5* colourspace whitepoint.

EKTA_SPACE_PS_5_WHITEPOINT : ndarray
"""

EKTA_SPACE_PS_5_TO_XYZ_MATRIX = normalised_primary_matrix(
    EKTA_SPACE_PS_5_PRIMARIES, EKTA_SPACE_PS_5_WHITEPOINT)
"""
*Ekta Space PS 5* colourspace to *CIE XYZ* tristimulus values matrix.

EKTA_SPACE_PS_5_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_EKTA_SPACE_PS_5_MATRIX = np.linalg.inv(EKTA_SPACE_PS_5_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Ekta Space PS 5* colourspace matrix.

XYZ_TO_EKTA_SPACE_PS_5_MATRIX : array_like, (3, 3)
"""

EKTA_SPACE_PS_5_COLOURSPACE = RGB_Colourspace(
    'Ekta Space PS 5',
Ejemplo n.º 10
0
PROTUNE_NATIVE_WHITEPOINT_NAME = 'D65'
"""
*Protune Native* colourspace whitepoint name.

PROTUNE_NATIVE_WHITEPOINT_NAME : unicode
"""

PROTUNE_NATIVE_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                             [PROTUNE_NATIVE_WHITEPOINT_NAME])
"""
*Protune Native* colourspace whitepoint.

PROTUNE_NATIVE_WHITEPOINT : ndarray
"""

PROTUNE_NATIVE_TO_XYZ_MATRIX = normalised_primary_matrix(
    PROTUNE_NATIVE_PRIMARIES, PROTUNE_NATIVE_WHITEPOINT)
"""
*Protune Native* colourspace to *CIE XYZ* tristimulus values matrix.

PROTUNE_NATIVE_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_PROTUNE_NATIVE_MATRIX = np.linalg.inv(PROTUNE_NATIVE_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Protune Native* colourspace matrix.

XYZ_TO_PROTUNE_NATIVE_MATRIX : array_like, (3, 3)
"""

PROTUNE_NATIVE_COLOURSPACE = RGB_Colourspace(
    'Protune Native',
Ejemplo n.º 11
0
BT709_WHITEPOINT_NAME = 'D65'
"""
*ITU-R BT.709* colourspace whitepoint name.

BT709_WHITEPOINT_NAME : unicode
"""

BT709_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][BT709_WHITEPOINT_NAME])
"""
*ITU-R BT.709* colourspace whitepoint.

BT709_WHITEPOINT : ndarray
"""

BT709_TO_XYZ_MATRIX = normalised_primary_matrix(BT709_PRIMARIES,
                                                BT709_WHITEPOINT)
"""
*ITU-R BT.709* colourspace to *CIE XYZ* tristimulus values matrix.

BT709_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_BT709_MATRIX = np.linalg.inv(BT709_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ITU-R BT.709* colourspace matrix.

XYZ_TO_BT709_MATRIX : array_like, (3, 3)
"""

BT709_COLOURSPACE = RGB_Colourspace(
    'ITU-R BT.709',
Ejemplo n.º 12
0
BT470_525_WHITEPOINT_NAME = 'C'
"""
*ITU-R BT.470 - 525* colourspace whitepoint name.

BT470_525_WHITEPOINT_NAME : unicode
"""

BT470_525_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    BT470_525_WHITEPOINT_NAME])
"""
*ITU-R BT.470 - 525* colourspace whitepoint.

BT470_525_WHITEPOINT : ndarray
"""

BT470_525_TO_XYZ_MATRIX = normalised_primary_matrix(BT470_525_PRIMARIES,
                                                    BT470_525_WHITEPOINT)
"""
*ITU-R BT.470 - 525* colourspace to *CIE XYZ* tristimulus values matrix.

BT470_525_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_BT470_525_MATRIX = np.linalg.inv(BT470_525_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ITU-R BT.470 - 525* colourspace matrix.

XYZ_TO_BT470_525_MATRIX : array_like, (3, 3)
"""

BT470_525_COLOURSPACE = RGB_Colourspace(
    'ITU-R BT.470 - 525',
Ejemplo n.º 13
0
P3_D65_WHITEPOINT_NAME = 'D65'
"""
*P3-D65* colourspace whitepoint name.

P3_D65_WHITEPOINT_NAME : unicode
"""

P3_D65_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][P3_D65_WHITEPOINT_NAME])
"""
*P3-D65* colourspace whitepoint.

P3_D65_WHITEPOINT : ndarray
"""

P3_D65_TO_XYZ_MATRIX = normalised_primary_matrix(P3_D65_PRIMARIES,
                                                 P3_D65_WHITEPOINT)
"""
*P3-D65* colourspace to *CIE XYZ* tristimulus values matrix.

P3_D65_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_P3_D65_MATRIX = np.linalg.inv(P3_D65_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *P3-D65* colourspace matrix.

XYZ_TO_P3_D65_MATRIX : array_like, (3, 3)
"""

P3_D65_COLOURSPACE = RGB_Colourspace(
    'P3-D65',
Ejemplo n.º 14
0
def sd_to_aces_relative_exposure_values(
        sd,
        illuminant=ILLUMINANTS_SDS['D65'],
        apply_chromatic_adaptation=False,
        chromatic_adaptation_transform='CAT02'):
    """
    Converts given spectral distribution to *ACES2065-1* colourspace relative
    exposure values.

    Parameters
    ----------
    sd : SpectralDistribution
        Spectral distribution.
    illuminant : SpectralDistribution, optional
        *Illuminant* spectral distribution.
    apply_chromatic_adaptation : bool, optional
        Whether to apply chromatic adaptation using given transform.
    chromatic_adaptation_transform : unicode, optional
        **{'CAT02', 'XYZ Scaling', 'Von Kries', 'Bradford', 'Sharp',
        'Fairchild', 'CMCCAT97', 'CMCCAT2000', 'CAT02_BRILL_CAT', 'Bianco',
        'Bianco PC'}**,
        *Chromatic adaptation* transform.

    Returns
    -------
    ndarray, (3,)
        *ACES2065-1* colourspace relative exposure values array.

    Notes
    -----

    +------------+-----------------------+---------------+
    | **Range**  | **Scale - Reference** | **Scale - 1** |
    +============+=======================+===============+
    | ``XYZ``    | [0, 100]              | [0, 1]        |
    +------------+-----------------------+---------------+

    -   The chromatic adaptation method implemented here is a bit unusual
        as it involves building a new colourspace based on *ACES2065-1*
        colourspace primaries but using the whitepoint of the illuminant that
        the spectral distribution was measured under.

    References
    ----------
    :cite:`Forsythe2018`,
    :cite:`TheAcademyofMotionPictureArtsandSciences2014q`,
    :cite:`TheAcademyofMotionPictureArtsandSciences2014r`,
    :cite:`TheAcademyofMotionPictureArtsandSciencese`

    Examples
    --------
    >>> from colour import COLOURCHECKERS_SDS
    >>> sd = COLOURCHECKERS_SDS['ColorChecker N Ohta']['dark skin']
    >>> sd_to_aces_relative_exposure_values(sd)  # doctest: +ELLIPSIS
    array([ 0.1171785...,  0.0866347...,  0.0589707...])
    >>> sd_to_aces_relative_exposure_values(sd,
    ...     apply_chromatic_adaptation=True)  # doctest: +ELLIPSIS
    array([ 0.1180766...,  0.0869023...,  0.0589104...])
    """

    shape = ACES_RICD.shape
    if sd.shape != ACES_RICD.shape:
        sd = sd.copy().align(shape)

    if illuminant.shape != ACES_RICD.shape:
        illuminant = illuminant.copy().align(shape)

    s_v = sd.values
    i_v = illuminant.values

    r_bar, g_bar, b_bar = tsplit(ACES_RICD.values)

    def k(x, y):
        """
        Computes the :math:`K_r`, :math:`K_g` or :math:`K_b` scale factors.
        """

        return 1 / np.sum(x * y)

    k_r = k(i_v, r_bar)
    k_g = k(i_v, g_bar)
    k_b = k(i_v, b_bar)

    E_r = k_r * np.sum(i_v * s_v * r_bar)
    E_g = k_g * np.sum(i_v * s_v * g_bar)
    E_b = k_b * np.sum(i_v * s_v * b_bar)

    E_rgb = np.array([E_r, E_g, E_b])

    # Accounting for flare.
    E_rgb += FLARE_PERCENTAGE
    E_rgb *= S_FLARE_FACTOR

    if apply_chromatic_adaptation:
        xy = XYZ_to_xy(sd_to_XYZ(illuminant) / 100)
        NPM = normalised_primary_matrix(ACES_2065_1_COLOURSPACE.primaries, xy)
        XYZ = RGB_to_XYZ(E_rgb, xy, ACES_2065_1_COLOURSPACE.whitepoint, NPM,
                         chromatic_adaptation_transform)
        E_rgb = XYZ_to_RGB(XYZ, ACES_2065_1_COLOURSPACE.whitepoint,
                           ACES_2065_1_COLOURSPACE.whitepoint,
                           ACES_2065_1_COLOURSPACE.XYZ_to_RGB_matrix)

    return from_range_1(E_rgb)
Ejemplo n.º 15
0
"""
*Adobe Wide Gamut RGB* colourspace whitepoint name.

ADOBE_WIDE_GAMUT_RGB_WHITEPOINT_NAME : unicode
"""

ADOBE_WIDE_GAMUT_RGB_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
        ADOBE_WIDE_GAMUT_RGB_WHITEPOINT_NAME])
"""
*Adobe Wide Gamut RGB* colourspace whitepoint.

ADOBE_WIDE_GAMUT_RGB_WHITEPOINT : ndarray
"""

ADOBE_WIDE_GAMUT_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    ADOBE_WIDE_GAMUT_RGB_PRIMARIES, ADOBE_WIDE_GAMUT_RGB_WHITEPOINT)
"""
*Adobe Wide Gamut RGB* colourspace to *CIE XYZ* tristimulus values matrix.

ADOBE_WIDE_GAMUT_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_ADOBE_WIDE_GAMUT_RGB_MATRIX = np.linalg.inv(
    ADOBE_WIDE_GAMUT_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Adobe Wide Gamut RGB* colourspace matrix.

XYZ_TO_ADOBE_WIDE_GAMUT_RGB_MATRIX : array_like, (3, 3)
"""

ADOBE_WIDE_GAMUT_RGB_COLOURSPACE = RGB_Colourspace(
Ejemplo n.º 16
0
BT709_ILLUMINANT = 'D65'
"""
*ITU-R BT.709* colourspace whitepoint name as illuminant.

BT709_ILLUMINANT : unicode
"""

BT709_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][BT709_ILLUMINANT])
"""
*ITU-R BT.709* colourspace whitepoint.

BT709_WHITEPOINT : ndarray
"""

BT709_TO_XYZ_MATRIX = normalised_primary_matrix(BT709_PRIMARIES,
                                                BT709_WHITEPOINT)
"""
*ITU-R BT.709* colourspace to *CIE XYZ* tristimulus values matrix.

BT709_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_BT709_MATRIX = np.linalg.inv(BT709_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ITU-R BT.709* colourspace matrix.

XYZ_TO_BT709_MATRIX : array_like, (3, 3)
"""

BT709_COLOURSPACE = RGB_Colourspace(
    'ITU-R BT.709',
Ejemplo n.º 17
0
SMPTE_C_RGB_ILLUMINANT = 'D65'
"""
*SMPTE-C RGB* colourspace whitepoint name as illuminant.

SMPTE_C_RGB_ILLUMINANT : unicode
"""

SMPTE_C_RGB_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(SMPTE_C_RGB_ILLUMINANT)
"""
*SMPTE-C RGB* colourspace whitepoint.

SMPTE_C_RGB_WHITEPOINT : tuple
"""

SMPTE_C_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    SMPTE_C_RGB_PRIMARIES, SMPTE_C_RGB_WHITEPOINT)
"""
*SMPTE-C RGB* colourspace to *CIE XYZ* tristimulus values matrix.

SMPTE_C_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_SMPTE_C_RGB_MATRIX = np.linalg.inv(SMPTE_C_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *SMPTE-C RGB* colourspace matrix.

XYZ_TO_SMPTE_C_RGB_MATRIX : array_like, (3, 3)
"""

SMPTE_C_RGB_COLOURSPACE = RGB_Colourspace(
    'SMPTE-C RGB',
Ejemplo n.º 18
0
ECI_RGB_V_ILLUMINANT = 'D50'
"""
*ECI RGB v2* colourspace whitepoint name as illuminant.

ECI_RGB_V_ILLUMINANT : unicode
"""

ECI_RGB_V2_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][ECI_RGB_V_ILLUMINANT])
"""
*ECI RGB v2* colourspace whitepoint.

ECI_RGB_V2_WHITEPOINT : ndarray
"""

ECI_RGB_V2_TO_XYZ_MATRIX = normalised_primary_matrix(ECI_RGB_V2_PRIMARIES,
                                                     ECI_RGB_V2_WHITEPOINT)
"""
*ECI RGB v2* colourspace to *CIE XYZ* tristimulus values matrix.

ECI_RGB_V2_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_ECI_RGB_V2_MATRIX = np.linalg.inv(ECI_RGB_V2_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ECI RGB v2* colourspace matrix.

XYZ_TO_ECI_RGB_V2_MATRIX : array_like, (3, 3)
"""


def _scale_domain_0_100_range_0_1(a, callable_):
Ejemplo n.º 19
0
FILMLIGHT_E_GAMUT_WHITEPOINT_NAME = 'D65'
"""
*FilmLight E-Gamut* colourspace whitepoint name.

FILMLIGHT_E_GAMUT_WHITEPOINT : unicode
"""

FILMLIGHT_E_GAMUT_WHITEPOINT = (ILLUMINANTS[
    'CIE 1931 2 Degree Standard Observer'][FILMLIGHT_E_GAMUT_WHITEPOINT_NAME])
"""
*FilmLight E-Gamut* colourspace whitepoint.

FILMLIGHT_E_GAMUT_WHITEPOINT : ndarray
"""

FILMLIGHT_E_GAMUT_TO_XYZ_MATRIX = (normalised_primary_matrix(
    FILMLIGHT_E_GAMUT_PRIMARIES, FILMLIGHT_E_GAMUT_WHITEPOINT))
"""
*FilmLight E-Gamut* colourspace to *CIE XYZ* tristimulus values matrix.

FILMLIGHT_E_GAMUT_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_FILMLIGHT_E_GAMUT_MATRIX = (
    np.linalg.inv(FILMLIGHT_E_GAMUT_TO_XYZ_MATRIX))
"""
*CIE XYZ* tristimulus values to *FilmLight E-Gamut* colourspace matrix.

XYZ_TO_FILMLIGHT_E_GAMUT_MATRIX : array_like, (3, 3)
"""

FILMLIGHT_E_GAMUT_COLOURSPACE = RGB_Colourspace(
Ejemplo n.º 20
0
        [0.214682981090100, 0.765294771968854],
        [0.129937629937630, 0.035343035343035],
    ]
)
"""*Don RGB 4* colourspace primaries."""

WHITEPOINT_NAME_DON_RGB_4: str = "D50"
"""*Don RGB 4* colourspace whitepoint name."""

CCS_WHITEPOINT_DON_RGB_4: NDArray = CCS_ILLUMINANTS[
    "CIE 1931 2 Degree Standard Observer"
][WHITEPOINT_NAME_DON_RGB_4]
"""*Don RGB 4* colourspace whitepoint chromaticity coordinates."""

MATRIX_DON_RGB_4_TO_XYZ: NDArray = normalised_primary_matrix(
    PRIMARIES_DON_RGB_4, CCS_WHITEPOINT_DON_RGB_4
)
"""*Don RGB 4* colourspace to *CIE XYZ* tristimulus values matrix."""

MATRIX_XYZ_TO_DON_RGB_4: NDArray = np.linalg.inv(MATRIX_DON_RGB_4_TO_XYZ)
"""*CIE XYZ* tristimulus values to *Don RGB 4* colourspace matrix."""

RGB_COLOURSPACE_DON_RGB_4: RGB_Colourspace = RGB_Colourspace(
    "Don RGB 4",
    PRIMARIES_DON_RGB_4,
    CCS_WHITEPOINT_DON_RGB_4,
    WHITEPOINT_NAME_DON_RGB_4,
    MATRIX_DON_RGB_4_TO_XYZ,
    MATRIX_XYZ_TO_DON_RGB_4,
    partial(gamma_function, exponent=1 / 2.2),
    partial(gamma_function, exponent=2.2),
Ejemplo n.º 21
0
COLOR_MATCH_RGB_WHITEPOINT_NAME = 'D50'
"""
*ColorMatch RGB* colourspace whitepoint name.

COLOR_MATCH_RGB_WHITEPOINT_NAME : unicode
"""

COLOR_MATCH_RGB_WHITEPOINT = (ILLUMINANTS[
    'CIE 1931 2 Degree Standard Observer'][COLOR_MATCH_RGB_WHITEPOINT_NAME])
"""
*ColorMatch RGB* colourspace whitepoint.

COLOR_MATCH_RGB_WHITEPOINT : ndarray
"""

COLOR_MATCH_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    COLOR_MATCH_RGB_PRIMARIES, COLOR_MATCH_RGB_WHITEPOINT)
"""
*ColorMatch RGB* colourspace to *CIE XYZ* tristimulus values matrix.

COLOR_MATCH_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_COLOR_MATCH_RGB_MATRIX = np.linalg.inv(COLOR_MATCH_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ColorMatch RGB* colourspace matrix.

XYZ_TO_COLOR_MATCH_RGB_MATRIX : array_like, (3, 3)
"""

COLOR_MATCH_RGB_COLOURSPACE = RGB_Colourspace(
    'ColorMatch RGB',
Ejemplo n.º 22
0
"""
*Adobe Wide Gamut RGB* colourspace whitepoint name.

ADOBE_WIDE_GAMUT_RGB_WHITEPOINT_NAME : unicode
"""

ADOBE_WIDE_GAMUT_RGB_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
    [ADOBE_WIDE_GAMUT_RGB_WHITEPOINT_NAME])
"""
*Adobe Wide Gamut RGB* colourspace whitepoint.

ADOBE_WIDE_GAMUT_RGB_WHITEPOINT : ndarray
"""

ADOBE_WIDE_GAMUT_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    ADOBE_WIDE_GAMUT_RGB_PRIMARIES, ADOBE_WIDE_GAMUT_RGB_WHITEPOINT)
"""
*Adobe Wide Gamut RGB* colourspace to *CIE XYZ* tristimulus values matrix.

ADOBE_WIDE_GAMUT_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_ADOBE_WIDE_GAMUT_RGB_MATRIX = np.linalg.inv(
    ADOBE_WIDE_GAMUT_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Adobe Wide Gamut RGB* colourspace matrix.

XYZ_TO_ADOBE_WIDE_GAMUT_RGB_MATRIX : array_like, (3, 3)
"""

ADOBE_WIDE_GAMUT_RGB_COLOURSPACE = RGB_Colourspace(
Ejemplo n.º 23
0
DON_RGB_4_WHITEPOINT_NAME = 'D50'
"""
*Don RGB 4* colourspace whitepoint name.

DON_RGB_4_WHITEPOINT_NAME : unicode
"""

DON_RGB_4_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    DON_RGB_4_WHITEPOINT_NAME])
"""
*Don RGB 4* colourspace whitepoint.

DON_RGB_4_WHITEPOINT : ndarray
"""

DON_RGB_4_TO_XYZ_MATRIX = normalised_primary_matrix(DON_RGB_4_PRIMARIES,
                                                    DON_RGB_4_WHITEPOINT)
"""
*Don RGB 4* colourspace to *CIE XYZ* tristimulus values matrix.

DON_RGB_4_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_DON_RGB_4_MATRIX = np.linalg.inv(DON_RGB_4_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Don RGB 4* colourspace matrix.

XYZ_TO_DON_RGB_4_MATRIX : array_like, (3, 3)
"""

DON_RGB_4_COLOURSPACE = RGB_Colourspace(
    'Don RGB 4',
Ejemplo n.º 24
0
RED_COLOR_ILLUMINANT = 'D60'
"""
*REDcolor* colourspace whitepoint name as illuminant.

RED_COLOR_ILLUMINANT : unicode
"""

RED_COLOR_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][RED_COLOR_ILLUMINANT])
"""
*REDcolor* colourspace whitepoint.

RED_COLOR_WHITEPOINT : ndarray
"""

RED_COLOR_TO_XYZ_MATRIX = normalised_primary_matrix(RED_COLOR_PRIMARIES,
                                                    RED_COLOR_WHITEPOINT)
"""
*REDcolor* colourspace to *CIE XYZ* tristimulus values matrix.

RED_COLOR_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_RED_COLOR_MATRIX = np.linalg.inv(RED_COLOR_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *REDcolor* colourspace matrix.

XYZ_TO_RED_COLOR_MATRIX : array_like, (3, 3)
"""

RED_COLOR_COLOURSPACE = RGB_Colourspace(
    'REDcolor', RED_COLOR_PRIMARIES, RED_COLOR_WHITEPOINT,
Ejemplo n.º 25
0
APPLE_RGB_ILLUMINANT = 'D65'
"""
*Apple RGB* colourspace whitepoint name as illuminant.

APPLE_RGB_ILLUMINANT : unicode
"""

APPLE_RGB_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(APPLE_RGB_ILLUMINANT)
"""
*Apple RGB* colourspace whitepoint.

APPLE_RGB_WHITEPOINT : tuple
"""

APPLE_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(APPLE_RGB_PRIMARIES,
                                                    APPLE_RGB_WHITEPOINT)
"""
*Apple RGB* colourspace to *CIE XYZ* tristimulus values matrix.

APPLE_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_APPLE_RGB_MATRIX = np.linalg.inv(APPLE_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Apple RGB* colourspace matrix.

XYZ_TO_APPLE_RGB_MATRIX : array_like, (3, 3)
"""

APPLE_RGB_COLOURSPACE = RGB_Colourspace(
    'Apple RGB',
Ejemplo n.º 26
0
DCDM_XYZ_WHITEPOINT_NAME = 'E'
"""
*DCDM XYZ* colourspace whitepoint name.

DCDM_XYZ_WHITEPOINT_NAME : unicode
"""

DCDM_XYZ_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    DCDM_XYZ_WHITEPOINT_NAME])
"""
*DCDM XYZ* colourspace whitepoint.

DCDM_XYZ_WHITEPOINT : ndarray
"""

DCDM_XYZ_TO_XYZ_MATRIX = normalised_primary_matrix(DCDM_XYZ_PRIMARIES,
                                                   DCDM_XYZ_WHITEPOINT)
"""
*DCDM XYZ* colourspace to *CIE XYZ* tristimulus values matrix.

DCDM_XYZ_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_DCDM_XYZ_MATRIX = np.linalg.inv(DCDM_XYZ_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *DCDM XYZ* colourspace matrix.

XYZ_TO_DCDM_XYZ_MATRIX : array_like, (3, 3)
"""

DCDM_XYZ_COLOURSPACE = RGB_Colourspace(
    'DCDM XYZ',
Ejemplo n.º 27
0
*ACES Primaries 0* to *CIE XYZ* tristimulus values matrix defined as per [2].
AP0_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_AP0_MATRIX = np.array([
    [1.0498110175, 0.0000000000, -0.0000974845],
    [-0.4959030231, 1.3733130458, 0.0982400361],
    [0.0000000000, 0.0000000000, 0.9912520182],
])
"""
*CIE XYZ* tristimulus values to *ACES Primaries 0* matrix.

XYZ_TO_AP0_MATRIX : array_like, (3, 3)
"""

AP1_TO_XYZ_MATRIX = normalised_primary_matrix(AP1, ACES_WHITEPOINT)
"""
*ACES Primaries 1* to *CIE XYZ* tristimulus values matrix.

AP1_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_AP1_MATRIX = np.linalg.inv(AP1_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ACES Primaries 1* matrix.

XYZ_TO_AP1_MATRIX : array_like, (3, 3)
"""

ACES_2065_1_COLOURSPACE = RGB_Colourspace(
    'ACES2065-1',
Ejemplo n.º 28
0
RUSSELL_RGB_ILLUMINANT = 'D55'
"""
*Russell RGB* colourspace whitepoint name as illuminant.

RUSSELL_RGB_ILLUMINANT : unicode
"""

RUSSELL_RGB_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(RUSSELL_RGB_ILLUMINANT)
"""
*Russell RGB* colourspace whitepoint.

RUSSELL_RGB_WHITEPOINT : tuple
"""

RUSSELL_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    RUSSELL_RGB_PRIMARIES, RUSSELL_RGB_WHITEPOINT)
"""
*Russell RGB* colourspace to *CIE XYZ* tristimulus values matrix.

RUSSELL_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_RUSSELL_RGB_MATRIX = np.linalg.inv(RUSSELL_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Russell RGB* colourspace matrix.

XYZ_TO_RUSSELL_RGB_MATRIX : array_like, (3, 3)
"""

RUSSELL_RGB_COLOURSPACE = RGB_Colourspace(
    'Russell RGB',
Ejemplo n.º 29
0
PROTUNE_NATIVE_WHITEPOINT_NAME = 'D65'
"""
*Protune Native* colourspace whitepoint name.

PROTUNE_NATIVE_WHITEPOINT_NAME : unicode
"""

PROTUNE_NATIVE_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                             [PROTUNE_NATIVE_WHITEPOINT_NAME])
"""
*Protune Native* colourspace whitepoint.

PROTUNE_NATIVE_WHITEPOINT : ndarray
"""

PROTUNE_NATIVE_TO_XYZ_MATRIX = normalised_primary_matrix(
    PROTUNE_NATIVE_PRIMARIES, PROTUNE_NATIVE_WHITEPOINT)
"""
*Protune Native* colourspace to *CIE XYZ* tristimulus values matrix.

PROTUNE_NATIVE_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_PROTUNE_NATIVE_MATRIX = np.linalg.inv(PROTUNE_NATIVE_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Protune Native* colourspace matrix.

XYZ_TO_PROTUNE_NATIVE_MATRIX : array_like, (3, 3)
"""

PROTUNE_NATIVE_COLOURSPACE = RGB_Colourspace(
    'Protune Native',
Ejemplo n.º 30
0
XTREME_RGB_WHITEPOINT_NAME = 'D50'
"""
*Xtreme RGB* colourspace whitepoint name.

XTREME_RGB_WHITEPOINT : unicode
"""

XTREME_RGB_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    XTREME_RGB_WHITEPOINT_NAME])
"""
*Xtreme RGB* colourspace whitepoint.

XTREME_RGB_WHITEPOINT : ndarray
"""

XTREME_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(XTREME_RGB_PRIMARIES,
                                                     XTREME_RGB_WHITEPOINT)
"""
*Xtreme RGB* colourspace to *CIE XYZ* tristimulus values matrix.

XTREME_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_XTREME_RGB_MATRIX = np.linalg.inv(XTREME_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Xtreme RGB* colourspace matrix.

XYZ_TO_XTREME_RGB_MATRIX : array_like, (3, 3)
"""

XTREME_RGB_COLOURSPACE = RGB_Colourspace(
    'Xtreme RGB',
Ejemplo n.º 31
0
-------
DCI-P3 illuminant has no associated spectral power distribution. DCI has no
official reference spectral measurement for this whitepoint. The closest
matching spectral power distribution is Kinoton 75P projector.
"""

DCI_P3_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(DCI_P3_ILLUMINANT)
"""
*DCI-P3* colourspace whitepoint.

DCI_P3_WHITEPOINT : tuple
"""

DCI_P3_TO_XYZ_MATRIX = normalised_primary_matrix(
    DCI_P3_PRIMARIES,
    DCI_P3_WHITEPOINT)
"""
*DCI-P3* colourspace to *CIE XYZ* tristimulus values matrix.

DCI_P3_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_DCI_P3_MATRIX = np.linalg.inv(DCI_P3_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *DCI-P3* colourspace matrix.

XYZ_TO_DCI_P3_MATRIX : array_like, (3, 3)
"""

DCI_P3_P_TO_XYZ_MATRIX = normalised_primary_matrix(
Ejemplo n.º 32
0
WHITEPOINT_NAME_BEST_RGB = 'D50'
"""
*Best RGB* colourspace whitepoint name.

WHITEPOINT_NAME_BEST_RGB : unicode
"""

CCS_WHITEPOINT_BEST_RGB = (CCS_ILLUMINANTS[
    'CIE 1931 2 Degree Standard Observer'][WHITEPOINT_NAME_BEST_RGB])
"""
*Best RGB* colourspace whitepoint chromaticity coordinates.

CCS_WHITEPOINT_BEST_RGB : ndarray
"""

MATRIX_BEST_RGB_TO_XYZ = normalised_primary_matrix(PRIMARIES_BEST_RGB,
                                                   CCS_WHITEPOINT_BEST_RGB)
"""
*Best RGB* colourspace to *CIE XYZ* tristimulus values matrix.

MATRIX_BEST_RGB_TO_XYZ : array_like, (3, 3)
"""

MATRIX_XYZ_TO_BEST_RGB = np.linalg.inv(MATRIX_BEST_RGB_TO_XYZ)
"""
*CIE XYZ* tristimulus values to *Best RGB* colourspace matrix.

MATRIX_XYZ_TO_BEST_RGB : array_like, (3, 3)
"""

RGB_COLOURSPACE_BEST_RGB = RGB_Colourspace(
    'Best RGB',
Ejemplo n.º 33
0
SMPTE_240M_WHITEPOINT_NAME = 'D65'
"""
*SMPTE 240M* colourspace whitepoint name.

SMPTE_240M_WHITEPOINT_NAME : unicode
"""

SMPTE_240M_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    SMPTE_240M_WHITEPOINT_NAME])
"""
*SMPTE 240M* colourspace whitepoint.

SMPTE_240M_WHITEPOINT : ndarray
"""

SMPTE_240M_TO_XYZ_MATRIX = normalised_primary_matrix(SMPTE_240M_PRIMARIES,
                                                     SMPTE_240M_WHITEPOINT)
"""
*SMPTE 240M* colourspace to *CIE XYZ* tristimulus values matrix.

SMPTE_240M_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_SMPTE_240M_MATRIX = np.linalg.inv(SMPTE_240M_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *SMPTE 240M* colourspace matrix.

XYZ_TO_SMPTE_240M_MATRIX : array_like, (3, 3)
"""

SMPTE_240M_COLOURSPACE = RGB_Colourspace(
    'SMPTE 240M',
Ejemplo n.º 34
0
DCDM_XYZ_WHITEPOINT_NAME = 'E'
"""
*DCDM XYZ* colourspace whitepoint name.

DCDM_XYZ_WHITEPOINT_NAME : unicode
"""

DCDM_XYZ_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                       [DCDM_XYZ_WHITEPOINT_NAME])
"""
*DCDM XYZ* colourspace whitepoint.

DCDM_XYZ_WHITEPOINT : ndarray
"""

DCDM_XYZ_TO_XYZ_MATRIX = normalised_primary_matrix(DCDM_XYZ_PRIMARIES,
                                                   DCDM_XYZ_WHITEPOINT)
"""
*DCDM XYZ* colourspace to *CIE XYZ* tristimulus values matrix.

DCDM_XYZ_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_DCDM_XYZ_MATRIX = np.linalg.inv(DCDM_XYZ_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *DCDM XYZ* colourspace matrix.

XYZ_TO_DCDM_XYZ_MATRIX : array_like, (3, 3)
"""

DCDM_XYZ_COLOURSPACE = RGB_Colourspace(
    'DCDM XYZ',
Ejemplo n.º 35
0
ECI_RGB_V_ILLUMINANT = 'D50'
"""
*ECI RGB v2* colourspace whitepoint name as illuminant.

ECI_RGB_V_ILLUMINANT : unicode
"""

ECI_RGB_V2_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(ECI_RGB_V_ILLUMINANT)
"""
*ECI RGB v2* colourspace whitepoint.

ECI_RGB_V2_WHITEPOINT : tuple
"""

ECI_RGB_V2_TO_XYZ_MATRIX = normalised_primary_matrix(ECI_RGB_V2_PRIMARIES,
                                                     ECI_RGB_V2_WHITEPOINT)
"""
*ECI RGB v2* colourspace to *CIE XYZ* tristimulus values matrix.

ECI_RGB_V2_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_ECI_RGB_V2_MATRIX = np.linalg.inv(ECI_RGB_V2_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ECI RGB v2* colourspace matrix.

XYZ_TO_ECI_RGB_V2_MATRIX : array_like, (3, 3)
"""


def _scale_domain_0_100_range_0_1(a, callable_):
Ejemplo n.º 36
0
"""
*Ekta Space PS 5* colourspace whitepoint name.

EKTA_SPACE_PS_5_V_WHITEPOINT_NAME : unicode
"""

EKTA_SPACE_PS_5_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
    [EKTA_SPACE_PS_5_V_WHITEPOINT_NAME])
"""
*Ekta Space PS 5* colourspace whitepoint.

EKTA_SPACE_PS_5_WHITEPOINT : ndarray
"""

EKTA_SPACE_PS_5_TO_XYZ_MATRIX = normalised_primary_matrix(
    EKTA_SPACE_PS_5_PRIMARIES, EKTA_SPACE_PS_5_WHITEPOINT)
"""
*Ekta Space PS 5* colourspace to *CIE XYZ* tristimulus values matrix.

EKTA_SPACE_PS_5_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_EKTA_SPACE_PS_5_MATRIX = np.linalg.inv(EKTA_SPACE_PS_5_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Ekta Space PS 5* colourspace matrix.

XYZ_TO_EKTA_SPACE_PS_5_MATRIX : array_like, (3, 3)
"""

EKTA_SPACE_PS_5_COLOURSPACE = RGB_Colourspace(
    'Ekta Space PS 5',
Ejemplo n.º 37
0
PRIMARIES_SMPTE_240M: NDArray = np.array([
    [0.6300, 0.3400],
    [0.3100, 0.5950],
    [0.1550, 0.0700],
])
"""*SMPTE 240M* colourspace primaries."""

WHITEPOINT_NAME_SMPTE_240M: str = "D65"
"""*SMPTE 240M* colourspace whitepoint name."""

CCS_WHITEPOINT_SMPTE_240M: NDArray = CCS_ILLUMINANTS[
    "CIE 1931 2 Degree Standard Observer"][WHITEPOINT_NAME_SMPTE_240M]
"""*SMPTE 240M* colourspace whitepoint chromaticity coordinates."""

MATRIX_SMPTE_240M_TO_XYZ: NDArray = normalised_primary_matrix(
    PRIMARIES_SMPTE_240M, CCS_WHITEPOINT_SMPTE_240M)
"""*SMPTE 240M* colourspace to *CIE XYZ* tristimulus values matrix."""

MATRIX_XYZ_TO_SMPTE_240M: NDArray = np.linalg.inv(MATRIX_SMPTE_240M_TO_XYZ)
"""*CIE XYZ* tristimulus values to *SMPTE 240M* colourspace matrix."""

RGB_COLOURSPACE_SMPTE_240M: RGB_Colourspace = RGB_Colourspace(
    "SMPTE 240M",
    PRIMARIES_SMPTE_240M,
    CCS_WHITEPOINT_SMPTE_240M,
    WHITEPOINT_NAME_SMPTE_240M,
    MATRIX_SMPTE_240M_TO_XYZ,
    MATRIX_XYZ_TO_SMPTE_240M,
    oetf_SMPTE240M,
    eotf_SMPTE240M,
)
Ejemplo n.º 38
0
CINEMA_GAMUT_ILLUMINANT = 'D65'
"""
*Cinema Gamut* colourspace whitepoint name as illuminant.

CINEMA_GAMUT_ILLUMINANT : unicode
"""

CINEMA_GAMUT_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                           [CINEMA_GAMUT_ILLUMINANT])
"""
*Cinema Gamut* colourspace whitepoint.

CINEMA_GAMUT_WHITEPOINT : ndarray
"""

CINEMA_GAMUT_TO_XYZ_MATRIX = normalised_primary_matrix(
    CINEMA_GAMUT_PRIMARIES, CINEMA_GAMUT_WHITEPOINT)
"""
*Cinema Gamut* colourspace to *CIE XYZ* tristimulus values matrix.

CINEMA_GAMUT_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_CINEMA_GAMUT_MATRIX = np.linalg.inv(CINEMA_GAMUT_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Cinema Gamut* colourspace matrix.

XYZ_TO_CINEMA_GAMUT_MATRIX : array_like, (3, 3)
"""

CINEMA_GAMUT_COLOURSPACE = RGB_Colourspace(
    'Cinema Gamut',
Ejemplo n.º 39
0
BETA_RGB_WHITEPOINT_NAME = 'D50'
"""
*Beta RGB* colourspace whitepoint name.

BETA_RGB_WHITEPOINT_NAME : unicode
"""

BETA_RGB_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    BETA_RGB_WHITEPOINT_NAME])
"""
*Beta RGB* colourspace whitepoint.

BETA_RGB_WHITEPOINT : ndarray
"""

BETA_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(BETA_RGB_PRIMARIES,
                                                   BETA_RGB_WHITEPOINT)
"""
*Beta RGB* colourspace to *CIE XYZ* tristimulus values matrix.

BETA_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_BETA_RGB_MATRIX = np.linalg.inv(BETA_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Beta RGB* colourspace matrix.

XYZ_TO_BETA_RGB_MATRIX : array_like, (3, 3)
"""

BETA_RGB_COLOURSPACE = RGB_Colourspace(
    'Beta RGB',
Ejemplo n.º 40
0
BEST_RGB_ILLUMINANT = 'D50'
"""
*Best RGB* colourspace whitepoint name as illuminant.

BEST_RGB_ILLUMINANT : unicode
"""

BEST_RGB_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][BEST_RGB_ILLUMINANT])
"""
*Best RGB* colourspace whitepoint.

BEST_RGB_WHITEPOINT : ndarray
"""

BEST_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(BEST_RGB_PRIMARIES,
                                                   BEST_RGB_WHITEPOINT)
"""
*Best RGB* colourspace to *CIE XYZ* tristimulus values matrix.

BEST_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_BEST_RGB_MATRIX = np.linalg.inv(BEST_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Best RGB* colourspace matrix.

XYZ_TO_BEST_RGB_MATRIX : array_like, (3, 3)
"""

BEST_RGB_COLOURSPACE = RGB_Colourspace(
    'Best RGB',
Ejemplo n.º 41
0
def sd_to_aces_relative_exposure_values(
        sd,
        illuminant=ILLUMINANTS_SDS['D65'],
        apply_chromatic_adaptation=False,
        chromatic_adaptation_transform='CAT02'):
    """
    Converts given spectral distribution to *ACES2065-1* colourspace relative
    exposure values.

    Parameters
    ----------
    sd : SpectralDistribution
        Spectral distribution.
    illuminant : SpectralDistribution, optional
        *Illuminant* spectral distribution.
    apply_chromatic_adaptation : bool, optional
        Whether to apply chromatic adaptation using given transform.
    chromatic_adaptation_transform : unicode, optional
        **{'CAT02', 'XYZ Scaling', 'Von Kries', 'Bradford', 'Sharp',
        'Fairchild', 'CMCCAT97', 'CMCCAT2000', 'CAT02_BRILL_CAT', 'Bianco',
        'Bianco PC'}**,
        *Chromatic adaptation* transform.

    Returns
    -------
    ndarray, (3,)
        *ACES2065-1* colourspace relative exposure values array.

    Notes
    -----

    +------------+-----------------------+---------------+
    | **Range**  | **Scale - Reference** | **Scale - 1** |
    +============+=======================+===============+
    | ``XYZ``    | [0, 100]              | [0, 1]        |
    +------------+-----------------------+---------------+

    -   The chromatic adaptation method implemented here is a bit unusual
        as it involves building a new colourspace based on *ACES2065-1*
        colourspace primaries but using the whitepoint of the illuminant that
        the spectral distribution was measured under.

    References
    ----------
    :cite:`Forsythe2018`,
    :cite:`TheAcademyofMotionPictureArtsandSciences2014q`,
    :cite:`TheAcademyofMotionPictureArtsandSciences2014r`,
    :cite:`TheAcademyofMotionPictureArtsandSciencese`

    Examples
    --------
    >>> from colour import COLOURCHECKERS_SDS
    >>> sd = COLOURCHECKERS_SDS['ColorChecker N Ohta']['dark skin']
    >>> sd_to_aces_relative_exposure_values(sd)  # doctest: +ELLIPSIS
    array([ 0.1171785...,  0.0866347...,  0.0589707...])
    >>> sd_to_aces_relative_exposure_values(sd,
    ...     apply_chromatic_adaptation=True)  # doctest: +ELLIPSIS
    array([ 0.1180766...,  0.0869023...,  0.0589104...])
    """

    shape = ACES_RICD.shape
    if sd.shape != ACES_RICD.shape:
        sd = sd.copy().align(shape)

    if illuminant.shape != ACES_RICD.shape:
        illuminant = illuminant.copy().align(shape)

    s_v = sd.values
    i_v = illuminant.values

    r_bar, g_bar, b_bar = tsplit(ACES_RICD.values)

    def k(x, y):
        """
        Computes the :math:`K_r`, :math:`K_g` or :math:`K_b` scale factors.
        """

        return 1 / np.sum(x * y)

    k_r = k(i_v, r_bar)
    k_g = k(i_v, g_bar)
    k_b = k(i_v, b_bar)

    E_r = k_r * np.sum(i_v * s_v * r_bar)
    E_g = k_g * np.sum(i_v * s_v * g_bar)
    E_b = k_b * np.sum(i_v * s_v * b_bar)

    E_rgb = np.array([E_r, E_g, E_b])

    # Accounting for flare.
    E_rgb += FLARE_PERCENTAGE
    E_rgb *= S_FLARE_FACTOR

    if apply_chromatic_adaptation:
        xy = XYZ_to_xy(sd_to_XYZ(illuminant) / 100)
        NPM = normalised_primary_matrix(ACES_2065_1_COLOURSPACE.primaries, xy)
        XYZ = RGB_to_XYZ(E_rgb, xy, ACES_2065_1_COLOURSPACE.whitepoint, NPM,
                         chromatic_adaptation_transform)
        E_rgb = XYZ_to_RGB(XYZ, ACES_2065_1_COLOURSPACE.whitepoint,
                           ACES_2065_1_COLOURSPACE.whitepoint,
                           ACES_2065_1_COLOURSPACE.XYZ_to_RGB_matrix)

    return from_range_1(E_rgb)
Ejemplo n.º 42
0
WHITEPOINT_NAME_XTREME_RGB = 'D50'
"""
*Xtreme RGB* colourspace whitepoint name.

CCS_WHITEPOINT_XTREME_RGB : unicode
"""

CCS_WHITEPOINT_XTREME_RGB = (CCS_ILLUMINANTS[
    'CIE 1931 2 Degree Standard Observer'][WHITEPOINT_NAME_XTREME_RGB])
"""
*Xtreme RGB* colourspace whitepoint chromaticity coordinates.

CCS_WHITEPOINT_XTREME_RGB : ndarray
"""

MATRIX_XTREME_RGB_TO_XYZ = normalised_primary_matrix(
    PRIMARIES_XTREME_RGB, CCS_WHITEPOINT_XTREME_RGB)
"""
*Xtreme RGB* colourspace to *CIE XYZ* tristimulus values matrix.

MATRIX_XTREME_RGB_TO_XYZ : array_like, (3, 3)
"""

MATRIX_XYZ_TO_XTREME_RGB = np.linalg.inv(MATRIX_XTREME_RGB_TO_XYZ)
"""
*CIE XYZ* tristimulus values to *Xtreme RGB* colourspace matrix.

MATRIX_XYZ_TO_XTREME_RGB : array_like, (3, 3)
"""

RGB_COLOURSPACE_XTREME_RGB = RGB_Colourspace(
    'Xtreme RGB',
Ejemplo n.º 43
0
BT470_525_WHITEPOINT_NAME = 'C'
"""
*ITU-R BT.470 - 525* colourspace whitepoint name.

BT470_525_WHITEPOINT_NAME : unicode
"""

BT470_525_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][
    BT470_525_WHITEPOINT_NAME])
"""
*ITU-R BT.470 - 525* colourspace whitepoint.

BT470_525_WHITEPOINT : ndarray
"""

BT470_525_TO_XYZ_MATRIX = normalised_primary_matrix(BT470_525_PRIMARIES,
                                                    BT470_525_WHITEPOINT)
"""
*ITU-R BT.470 - 525* colourspace to *CIE XYZ* tristimulus values matrix.

BT470_525_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_BT470_525_MATRIX = np.linalg.inv(BT470_525_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ITU-R BT.470 - 525* colourspace matrix.

XYZ_TO_BT470_525_MATRIX : array_like, (3, 3)
"""

BT470_525_COLOURSPACE = RGB_Colourspace(
    'ITU-R BT.470 - 525',
Ejemplo n.º 44
0
PRIMARIES_APPLE_RGB: NDArray = np.array([
    [0.6250, 0.3400],
    [0.2800, 0.5950],
    [0.1550, 0.0700],
])
"""*Apple RGB* colourspace primaries."""

WHITEPOINT_NAME_APPLE_RGB: str = "D65"
"""*Apple RGB* colourspace whitepoint name."""

CCS_WHITEPOINT_APPLE_RGB: NDArray = CCS_ILLUMINANTS[
    "CIE 1931 2 Degree Standard Observer"][WHITEPOINT_NAME_APPLE_RGB]
"""*Apple RGB* colourspace whitepoint chromaticity coordinates."""

MATRIX_APPLE_RGB_TO_XYZ: NDArray = normalised_primary_matrix(
    PRIMARIES_APPLE_RGB, CCS_WHITEPOINT_APPLE_RGB)
"""*Apple RGB* colourspace to *CIE XYZ* tristimulus values matrix."""

MATRIX_XYZ_TO_APPLE_RGB: NDArray = np.linalg.inv(MATRIX_APPLE_RGB_TO_XYZ)
"""*CIE XYZ* tristimulus values to *Apple RGB* colourspace matrix."""

RGB_COLOURSPACE_APPLE_RGB: RGB_Colourspace = RGB_Colourspace(
    "Apple RGB",
    PRIMARIES_APPLE_RGB,
    CCS_WHITEPOINT_APPLE_RGB,
    WHITEPOINT_NAME_APPLE_RGB,
    MATRIX_APPLE_RGB_TO_XYZ,
    MATRIX_XYZ_TO_APPLE_RGB,
    partial(gamma_function, exponent=1 / 1.8),
    partial(gamma_function, exponent=1.8),
)
Ejemplo n.º 45
0
PRIMARIES_DCDM_XYZ: NDArray = np.array([
    [1.0, 0.0],
    [0.0, 1.0],
    [0.0, 0.0],
])
"""*DCDM XYZ* colourspace primaries."""

WHITEPOINT_NAME_DCDM_XYZ: str = "E"
"""*DCDM XYZ* colourspace whitepoint name."""

CCS_WHITEPOINT_DCDM_XYZ: NDArray = CCS_ILLUMINANTS[
    "CIE 1931 2 Degree Standard Observer"][WHITEPOINT_NAME_DCDM_XYZ]
"""*DCDM XYZ* colourspace whitepoint chromaticity coordinates."""

MATRIX_DCDM_XYZ_TO_XYZ: NDArray = normalised_primary_matrix(
    PRIMARIES_DCDM_XYZ, CCS_WHITEPOINT_DCDM_XYZ)
"""*DCDM XYZ* colourspace to *CIE XYZ* tristimulus values matrix."""

MATRIX_XYZ_TO_DCDM_XYZ: NDArray = np.linalg.inv(MATRIX_DCDM_XYZ_TO_XYZ)
"""*CIE XYZ* tristimulus values to *DCDM XYZ* colourspace matrix."""

RGB_COLOURSPACE_DCDM_XYZ: RGB_Colourspace = RGB_Colourspace(
    "DCDM XYZ",
    PRIMARIES_DCDM_XYZ,
    CCS_WHITEPOINT_DCDM_XYZ,
    WHITEPOINT_NAME_DCDM_XYZ,
    MATRIX_DCDM_XYZ_TO_XYZ,
    MATRIX_XYZ_TO_DCDM_XYZ,
    eotf_inverse_DCDM,
    eotf_DCDM,
)
Ejemplo n.º 46
0
RUSSELL_RGB_WHITEPOINT_NAME = 'D55'
"""
*Russell RGB* colourspace whitepoint name.

RUSSELL_RGB_WHITEPOINT_NAME : unicode
"""

RUSSELL_RGB_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                          [RUSSELL_RGB_WHITEPOINT_NAME])
"""
*Russell RGB* colourspace whitepoint.

RUSSELL_RGB_WHITEPOINT : ndarray
"""

RUSSELL_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(RUSSELL_RGB_PRIMARIES,
                                                      RUSSELL_RGB_WHITEPOINT)
"""
*Russell RGB* colourspace to *CIE XYZ* tristimulus values matrix.

RUSSELL_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_RUSSELL_RGB_MATRIX = np.linalg.inv(RUSSELL_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Russell RGB* colourspace matrix.

XYZ_TO_RUSSELL_RGB_MATRIX : array_like, (3, 3)
"""

RUSSELL_RGB_COLOURSPACE = RGB_Colourspace(
    'Russell RGB',
Ejemplo n.º 47
0
*ACES Primaries 0* to *CIE XYZ* tristimulus values matrix defined as per [2].
AP0_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_AP0_MATRIX = np.array([
    [1.0498110175, 0.0000000000, -0.0000974845],
    [-0.4959030231, 1.3733130458, 0.0982400361],
    [0.0000000000, 0.0000000000, 0.9912520182],
])
"""
*CIE XYZ* tristimulus values to *ACES Primaries 0* matrix.

XYZ_TO_AP0_MATRIX : array_like, (3, 3)
"""

AP1_TO_XYZ_MATRIX = normalised_primary_matrix(AP1, ACES_WHITEPOINT)
"""
*ACES Primaries 1* to *CIE XYZ* tristimulus values matrix.

AP1_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_AP1_MATRIX = np.linalg.inv(AP1_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *ACES Primaries 1* matrix.

XYZ_TO_AP1_MATRIX : array_like, (3, 3)
"""

ACES_2065_1_COLOURSPACE = RGB_Colourspace(
    'ACES2065-1',
Ejemplo n.º 48
0
XTREME_RGB_WHITEPOINT_NAME = 'D50'
"""
*Xtreme RGB* colourspace whitepoint name.

XTREME_RGB_WHITEPOINT : unicode
"""

XTREME_RGB_WHITEPOINT = (ILLUMINANTS['CIE 1931 2 Degree Standard Observer']
                         [XTREME_RGB_WHITEPOINT_NAME])
"""
*Xtreme RGB* colourspace whitepoint.

XTREME_RGB_WHITEPOINT : ndarray
"""

XTREME_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(XTREME_RGB_PRIMARIES,
                                                     XTREME_RGB_WHITEPOINT)
"""
*Xtreme RGB* colourspace to *CIE XYZ* tristimulus values matrix.

XTREME_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_XTREME_RGB_MATRIX = np.linalg.inv(XTREME_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Xtreme RGB* colourspace matrix.

XYZ_TO_XTREME_RGB_MATRIX : array_like, (3, 3)
"""

XTREME_RGB_COLOURSPACE = RGB_Colourspace(
    'Xtreme RGB',
Ejemplo n.º 49
0
PRIMARIES_ECI_RGB_V2: NDArray = np.array([
    [0.670103092783505, 0.329896907216495],
    [0.209905660377358, 0.709905660377358],
    [0.140061791967044, 0.080329557157570],
])
"""*ECI RGB v2* colourspace primaries."""

WHITEPOINT_NAME_ECI_RGB_V: str = "D50"
"""*ECI RGB v2* colourspace whitepoint name."""

CCS_WHITEPOINT_ECI_RGB_V2: NDArray = CCS_ILLUMINANTS[
    "CIE 1931 2 Degree Standard Observer"][WHITEPOINT_NAME_ECI_RGB_V]
"""*ECI RGB v2* colourspace whitepoint chromaticity coordinates."""

MATRIX_ECI_RGB_V2_TO_XYZ: NDArray = normalised_primary_matrix(
    PRIMARIES_ECI_RGB_V2, CCS_WHITEPOINT_ECI_RGB_V2)
"""*ECI RGB v2* colourspace to *CIE XYZ* tristimulus values matrix."""

MATRIX_XYZ_TO_ECI_RGB_V2: NDArray = np.linalg.inv(MATRIX_ECI_RGB_V2_TO_XYZ)
"""*CIE XYZ* tristimulus values to *ECI RGB v2* colourspace matrix."""


def _scale_domain_0_100_range_0_1(a: FloatingOrArrayLike,
                                  callable_: Callable) -> FloatingOrNDArray:
    """
    Scale the input domain of given *luminance* :math:`Y` or *Lightness*
    :math:`L^*` array to [0, 100], call the given callable, and
    scales the output range to [0, 1].

    Parameters
    ----------
Ejemplo n.º 50
0
PAL_SECAM_RGB_ILLUMINANT = 'D65'
"""
*Pal/Secam RGB* colourspace whitepoint name as illuminant.

PAL_SECAM_RGB_ILLUMINANT : unicode
"""

PAL_SECAM_RGB_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(PAL_SECAM_RGB_ILLUMINANT)
"""
*Pal/Secam RGB* colourspace whitepoint.

PAL_SECAM_RGB_WHITEPOINT : tuple
"""

PAL_SECAM_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    PAL_SECAM_RGB_PRIMARIES, PAL_SECAM_RGB_WHITEPOINT)
"""
*Pal/Secam RGB* colourspace to *CIE XYZ* tristimulus values matrix.

PAL_SECAM_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_PAL_SECAM_RGB_MATRIX = np.linalg.inv(PAL_SECAM_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Pal/Secam RGB* colourspace matrix.

XYZ_TO_PAL_SECAM_RGB_MATRIX : array_like, (3, 3)
"""

PAL_SECAM_RGB_COLOURSPACE = RGB_Colourspace(
    'Pal/Secam RGB',
Ejemplo n.º 51
0
REC_2020_ILLUMINANT = 'D65'
"""
*Rec. 2020* colourspace whitepoint name as illuminant.

REC_2020_ILLUMINANT : unicode
"""

REC_2020_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(REC_2020_ILLUMINANT)
"""
*Rec. 2020* colourspace whitepoint.

REC_2020_WHITEPOINT : tuple
"""

REC_2020_TO_XYZ_MATRIX = normalised_primary_matrix(REC_2020_PRIMARIES,
                                                   REC_2020_WHITEPOINT)
"""
*Rec. 2020* colourspace to *CIE XYZ* tristimulus values matrix.

REC_2020_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_REC_2020_MATRIX = np.linalg.inv(REC_2020_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Rec. 2020* colourspace matrix.

XYZ_TO_REC_2020_MATRIX : array_like, (3, 3)
"""

REC_2020_COLOURSPACE = RGB_Colourspace(
    'Rec. 2020',
Ejemplo n.º 52
0
Warning
-------
DCI-P3 illuminant has no associated spectral distribution. DCI has no
official reference spectral measurement for this whitepoint. The closest
matching spectral distribution is Kinoton 75P projector.
"""

DCI_P3_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][DCI_P3_WHITEPOINT_NAME])
"""
*DCI-P3* colourspace whitepoint.

DCI_P3_WHITEPOINT : ndarray
"""

DCI_P3_TO_XYZ_MATRIX = normalised_primary_matrix(DCI_P3_PRIMARIES,
                                                 DCI_P3_WHITEPOINT)
"""
*DCI-P3* colourspace to *CIE XYZ* tristimulus values matrix.

DCI_P3_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_DCI_P3_MATRIX = np.linalg.inv(DCI_P3_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *DCI-P3* colourspace matrix.

XYZ_TO_DCI_P3_MATRIX : array_like, (3, 3)
"""

DCI_P3_P_TO_XYZ_MATRIX = normalised_primary_matrix(DCI_P3_P_PRIMARIES,
                                                   DCI_P3_WHITEPOINT)
Ejemplo n.º 53
0
RED_COLOR_ILLUMINANT = 'D60'
"""
*REDcolor* colourspace whitepoint name as illuminant.

RED_COLOR_ILLUMINANT : unicode
"""

RED_COLOR_WHITEPOINT = ILLUMINANTS.get(
    'CIE 1931 2 Degree Standard Observer').get(RED_COLOR_ILLUMINANT)
"""
*REDcolor* colourspace whitepoint.

RED_COLOR_WHITEPOINT : tuple
"""

RED_COLOR_TO_XYZ_MATRIX = normalised_primary_matrix(
    RED_COLOR_PRIMARIES, RED_COLOR_WHITEPOINT)
"""
*REDcolor* colourspace to *CIE XYZ* tristimulus values matrix.

RED_COLOR_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_RED_COLOR_MATRIX = np.linalg.inv(RED_COLOR_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *REDcolor* colourspace matrix.

XYZ_TO_RED_COLOR_MATRIX : array_like, (3, 3)
"""

RED_COLOR_COLOURSPACE = RGB_Colourspace(
    'REDcolor',
Ejemplo n.º 54
0
APPLE_RGB_ILLUMINANT = 'D65'
"""
*Apple RGB* colourspace whitepoint name as illuminant.

APPLE_RGB_ILLUMINANT : unicode
"""

APPLE_RGB_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][APPLE_RGB_ILLUMINANT])
"""
*Apple RGB* colourspace whitepoint.

APPLE_RGB_WHITEPOINT : ndarray
"""

APPLE_RGB_TO_XYZ_MATRIX = normalised_primary_matrix(
    APPLE_RGB_PRIMARIES, APPLE_RGB_WHITEPOINT)
"""
*Apple RGB* colourspace to *CIE XYZ* tristimulus values matrix.

APPLE_RGB_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_APPLE_RGB_MATRIX = np.linalg.inv(APPLE_RGB_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Apple RGB* colourspace matrix.

XYZ_TO_APPLE_RGB_MATRIX : array_like, (3, 3)
"""

APPLE_RGB_COLOURSPACE = RGB_Colourspace(
    'Apple RGB',
Ejemplo n.º 55
0
DON_RGB_4_ILLUMINANT = 'D50'
"""
*Don RGB 4* colourspace whitepoint name as illuminant.

DON_RGB_4_ILLUMINANT : unicode
"""

DON_RGB_4_WHITEPOINT = (
    ILLUMINANTS['CIE 1931 2 Degree Standard Observer'][DON_RGB_4_ILLUMINANT])
"""
*Don RGB 4* colourspace whitepoint.

DON_RGB_4_WHITEPOINT : ndarray
"""

DON_RGB_4_TO_XYZ_MATRIX = normalised_primary_matrix(DON_RGB_4_PRIMARIES,
                                                    DON_RGB_4_WHITEPOINT)
"""
*Don RGB 4* colourspace to *CIE XYZ* tristimulus values matrix.

DON_RGB_4_TO_XYZ_MATRIX : array_like, (3, 3)
"""

XYZ_TO_DON_RGB_4_MATRIX = np.linalg.inv(DON_RGB_4_TO_XYZ_MATRIX)
"""
*CIE XYZ* tristimulus values to *Don RGB 4* colourspace matrix.

XYZ_TO_DON_RGB_4_MATRIX : array_like, (3, 3)
"""

DON_RGB_4_COLOURSPACE = RGB_Colourspace(
    'Don RGB 4', DON_RGB_4_PRIMARIES, DON_RGB_4_WHITEPOINT,