colour.models Package — Colour 0.3.0 documentation

# colour.models Package

## Sub-Packages

- colour.models.dataset Package
  - Sub-Modules
    - colour.models.dataset.aces_rgb Module
      - ACES RGB Colourspace
    - colour.models.dataset.aces_rgb_idt Module
      - ACES RGB Colourspace - Input Device Transform Dataset
    - colour.models.dataset.adobe_rgb_1998 Module
      - Adobe RGB 1998 Colourspace
    - colour.models.dataset.adobe_wide_gamut_rgb Module
      - Adobe Wide Gamut RGB Colourspace
    - colour.models.dataset.alexa_wide_gamut_rgb Module
      - ALEXA Wide Gamut RGB Colourspace
    - colour.models.dataset.apple_rgb Module
      - Apple RGB Colourspace
    - colour.models.dataset.best_rgb Module
      - Best RGB Colourspace
    - colour.models.dataset.beta_rgb Module
      - Beta RGB Colourspace
    - colour.models.dataset.c_log Module
      - Canon C-Log Colourspace
    - colour.models.dataset.cie_rgb Module
      - CIE RGB Colourspace
    - colour.models.dataset.color_match_rgb Module
      - ColorMatch RGB Colourspace
    - colour.models.dataset.dci_p3 Module
      - DCI-P3 Colourspace
    - colour.models.dataset.don_rgb_4 Module
      - Don RGB 4 Colourspace
    - colour.models.dataset.eci_rgb_v2 Module
      - ECI RGB v2 Colourspace
    - colour.models.dataset.ekta_space_ps5 Module
      - Ekta Space PS 5 Colourspace
    - colour.models.dataset.max_rgb Module
      - Max RGB Colourspace
    - colour.models.dataset.ntsc_rgb Module
      - NTSC RGB Colourspace
    - colour.models.dataset.pal_secam_rgb Module
      - Pal/Secam RGB Colourspace
    - colour.models.dataset.pointer_gamut Module
      - Pointer Gamut
    - colour.models.dataset.prophoto_rgb Module
      - ProPhoto RGB Colourspace
    - colour.models.dataset.rec_2020 Module
      - Rec. 2020 Colourspace
    - colour.models.dataset.rec_709 Module
      - Rec. 709 Colourspace
    - colour.models.dataset.russell_rgb Module
      - Russell RGB Colourspace
    - colour.models.dataset.s_log Module
      - Sony S-Log Colourspace
    - colour.models.dataset.smptec_rgb Module
      - SMPTE-C RGB Colourspace
    - colour.models.dataset.srgb Module
      - sRGB Colourspace
    - colour.models.dataset.xtreme_rgb Module
      - Xtreme RGB Colourspace
  - Module Contents

## Sub-Modules

- colour.models.aces_rgb_idt Module
  - ACES RGB Colourspace - Input Device Transform
- colour.models.cie_lab Module
  - CIE Lab Colourspace
- colour.models.cie_luv Module
  - CIE Luv Colourspace
- colour.models.cie_ucs Module
  - CIE UCS Colourspace
- colour.models.cie_uvw Module
  - CIE UVW Colourspace
- colour.models.cie_xyy Module
  - CIE xyY Colourspace
- colour.models.common Module
  - Common Colour Models Utilities
- colour.models.deprecated Module
  - Deprecated Colour Models Transformations
- colour.models.derivation Module
  - RGB Colourspace Derivation
- colour.models.rgb Module
  - RGB Colourspace Transformations
- colour.models.rgb_colourspace Module
  - RGB Colourspace

## Module Contents

class `colour.models.` `RGB_Colourspace`(name, primaries, whitepoint, to_XYZ=None, to_RGB=None, transfer_function=None, inverse_transfer_function=None)

  Bases: `object`

  Implements support for the RGB colourspaces dataset from `colour.models.dataset.aces_rgb`, etc....

  Parameters: | name (str or unicode) – RGB Colourspace name. primaries (array_like) – RGB Colourspace primaries. whitepoint (array_like) – RGB Colourspace whitepoint. to_XYZ (array_like) – Transformation matrix from colourspace to CIE XYZ colourspace. to_RGB (array_like) – Transformation matrix from CIE XYZ colourspace to colourspace. transfer_function (object) – RGB Colourspace transfer function from linear to colourspace. inverse_transfer_function (object) – RGB Colourspace inverse transfer function from colourspace to linear.

  `inverse_transfer_function`

    Property for self.__inverse_transfer_function private attribute.

    Returns: | self.__inverse_transfer_function.
    Return type: | object

  `name`

    Property for self.__name private attribute.

    Returns: | self.__name.
    Return type: | str or unicode

  `primaries`

    Property for self.__primaries private attribute.

    Returns: | self.__primaries.
    Return type: | array_like, (3, 2)

  `to_RGB`

    Property for self.__to_RGB private attribute.

    Returns: | self.__to_RGB.
    Return type: | array_like, (3, 3)

  `to_XYZ`

    Property for self.__to_XYZ private attribute.

    Returns: | self.__to_XYZ.
    Return type: | array_like, (3, 3)

  `transfer_function`

    Property for self.__transfer_function private attribute.

    Returns: | self.__transfer_function.
    Return type: | object

  `whitepoint`

    Property for self.__whitepoint private attribute.

    Returns: | self.__whitepoint.
    Return type: | array_like

`colour.models.` `normalised_primary_matrix`(primaries, whitepoint)

  Returns the normalised primary matrix using given primaries and whitepoint matrices.

  Parameters: | primaries (array_like) – Primaries chromaticity coordinate matrix, (3, 2). whitepoint (array_like) – Illuminant / whitepoint chromaticity coordinates.
  Returns: | Normalised primary matrix.
  Return type: | ndarray, (3, 3)

  References

  [3] | RP 177-1993 SMPTE RECOMMENDED PRACTICE - Television Color Equations: 3.3.2 - 3.3.6

  Examples

      >>> pms = np.array([0.73470, 0.26530, 0.00000, 1.00000, 0.00010, -0.07700])
      >>> whitepoint = (0.32168, 0.33767)
      >>> normalised_primary_matrix(pms, whitepoint)
      array([[  9.5255239...e-01,   0.0000000...e+00,   9.3678631...e-05],
             [  3.4396645...e-01,   7.2816609...e-01,  -7.2132546...e-02],
             [  0.0000000...e+00,   0.0000000...e+00,   1.0088251...e+00]])

`colour.models.` `RGB_luminance_equation`(primaries, whitepoint)

  Returns the luminance equation from given primaries and whitepoint matrices.

  Parameters: | primaries (array_like, (3, 2)) – Primaries chromaticity coordinate matrix. whitepoint (array_like) – Illuminant / whitepoint chromaticity coordinates.
  Returns: | Luminance equation.
  Return type: | unicode

  References

  [4] | RP 177-1993 SMPTE RECOMMENDED PRACTICE - Television Color Equations: 3.3.8

  Examples

      >>> pms = np.array([0.73470, 0.26530, 0.00000, 1.00000, 0.00010, -0.07700])
      >>> whitepoint = (0.32168, 0.33767)
      >>> # Doctests skip for Python 2.x compatibility.
      >>> RGB_luminance_equation(pms, whitepoint)
      'Y = 0.3439664...(R) + 0.7281660...(G) + -0.0721325...(B)'

`colour.models.` `RGB_luminance`(RGB, primaries, whitepoint)

  Returns the luminance \(y\) of given RGB components from given primaries and whitepoint matrices.

  Parameters: | RGB (array_like, (3,)) – RGB chromaticity coordinate matrix. primaries (array_like, (3, 2)) – Primaries chromaticity coordinate matrix. whitepoint (array_like) – Illuminant / whitepoint chromaticity coordinates.
  Returns: | Luminance \(y\).
  Return type: | numeric

  References

  [5] | RP 177-1993 SMPTE RECOMMENDED PRACTICE - Television Color Equations: 3.3.3 - 3.3.6

  Examples

      >>> RGB = np.array([40.6, 4.2, 67.4])
      >>> pms = np.array([0.73470, 0.26530, 0.00000, 1.00000, 0.00010, -0.07700])
      >>> whitepoint = (0.32168, 0.33767)
      >>> RGB_luminance(RGB, pms, whitepoint)
      12.1616018...

`colour.models.` `XYZ_to_xyY`(XYZ, illuminant=(0.34567, 0.3585))

  Converts from CIE XYZ colourspace to CIE xyY colourspace and reference illuminant.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | CIE xyY colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 1].
  - Output CIE xyY colourspace matrix is in domain [0, 1].

  References

  [2] | http://www.brucelindbloom.com/Eqn_XYZ_to_xyY.html (Last accessed 24 February 2014)

  Examples

      >>> XYZ_to_xyY(np.array([0.1180583421, 0.1034, 0.0515089229]))
      array([ 0.4325,  0.3788,  0.1034])

`colour.models.` `xyY_to_XYZ`(xyY)

  Converts from CIE xyY colourspace to CIE XYZ colourspace.

  Parameters: | xyY (array_like, (3,)) – CIE xyY colourspace matrix.
  Returns: | CIE XYZ colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE xyY colourspace matrix is in domain [0, 1].
  - Output CIE XYZ colourspace matrix is in domain [0, 1].

  References

  [3] | http://www.brucelindbloom.com/Eqn_xyY_to_XYZ.html (Last accessed 24 February 2014)

  Examples

      >>> xyY_to_XYZ(np.array([0.4325, 0.3788, 0.1034]))
      array([ 0.1180583...,  0.1034    ,  0.0515089...])

`colour.models.` `xy_to_XYZ`(xy)

  Returns the CIE XYZ colourspace matrix from given xy chromaticity coordinates.

  Parameters: | xy (array_like) – xy chromaticity coordinates.
  Returns: | CIE XYZ colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input xy chromaticity coordinates are in domain [0, 1].
  - Output CIE XYZ colourspace matrix is in domain [0, 1].

  Examples

      >>> xy_to_XYZ((0.25, 0.25))
      array([ 1.,  1.,  2.])

`colour.models.` `XYZ_to_xy`(XYZ, illuminant=(0.34567, 0.3585))

  Returns the xy chromaticity coordinates from given CIE XYZ colourspace matrix.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | xy chromaticity coordinates.
  Return type: | tuple

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 1].
  - Output xy chromaticity coordinates are in domain [0, 1].

  Examples

      >>> XYZ_to_xy(np.array([0.97137399, 1, 1.04462134]))
      (0.3220741..., 0.3315655...)
      >>> XYZ_to_xy((0.97137399, 1, 1.04462134))
      (0.3220741..., 0.3315655...)

`colour.models.` `XYZ_to_Lab`(XYZ, illuminant=(0.34567, 0.3585))

  Converts from CIE XYZ colourspace to CIE Lab colourspace.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | CIE Lab colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ is in domain [0, 1].
  - Input illuminant chromaticity coordinates are in domain [0, 1].
  - Output Lightness \(L^*\) is in domain [0, 100].

  References

  [2] | http://www.brucelindbloom.com/Eqn_XYZ_to_Lab.html (Last accessed 24 February 2014)

  Examples

      >>> XYZ_to_Lab(np.array([0.92193107, 1, 1.03744246]))
      array([ 100.        ,   -7.4178784...,  -15.8574210...])

`colour.models.` `Lab_to_XYZ`(Lab, illuminant=(0.34567, 0.3585))

  Converts from CIE Lab colourspace to CIE XYZ colourspace.

  Parameters: | Lab (array_like, (3,)) – CIE Lab colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | CIE XYZ colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input Lightness \(L^*\) is in domain [0, 100].
  - Input illuminant chromaticity coordinates are in domain [0, 1].
  - Output CIE XYZ colourspace matrix is in domain [0, 1].

  References

  [3] | http://www.brucelindbloom.com/Eqn_Lab_to_XYZ.html (Last accessed 24 February 2014)

  Examples

      >>> Lab = np.array([100, -7.41787844, -15.85742105])
      >>> Lab_to_XYZ(Lab)
      array([ 0.9219310...,  1.        ,  1.0374424...])

`colour.models.` `Lab_to_LCHab`(Lab)

  Converts from CIE Lab colourspace to CIE LCHab colourspace.

  Parameters: | Lab (array_like, (3,)) – CIE Lab colourspace matrix.
  Returns: | CIE LCHab colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Lightness \(L^*\) is in domain [0, 100].

  References

  [4] | http://www.brucelindbloom.com/Eqn_Lab_to_LCH.html (Last accessed 24 February 2014)

  Examples

      >>> Lab = np.array([100, -7.41787844, -15.85742105])
      >>> Lab_to_LCHab(Lab)
      array([ 100.        ,   17.5066479...,  244.9304684...])

`colour.models.` `LCHab_to_Lab`(LCHab)

  Converts from CIE LCHab colourspace to CIE Lab colourspace.

  Parameters: | LCHab (array_like, (3,)) – CIE LCHab colourspace matrix.
  Returns: | CIE Lab colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Lightness \(L^*\) is in domain [0, 100].

  References

  [5] | http://www.brucelindbloom.com/Eqn_LCH_to_Lab.html (Last accessed 24 February 2014)

  Examples

      >>> LCHab = np.array([100, 17.50664796, 244.93046842])
      >>> LCHab_to_Lab(LCHab)
      array([ 100.        ,   -7.4178784...,  -15.8574210...])

`colour.models.` `XYZ_to_Luv`(XYZ, illuminant=(0.34567, 0.3585))

  Converts from CIE XYZ colourspace to CIE Luv colourspace.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | CIE Luv colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 1].
  - Input illuminant chromaticity coordinates are in domain [0, 1].
  - Output \(L^*\) is in domain [0, 100].

  References

  [2] | http://brucelindbloom.com/Eqn_XYZ_to_Luv.html (Last accessed 24 February 2014)

  Examples

      >>> XYZ_to_Luv(np.array([0.92193107, 1, 1.03744246]))
      array([ 100.        ,  -20.0430424...,  -19.8167603...])

`colour.models.` `Luv_to_XYZ`(Luv, illuminant=(0.34567, 0.3585))

  Converts from CIE Luv colourspace to CIE XYZ colourspace.

  Parameters: | Luv (array_like, (3,)) – CIE Luv colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | CIE XYZ colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input \(L^*\) is in domain [0, 100].
  - Input illuminant chromaticity coordinates are in domain [0, 1].
  - Output CIE XYZ colourspace matrix is in domain [0, 1].

  References

  [3] | http://brucelindbloom.com/Eqn_Luv_to_XYZ.html (Last accessed 24 February 2014)

  Examples

      >>> Luv = np.array([100, -20.04304247, -19.81676035])
      >>> Luv_to_XYZ(Luv)
      array([ 0.9219310...,  1.        ,  1.0374424...])

`colour.models.` `Luv_to_uv`(Luv, illuminant=(0.34567, 0.3585))

  Returns the u”v” chromaticity coordinates from given CIE Luv colourspace matrix.

  Parameters: | Luv (array_like, (3,)) – CIE Luv colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | u”v” chromaticity coordinates.
  Return type: | tuple

  Notes

  - Input \(L^*\) is in domain [0, 100].
  - Output u”v” chromaticity coordinates are in domain [0, 1].

  References

  [4] | http://en.wikipedia.org/wiki/CIELUV#The_forward_transformation (Last accessed 24 February 2014)

  Examples

      >>> Luv = np.array([100, -20.04304247, -19.81676035])
      >>> Luv_to_uv(Luv)
      (0.1937414..., 0.4728316...)

`colour.models.` `Luv_uv_to_xy`(uv)

  Returns the xy chromaticity coordinates from given CIE Luv colourspace u”v” chromaticity coordinates.

  Parameters: | uv (array_like) – CIE Luv u”v” chromaticity coordinates.
  Returns: | xy chromaticity coordinates.
  Return type: | tuple

  Notes

  - Input u”v” chromaticity coordinates are in domain [0, 1].
  - Output xy is in domain [0, 1].

  References

  [5] | http://en.wikipedia.org/wiki/CIELUV#The_reverse_transformation (Last accessed 24 February 2014)

  Examples

      >>> uv = (0.2033733344733139, 0.3140500001549052)
      >>> Luv_uv_to_xy(uv)
      (0.2233388..., 0.1532803...)

`colour.models.` `Luv_to_LCHuv`(Luv)

  Converts from CIE Luv colourspace to CIE LCHuv colourspace.

  Parameters: | Luv (array_like, (3,)) – CIE Luv colourspace matrix.
  Returns: | CIE LCHuv colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - \(L^*\) is in domain [0, 100].

  References

  [6] | http://www.brucelindbloom.com/Eqn_Luv_to_LCH.html (Last accessed 24 February 2014)

  Examples

      >>> Luv = np.array([100, -20.04304247, -19.81676035])
      >>> Luv_to_LCHuv(Luv)
      array([ 100.        ,   28.1855910...,  224.6747382...])

`colour.models.` `LCHuv_to_Luv`(LCHuv)

  Converts from CIE LCHuv colourspace to CIE Luv colourspace.

  Parameters: | LCHuv (array_like, (3,)) – CIE LCHuv colourspace matrix.
  Returns: | CIE Luv colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - \(L^*\) is in domain [0, 100].

  References

  [7] | http://www.brucelindbloom.com/Eqn_LCH_to_Luv.html (Last accessed 24 February 2014)

  Examples

      >>> LCHuv = np.array([100, 28.18559104, 224.6747382])
      >>> LCHuv_to_Luv(LCHuv)
      array([ 100.        ,  -20.0430424...,  -19.8167603...])

`colour.models.` `XYZ_to_UCS`(XYZ)

  Converts from CIE XYZ colourspace to CIE UCS colourspace.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix.
  Returns: | CIE UCS colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 1].
  - Output CIE UCS colourspace matrix is in domain [0, 1].

  References

  [2] | http://en.wikipedia.org/wiki/CIE_1960_color_space#Relation_to_CIEXYZ (Last accessed 24 February 2014)

  Examples

      >>> XYZ = np.array([0.1180583421, 0.1034, 0.0515089229])
      >>> XYZ_to_UCS(XYZ)
      array([ 0.0787055...,  0.1034    ,  0.1218252...])

`colour.models.` `UCS_to_XYZ`(UVW)

  Converts from CIE UCS colourspace to CIE XYZ colourspace.

  Parameters: | UVW (array_like, (3,)) – CIE UCS colourspace matrix.
  Returns: | CIE XYZ colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE UCS colourspace matrix is in domain [0, 1].
  - Output CIE XYZ colourspace matrix is in domain [0, 1].

  References

  [3] | http://en.wikipedia.org/wiki/CIE_1960_color_space#Relation_to_CIEXYZ (Last accessed 24 February 2014)

  Examples

      >>> UCS = np.array([0.07870556, 0.1034, 0.12182529])
      >>> UCS_to_XYZ(UCS)
      array([ 0.1180583...,  0.1034    ,  0.0515089...])

`colour.models.` `UCS_to_uv`(UVW)

  Returns the uv chromaticity coordinates from given CIE UCS colourspace matrix.

  Parameters: | UVW (array_like, (3,)) – CIE UCS colourspace matrix.
  Returns: | uv chromaticity coordinates.
  Return type: | tuple

  Notes

  - Input CIE UCS colourspace matrix is in domain [0, 1].
  - Output uv chromaticity coordinates are in domain [0, 1].

  References

  [4] | http://en.wikipedia.org/wiki/CIE_1960_color_space#Relation_to_CIEXYZ (Last accessed 24 February 2014)

  Examples

      >>> UCS = np.array([0.1180583421, 0.1034, 0.0515089229])
      >>> UCS_to_uv(UCS)
      (0.4324999..., 0.3788000...)

`colour.models.` `UCS_uv_to_xy`(uv)

  Returns the xy chromaticity coordinates from given CIE UCS colourspace uv chromaticity coordinates.

  Parameters: | uv (array_like) – CIE UCS uv chromaticity coordinates.
  Returns: | xy chromaticity coordinates.
  Return type: | tuple

  Notes

  - Input uv chromaticity coordinates are in domain [0, 1].
  - Output xy chromaticity coordinates are in domain [0, 1].

  References

  [5] | http://en.wikipedia.org/wiki/CIE_1960_color_space#Relation_to_CIEXYZ (Last accessed 24 February 2014)

  Examples

      >>> uv = (0.43249999995420696, 0.378800000065942)
      >>> UCS_uv_to_xy(uv)
      (0.7072386..., 0.4129510...)

`colour.models.` `XYZ_to_UVW`(XYZ, illuminant=(0.34567, 0.3585))

  Converts from CIE XYZ colourspace to CIE 1964 U*VW** colourspace.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
  Returns: | CIE 1964 U*VW** colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 100].
  - Output CIE UVW colourspace matrix is in domain [0, 100].

  Warning

  The input / output domains of that definition are non standard!

  Examples

      >>> XYZ = np.array([11.80583421, 10.34, 5.15089229])
      >>> XYZ_to_UVW(XYZ)
      array([ 24.2543371...,   7.2205484...,  37.4645000...])

`colour.models.` `XYZ_to_RGB`(XYZ, illuminant_XYZ, illuminant_RGB, to_RGB, chromatic_adaptation_method=u'CAT02', transfer_function=None)

  Converts from CIE XYZ colourspace to RGB colourspace using given CIE XYZ colourspace matrix, illuminants, chromatic adaptation method, normalised primary matrix and transfer function.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant_XYZ (array_like) – CIE XYZ colourspace illuminant xy chromaticity coordinates. illuminant_RGB (array_like) – RGB colourspace illuminant xy chromaticity coordinates. to_RGB (array_like, (3, 3)) – Normalised primary matrix. chromatic_adaptation_method (unicode, optional) – (‘XYZ Scaling’, ‘Bradford’, ‘Von Kries’, ‘Fairchild’, ‘CAT02’) Chromatic adaptation method. transfer_function (object, optional) – Transfer function.
  Returns: | RGB colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 1].
  - Input illuminant_XYZ xy chromaticity coordinates are in domain [0, 1].
  - Input illuminant_RGB xy chromaticity coordinates are in domain [0, 1].
  - Output RGB colourspace matrix is in domain [0, 1].

  Examples

      >>> XYZ = np.array([0.1151847498, 0.1008, 0.0508937252])
      >>> illuminant_XYZ = (0.34567, 0.35850)
      >>> illuminant_RGB = (0.31271, 0.32902)
      >>> chromatic_adaptation_method =  'Bradford'
      >>> to_RGB = np.array([
      ...     [3.24100326, -1.53739899, -0.49861587],
      ...     [-0.96922426, 1.87592999, 0.04155422],
      ...     [0.05563942, -0.2040112, 1.05714897]])
      >>> XYZ_to_RGB(
      ...     XYZ,
      ...     illuminant_XYZ,
      ...     illuminant_RGB,
      ...     to_RGB,
      ...     chromatic_adaptation_method)
      array([ 0.1730350...,  0.0821103...,  0.0567249...])

`colour.models.` `RGB_to_XYZ`(RGB, illuminant_RGB, illuminant_XYZ, to_XYZ, chromatic_adaptation_method=u'CAT02', inverse_transfer_function=None)

  Converts from RGB colourspace to CIE XYZ colourspace using given RGB colourspace matrix, illuminants, chromatic adaptation method, normalised primary matrix and transfer function.

  Parameters: | RGB (array_like, (3,)) – RGB colourspace matrix. illuminant_RGB (array_like) – RGB colourspace illuminant chromaticity coordinates. illuminant_XYZ (array_like) – CIE XYZ colourspace illuminant chromaticity coordinates. to_XYZ (array_like, (3, 3)) – Normalised primary matrix. chromatic_adaptation_method (unicode, optional) – (‘XYZ Scaling’, ‘Bradford’, ‘Von Kries’, ‘Fairchild’, ‘CAT02’) Chromatic adaptation method. inverse_transfer_function (object, optional) – Inverse transfer function.
  Returns: | CIE XYZ colourspace matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input RGB colourspace matrix is in domain [0, 1].
  - Input illuminant_RGB xy chromaticity coordinates are in domain [0, 1].
  - Input illuminant_XYZ xy chromaticity coordinates are in domain [0, 1].
  - Output CIE XYZ colourspace matrix is in domain [0, 1].

  Examples

      >>> RGB = np.array([0.17303501, 0.08211033, 0.05672498])
      >>> illuminant_RGB = (0.31271, 0.32902)
      >>> illuminant_XYZ = (0.34567, 0.35850)
      >>> chromatic_adaptation_method = 'Bradford'
      >>> to_XYZ = np.array([
      ...     [0.41238656, 0.35759149, 0.18045049],
      ...     [0.21263682, 0.71518298, 0.0721802],
      ...     [0.01933062, 0.11919716, 0.95037259]])
      >>> RGB_to_XYZ(
      ...     RGB,
      ...     illuminant_RGB,
      ...     illuminant_XYZ,
      ...     to_XYZ,
      ...     chromatic_adaptation_method)
      array([ 0.1151847...,  0.1008    ,  0.0508937...])

`colour.models.` `RGB_to_RGB`(RGB, input_colourspace, output_colourspace, chromatic_adaptation_method=u'CAT02')

  Converts from given input RGB colourspace to output RGB colourspace using given chromatic adaptation method.

  Parameters: | RGB (array_like, (3,)) – RGB colourspace matrix. input_colourspace (RGB_Colourspace) – RGB input colourspace. output_colourspace (RGB_Colourspace) – RGB output colourspace. chromatic_adaptation_method (unicode, optional) – (‘XYZ Scaling’, ‘Bradford’, ‘Von Kries’, ‘Fairchild’, ‘CAT02’) Chromatic adaptation method. (3,) (ndarray,) – RGB colourspace matrix.

  Notes

  - RGB colourspace matrices are in domain [0, 1].

  Examples

      >>> from colour import sRGB_COLOURSPACE, PROPHOTO_RGB_COLOURSPACE
      >>> RGB = np.array([0.35521588, 0.41, 0.24177934])
      >>> RGB_to_RGB(
      ...     RGB,
      ...     sRGB_COLOURSPACE,
      ...     PROPHOTO_RGB_COLOURSPACE)
      array([ 0.3579334...,  0.4007138...,  0.2615704...])

`colour.models.` `XYZ_to_sRGB`(XYZ, illuminant=(0.31271, 0.32902), chromatic_adaptation_method=u'CAT02', transfer_function=True)

  Converts from CIE XYZ colourspace to sRGB colourspace.

  Parameters: | XYZ (array_like, (3,)) – CIE XYZ colourspace matrix. illuminant (array_like, optional) – Source illuminant chromaticity coordinates. chromatic_adaptation_method (unicode, optional) – (‘XYZ Scaling’, ‘Bradford’, ‘Von Kries’, ‘Fairchild’, ‘CAT02’) Chromatic adaptation method. transfer_function (bool, optional) – Apply sRGB transfer function.
  Returns: | sRGB colour matrix.
  Return type: | ndarray, (3,)

  Notes

  - Input CIE XYZ colourspace matrix is in domain [0, 1].

  Examples

      >>> XYZ = np.array([0.1180583421, 0.1034, 0.0515089229])
      >>> XYZ_to_sRGB(XYZ)
      array([ 0.4822488...,  0.3165197...,  0.2207051...])

`colour.models.` `spectral_to_aces_relative_exposure_values`(spd, illuminant=<colour.colorimetry.spectrum.SpectralPowerDistribution object at 0x102cf8610>)

  Converts given spectral power distribution to ACES RGB colourspace relative exposure values.

  Parameters: | spd (SpectralPowerDistribution) – Spectral power distribution. illuminant (SpectralPowerDistribution, optional) – Illuminant spectral power distribution.
  Returns: | ACES RGB colourspace relative exposure values matrix.
  Return type: | ndarray, (3,)

  Notes

  - Output ACES RGB colourspace relative exposure values matrix is in domain [0, 1].

  See also

  `colour.colorimetry.tristimulus.spectral_to_XYZ()`

  References

  Examples

      >>> from colour import COLOURCHECKERS_SPDS
      >>> spd = COLOURCHECKERS_SPDS['ColorChecker N Ohta']['dark skin']
      >>> spectral_to_aces_relative_exposure_values(spd)
      array([ 0.1187697...,  0.0870866...,  0.0589442...])