colour.models Package

Sub-Packages

Module Contents

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

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

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

CIE xyY colourspace array.

Return type:

ndarray

Notes

  • Input CIE XYZ tristimulus values are in domain [0, 1].
  • Output CIE xyY colourspace array is in domain [0, 1].

References

[2]Lindbloom, B. (2003). XYZ to xyY. Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_XYZ_to_xyY.html

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> XYZ_to_xyY(XYZ)  
array([ 0.2641477...,  0.3777000...,  0.1008    ])
colour.models.xyY_to_XYZ(xyY)

Converts from CIE xyY colourspace to CIE XYZ tristimulus values.

Parameters:xyY (array_like) – CIE xyY colourspace array.
Returns:CIE XYZ tristimulus values.
Return type:ndarray

Notes

  • Input CIE xyY colourspace array is in domain [0, 1].
  • Output CIE XYZ tristimulus values are in domain [0, 1].

References

[3]Lindbloom, B. (2009). xyY to XYZ. Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_xyY_to_XYZ.html

Examples

>>> xyY = np.array([0.26414772, 0.37770001, 0.10080000])
>>> xyY_to_XYZ(xyY)  
array([ 0.0704953...,  0.1008    ,  0.0955831...])
colour.models.xy_to_XYZ(xy)

Returns the CIE XYZ tristimulus values from given xy chromaticity coordinates.

Parameters:xy (array_like) – xy chromaticity coordinates.
Returns:CIE XYZ tristimulus values.
Return type:ndarray

Notes

  • Input xy chromaticity coordinates are in domain [0, 1].
  • Output CIE XYZ tristimulus values are in domain [0, 1].

Examples

>>> xy = np.array([0.26414772236966133, 0.37770000704815188])
>>> xy_to_XYZ(xy)  
array([ 0.6993585...,  1.        ,  0.9482453...])
colour.models.XYZ_to_xy(XYZ, illuminant=(0.34567, 0.3585))

Returns the xy chromaticity coordinates from given CIE XYZ tristimulus values.

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

xy chromaticity coordinates.

Return type:

ndarray

Notes

  • Input CIE XYZ tristimulus values are in domain [0, 1].
  • Output xy chromaticity coordinates are in domain [0, 1].

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> XYZ_to_xy(XYZ)  
array([ 0.2641477...,  0.3777000...])
class colour.models.RGB_Colourspace(name, primaries, whitepoint, illuminant=None, RGB_to_XYZ_matrix=None, XYZ_to_RGB_matrix=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 (unicode) – RGB colourspace name.
  • primaries (array_like) – RGB colourspace primaries.
  • whitepoint (array_like) – RGB colourspace whitepoint.
  • illuminant (unicode, optional) – RGB colourspace whitepoint name as illuminant.
  • RGB_to_XYZ_matrix (array_like, optional) – Transformation matrix from colourspace to CIE XYZ tristimulus values.
  • XYZ_to_RGB_matrix (array_like, optional) – Transformation matrix from CIE XYZ tristimulus values to colourspace.
  • transfer_function (object, optional) – RGB colourspace opto-electronic conversion function from linear to colourspace.
  • inverse_transfer_function (object, optional) – RGB colourspace inverse opto-electronic conversion function from colourspace to linear.
RGB_to_XYZ_matrix

Property for self.__to_XYZ private attribute.

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

Property for self.__to_RGB private attribute.

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

Property for self.__illuminant private attribute.

Returns:self.__illuminant.
Return type:unicode
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:unicode
primaries

Property for self.__primaries private attribute.

Returns:self.__primaries.
Return type:array_like, (3, 2)
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.

Parameters:
  • primaries (array_like, (3, 2)) – Primaries chromaticity coordinates.
  • whitepoint (array_like) – Illuminant / whitepoint chromaticity coordinates.
Returns:

Normalised primary matrix.

Return type:

ndarray, (3, 3)

Examples

>>> pms = np.array([0.73470, 0.26530, 0.00000, 1.00000, 0.00010, -0.07700])
>>> whitepoint = np.array([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.primaries_whitepoint(npm)

Returns primaries and whitepoint using given normalised primary matrix.

Parameters:npm (array_like, (3, 3)) – Normalised primary matrix.
Returns:Primaries and whitepoint.
Return type:tuple

References

[2]Trieu, T. (2015). Private Discussion with Mansencal, T.

Examples

>>> npm = np.array([[9.52552396e-01, 0.00000000e+00, 9.36786317e-05],
...                 [3.43966450e-01, 7.28166097e-01, -7.21325464e-02],
...                 [0.00000000e+00, 0.00000000e+00, 1.00882518e+00]])
>>> p, w = primaries_whitepoint(npm)
>>> p  
array([[  7.3470000...e-01,   2.6530000...e-01],
       [  0.0000000...e+00,   1.0000000...e+00],
       [  1.0000000...e-04,  -7.7000000...e-02]])
>>> w 
array([ 0.32168,  0.33767])
colour.models.RGB_luminance_equation(primaries, whitepoint)

Returns the luminance equation from given primaries and whitepoint.

Parameters:
  • primaries (array_like, (3, 2)) – Primaries chromaticity coordinates.
  • whitepoint (array_like) – Illuminant / whitepoint chromaticity coordinates.
Returns:

Luminance equation.

Return type:

unicode

Examples

>>> pms = np.array([0.73470, 0.26530, 0.00000, 1.00000, 0.00010, -0.07700])
>>> whitepoint = np.array([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.

Parameters:
  • RGB (array_like) – 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 or ndarray

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 = np.array([0.32168, 0.33767])
>>> RGB_luminance(RGB, pms, whitepoint)  
12.1616018...
colour.models.XYZ_to_Lab(XYZ, illuminant=(0.34567, 0.3585))

Converts from CIE XYZ tristimulus values to CIE Lab colourspace.

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

CIE Lab colourspace array.

Return type:

ndarray

Notes

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

References

[2]Lindbloom, B. (2003). XYZ to Lab. Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_XYZ_to_Lab.html

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> XYZ_to_Lab(XYZ)  
array([ 37.9856291..., -23.6230288...,  -4.4141703...])
colour.models.Lab_to_XYZ(Lab, illuminant=(0.34567, 0.3585))

Converts from CIE Lab colourspace to CIE XYZ tristimulus values.

Parameters:
  • Lab (array_like) – CIE Lab colourspace array.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

CIE XYZ tristimulus values.

Return type:

ndarray

Notes

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

References

[3]Lindbloom, B. (2008). Lab to XYZ. Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_Lab_to_XYZ.html

Examples

>>> Lab = np.array([37.98562910, -23.62302887, -4.41417036])
>>> Lab_to_XYZ(Lab)  
array([ 0.0704953...,  0.1008    ,  0.0955831...])
colour.models.Lab_to_LCHab(Lab)

Converts from CIE Lab colourspace to CIE LCHab colourspace.

Parameters:Lab (array_like) – CIE Lab colourspace array.
Returns:CIE LCHab colourspace array.
Return type:ndarray

Notes

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

References

[4]Lindbloom, B. (2007). Lab to LCH(ab). Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_Lab_to_LCH.html

Examples

>>> Lab = np.array([37.98562910, -23.62302887, -4.41417036])
>>> Lab_to_LCHab(Lab)  
array([  37.9856291...,   24.0319036...,  190.5841597...])
colour.models.LCHab_to_Lab(LCHab)

Converts from CIE LCHab colourspace to CIE Lab colourspace.

Parameters:LCHab (array_like) – CIE LCHab colourspace array.
Returns:CIE Lab colourspace array.
Return type:ndarray

Notes

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

References

[5]Lindbloom, B. (2006). LCH(ab) to Lab. Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_LCH_to_Lab.html

Examples

>>> LCHab = np.array([37.98562910, 24.03190365, 190.58415972])
>>> LCHab_to_Lab(LCHab)  
array([ 37.9856291..., -23.6230288...,  -4.4141703...])
colour.models.XYZ_to_Luv(XYZ, illuminant=(0.34567, 0.3585))

Converts from CIE XYZ tristimulus values to CIE Luv colourspace.

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

CIE Luv colourspace array.

Return type:

ndarray

Notes

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

References

[2]Lindbloom, B. (2003). XYZ to Luv. Retrieved February 24, 2014, from http://brucelindbloom.com/Eqn_XYZ_to_Luv.html

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> XYZ_to_Luv(XYZ)  
array([ 37.9856291..., -28.7922944...,  -1.3558195...])
colour.models.Luv_to_XYZ(Luv, illuminant=(0.34567, 0.3585))

Converts from CIE Luv colourspace to CIE XYZ tristimulus values.

Parameters:
  • Luv (array_like) – CIE Luv colourspace array.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

CIE XYZ tristimulus values.

Return type:

ndarray

Notes

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

References

[3]Lindbloom, B. (2003). Luv to XYZ. Retrieved February 24, 2014, from http://brucelindbloom.com/Eqn_Luv_to_XYZ.html

Examples

>>> Luv = np.array([37.98562910, -28.79229446, -1.35581950])
>>> Luv_to_XYZ(Luv)  
array([ 0.0704953...,  0.1008    ,  0.0955831...])
colour.models.Luv_to_uv(Luv, illuminant=(0.34567, 0.3585))

Returns the \(uv^p\) chromaticity coordinates from given CIE Luv colourspace array.

Parameters:
  • Luv (array_like) – CIE Luv colourspace array.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

\(uv^p\) chromaticity coordinates.

Return type:

ndarray

Notes

  • Input \(L^*\) is in domain [0, 100].
  • Output \(uv^p\) chromaticity coordinates are in domain [0, 1].

References

[4]Wikipedia. (n.d.). The forward transformation. Retrieved February 24, 2014, from http://en.wikipedia.org/wiki/CIELUV#The_forward_transformation

Examples

>>> Luv = np.array([37.98562910, -28.79229446, -1.35581950])
>>> Luv_to_uv(Luv)  
array([ 0.1508531...,  0.4853297...])
colour.models.Luv_uv_to_xy(uv)

Returns the xy chromaticity coordinates from given CIE Luv colourspace \(uv^p\) chromaticity coordinates.

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

Notes

  • Input \(uv^p\) chromaticity coordinates are in domain [0, 1].
  • Output xy is in domain [0, 1].

References

[5]Wikipedia. (n.d.). The reverse transformation. Retrieved from http://en.wikipedia.org/wiki/CIELUV#The_reverse_transformation

Examples

>>> uv = np.array([0.15085309882985695, 0.48532970854318019])
>>> Luv_uv_to_xy(uv)  
array([ 0.2641477...,  0.3777000...])
colour.models.Luv_to_LCHuv(Luv)

Converts from CIE Luv colourspace to CIE LCHuv colourspace.

Parameters:Luv (array_like) – CIE Luv colourspace array.
Returns:CIE LCHuv colourspace array.
Return type:ndarray

Notes

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

References

[6]Lindbloom, B. (2003). Luv to LCH(uv). Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_Luv_to_LCH.html

Examples

>>> Luv = np.array([37.98562910, -28.79229446, -1.35581950])
>>> Luv_to_LCHuv(Luv)  
array([  37.9856291...,   28.8241993...,  182.6960474...])
colour.models.LCHuv_to_Luv(LCHuv)

Converts from CIE LCHuv colourspace to CIE Luv colourspace.

Parameters:LCHuv (array_like) – CIE LCHuv colourspace array.
Returns:CIE Luv colourspace array.
Return type:ndarray

Notes

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

References

[7]Lindbloom, B. (2006). LCH(uv) to Luv. Retrieved February 24, 2014, from http://www.brucelindbloom.com/Eqn_LCH_to_Luv.html

Examples

>>> LCHuv = np.array([37.98562910, 28.82419933, 182.69604747])
>>> LCHuv_to_Luv(LCHuv)  
array([ 37.9856291..., -28.7922944...,  -1.3558195...])
colour.models.XYZ_to_UCS(XYZ)

Converts from CIE XYZ tristimulus values to CIE UCS colourspace.

Parameters:XYZ (array_like) – CIE XYZ tristimulus values.
Returns:CIE UCS colourspace array.
Return type:ndarray

Notes

  • Input CIE XYZ tristimulus values are in domain [0, 1].
  • Output CIE UCS colourspace array is in domain [0, 1].

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> XYZ_to_UCS(XYZ)  
array([ 0.0469968...,  0.1008    ,  0.1637439...])
colour.models.UCS_to_XYZ(UVW)

Converts from CIE UCS colourspace to CIE XYZ tristimulus values.

Parameters:UVW (array_like) – CIE UCS colourspace array.
Returns:CIE XYZ tristimulus values.
Return type:ndarray

Notes

  • Input CIE UCS colourspace array is in domain [0, 1].
  • Output CIE XYZ tristimulus values are in domain [0, 1].

Examples

>>> UVW = np.array([0.04699689, 0.10080000, 0.16374390])
>>> UCS_to_XYZ(UVW)  
array([ 0.0704953...,  0.1008    ,  0.0955831...])
colour.models.UCS_to_uv(UVW)

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

Parameters:UVW (array_like) – CIE UCS colourspace array.
Returns:uv chromaticity coordinates.
Return type:ndarray

Notes

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

Examples

>>> UCS = np.array([0.04699689, 0.10080000, 0.16374390])
>>> UCS_to_uv(UCS)  
array([ 0.1508530...,  0.3235531...])
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:ndarray

Notes

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

Examples

>>> uv = np.array([0.15085308732766581, 0.3235531372954405])
>>> UCS_uv_to_xy(uv)  
array([ 0.2641477...,  0.3777000...])
colour.models.XYZ_to_UVW(XYZ, illuminant=(0.34567, 0.3585))

Converts from CIE XYZ tristimulus values to CIE 1964 U*V*W* colourspace.

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values.
  • illuminant (array_like, optional) – Reference illuminant chromaticity coordinates.
Returns:

CIE 1964 U*V*W* colourspace array.

Return type:

ndarray

Notes

  • Input CIE XYZ tristimulus values are in domain [0, 100].
  • Output CIE UVW colourspace array is in domain [0, 100].

Warning

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

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313]) * 100
>>> XYZ_to_UVW(XYZ)  
array([-28.0483277...,  -0.8805242...,  37.0041149...])
colour.models.XYZ_to_IPT(XYZ)

Converts from CIE XYZ tristimulus values to IPT colourspace.

Parameters:XYZ (array_like) – CIE XYZ tristimulus values.
Returns:IPT colourspace array.
Return type:ndarray

Notes

  • Input CIE XYZ tristimulus values needs to be adapted for CIE Standard Illuminant D Series D65.

Examples

>>> XYZ = np.array([0.96907232, 1, 1.12179215])
>>> XYZ_to_IPT(XYZ)  
array([ 1.0030082...,  0.0190691..., -0.0136929...])
colour.models.IPT_to_XYZ(IPT)

Converts from IPT colourspace to CIE XYZ tristimulus values.

Parameters:IPT (array_like) – IPT colourspace array.
Returns:CIE XYZ tristimulus values.
Return type:ndarray

Examples

>>> IPT = np.array([1.00300825, 0.01906918, -0.01369292])
>>> IPT_to_XYZ(IPT)  
array([ 0.9690723...,  1.        ,  1.1217921...])
colour.models.IPT_hue_angle(IPT)

Computes the hue angle from IPT colourspace.

Parameters:IPT (array_like) – IPT colourspace array.
Returns:Hue angle.
Return type:numeric or ndarray

Examples

>>> IPT = np.array([0.96907232, 1, 1.12179215])
>>> IPT_hue_angle(IPT)  
0.8427358...
colour.models.linear_to_log(value, method=u'Cineon', **kwargs)

Converts from linear to log using given method.

Parameters:
  • value (numeric or array_like) – Value.
  • method (unicode, optional) – {‘Cineon’, ‘Panalog’, ‘ViperLog’, ‘PLog’, ‘C-Log’, ‘ACEScc’, ‘ALEXA Log C’, ‘REDLogFilm’, ‘DCI-P3’, ‘S-Log’, ‘S-Log2’, ‘S-Log3’, ‘V-Log’}, Computation method.
  • **kwargs (**) – Keywords arguments.
Returns:

Log value.

Return type:

numeric or ndarray

Examples

>>> linear_to_log(0.18)  
0.4573196...
>>> linear_to_log(0.18, method='ACEScc')  
array(0.4135884...)
>>> linear_to_log(0.18, method='PLog', log_reference=400)   
0.3910068...
>>> linear_to_log(0.18, method='S-Log')  
0.3599878...
colour.models.log_to_linear(value, method=u'Cineon', **kwargs)

Converts from log to linear using given method.

Parameters:
  • value (numeric or array_like) – Value.
  • method (unicode, optional) – {‘Cineon’, ‘Panalog’, ‘ViperLog’, ‘PLog’, ‘C-Log’, ‘ACEScc’, ‘ALEXA Log C’, ‘DCI-P3’, ‘REDLogFilm’, ‘S-Log’, ‘S-Log2’, ‘S-Log3’, ‘V-Log’}, Computation method.
  • **kwargs (**) – Keywords arguments.
Returns:

Log value.

Return type:

numeric or ndarray

Examples

>>> log_to_linear(0.45731961308541841)  
0.18...
>>> log_to_linear(0.41358840249244228, method='ACEScc')   
array(0.18...)
>>> log_to_linear(0.39100684261974583, method='PLog', log_reference=400)   
0.1...
>>> log_to_linear(0.35998784642215442, method='S-Log')   
0.1799999...
colour.models.linear_to_cineon(value, black_offset=0.0107977516232771, **kwargs)

Defines the linear to Cineon conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • black_offset (numeric or array_like) – Black offset.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Cineon value.

Return type:

numeric or ndarray

Examples

>>> linear_to_cineon(0.18)  
0.4573196...
colour.models.cineon_to_linear(value, black_offset=0.0107977516232771, **kwargs)

Defines the Cineon to linear conversion function.

Parameters:
  • value (numeric or array_like) – Cineon value.
  • black_offset (numeric or array_like) – Black offset.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> cineon_to_linear(0.45731961308541841)  
0.18...
colour.models.linear_to_panalog(value, black_offset=0.04077184461038074, **kwargs)

Defines the linear to Panalog conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • black_offset (numeric or array_like) – Black offset.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Panalog value.

Return type:

numeric or ndarray

Examples

>>> linear_to_panalog(0.18)  
0.3745767...
colour.models.panalog_to_linear(value, black_offset=0.04077184461038074, **kwargs)

Defines the Panalog to linear conversion function.

Parameters:
  • value (numeric or array_like) – Panalog value.
  • black_offset (numeric or array_like) – Black offset.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> panalog_to_linear(0.37457679138229816)  
0.1...
colour.models.linear_to_red_log_film(value, black_offset=0.009955040995908344, **kwargs)

Defines the linear to REDLogFilm conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • black_offset (numeric or array_like) – Black offset.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

REDLogFilm value.

Return type:

numeric or ndarray

Examples

>>> linear_to_red_log_film(0.18)  
0.6376218...
colour.models.red_log_film_to_linear(value, black_offset=0.009955040995908344, **kwargs)

Defines the REDLogFilm to linear conversion function.

Parameters:
  • value (numeric or array_like) – REDLogFilm value.
  • black_offset (numeric or array_like) – Black offset.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> red_log_film_to_linear(0.63762184598817484)  
0.1...
colour.models.linear_to_viper_log(value, **kwargs)

Defines the linear to ViperLog conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

ViperLog value.

Return type:

numeric or ndarray

Examples

>>> linear_to_viper_log(0.18)  
0.6360080...
colour.models.viper_log_to_linear(value, **kwargs)

Defines the ViperLog to linear conversion function.

Parameters:
  • value (numeric or array_like) – ViperLog value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> viper_log_to_linear(0.63600806701041346)  
0.1799999...
colour.models.linear_to_pivoted_log(value, log_reference=445, linear_reference=0.18, negative_gamma=0.6, density_per_code_value=0.002)

Defines the linear to Josh Pines style pivoted log conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • log_reference (numeric or array_like) – Log reference.
  • linear_reference (numeric or array_like) – Linear reference.
  • negative_gamma (numeric or array_like) – Negative gamma.
  • density_per_code_value (numeric or array_like) – Density per code value.
Returns:

Josh Pines style pivoted log value.

Return type:

numeric or ndarray

Examples

>>> linear_to_pivoted_log(0.18)  
0.4349951...
colour.models.pivoted_log_to_linear(value, log_reference=445, linear_reference=0.18, negative_gamma=0.6, density_per_code_value=0.002)

Defines the Josh Pines style pivoted log to linear conversion function.

Parameters:
  • value (numeric or array_like) – Josh Pines style pivoted log value.
  • log_reference (numeric or array_like) – Log reference.
  • linear_reference (numeric or array_like) – Linear reference.
  • negative_gamma (numeric or array_like) – Negative gamma.
  • density_per_code_value (numeric or array_like) – Density per code value.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> pivoted_log_to_linear(0.43499511241446726)  
0.1...
colour.models.linear_to_c_log(value, **kwargs)

Defines the linear to Canon Log conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Canon Log value.

Return type:

numeric or ndarray

References

[2]Thorpe, L. (2012). CANON-LOG TRANSFER CHARACTERISTIC. Retrieved from http://downloads.canon.com/CDLC/Canon-Log_Transfer_Characteristic_6-20-2012.pdf

Examples

>>> linear_to_c_log(0.20) * 100  
32.7953896...
colour.models.c_log_to_linear(value, **kwargs)

Defines the Canon Log to linear conversion function. [2]_

Parameters:
  • value (numeric or array_like) – Canon Log value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> c_log_to_linear(32.795389693580908 / 100)  
0.19999999...
colour.models.linear_to_aces_cc(value, **kwargs)

Defines the linear to ACEScc conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

ACEScc value.

Return type:

numeric or ndarray

Examples

>>> linear_to_aces_cc(0.18)  
array(0.4135884...)
colour.models.aces_cc_to_linear(value, **kwargs)

Defines the ACEScc to linear conversion function.

Parameters:
  • value (numeric or array_like) – ACEScc value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> aces_cc_to_linear(0.41358840249244228)  
array(0.1800000...)
colour.models.linear_to_alexa_log_c(value, **kwargs)

Defines the linear to ALEXA Log C conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

ALEXA Log C value.

Return type:

numeric or ndarray

Examples

>>> linear_to_alexa_log_c(0.18)  
array(0.3910068...)
colour.models.alexa_log_c_to_linear(value, **kwargs)

Defines the ALEXA Log C to linear conversion function.

Parameters:
  • value (numeric or array_like) – ALEXA Log C value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> alexa_log_c_to_linear(0.39100683203408376)  
array(0.1800000...)
colour.models.linear_to_s_log(value, **kwargs)

Defines the linear to S-Log conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

S-Log value.

Return type:

numeric or ndarray

Examples

>>> linear_to_s_log(0.18)  
0.3599878...
colour.models.linear_to_dci_p3_log(value, **kwargs)

Defines the linear to DCI-P3 conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

DCI-P3 value.

Return type:

numeric or ndarray

Examples

>>> linear_to_dci_p3_log(0.18)  
461.9922059...
colour.models.dci_p3_log_to_linear(value, **kwargs)

Defines the DCI-P3 to linear conversion function.

Parameters:
  • value (numeric or array_like) – DCI-P3 value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> dci_p3_log_to_linear(461.99220597484737)  
0.1800000...
colour.models.s_log_to_linear(value, **kwargs)

Defines the S-Log to linear conversion function.

Parameters:
  • value (numeric or array_like) – S-Log value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> s_log_to_linear(0.35998784642215442)  
0.1...
colour.models.linear_to_s_log2(value, **kwargs)

Defines the linear to S-Log2 conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

S-Log2 value.

Return type:

numeric or ndarray

Examples

>>> linear_to_s_log2(0.18)  
0.3849708...
colour.models.s_log2_to_linear(value, **kwargs)

Defines the S-Log2 to linear conversion function.

Parameters:
  • value (numeric or array_like) – S-Log2 value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> s_log2_to_linear(0.38497081592867027)  
0.1...
colour.models.linear_to_s_log3(value, **kwargs)

Defines the linear to S-Log3 conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

S-Log3 value.

Return type:

numeric or ndarray

Examples

>>> linear_to_s_log3(0.18)  
array(0.4105571...)
colour.models.s_log3_to_linear(value, **kwargs)

Defines the S-Log3 to linear conversion function.

Parameters:
  • value (numeric or array_like) – S-Log3 value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> s_log3_to_linear(0.41055718475073316)  
array(0.1...)
colour.models.linear_to_v_log(value, **kwargs)

Defines the linear to V-Log conversion function.

Parameters:
  • value (numeric or array_like) – Linear value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

V-Log value.

Return type:

numeric or ndarray

Examples

>>> linear_to_v_log(0.18)  
array(0.4233114...)
colour.models.v_log_to_linear(value, **kwargs)

Defines the V-Log to linear conversion function.

Parameters:
  • value (numeric or array_like) – V-Log value.
  • **kwargs (**, optional) – Unused parameter provided for signature compatibility with other linear / log conversion objects.
Returns:

Linear value.

Return type:

numeric or ndarray

Examples

>>> v_log_to_linear(0.42331144876013616)  
array(0.1...)
colour.models.XYZ_to_RGB(XYZ, illuminant_XYZ, illuminant_RGB, XYZ_to_RGB_matrix, chromatic_adaptation_transform=u'CAT02', transfer_function=None)

Converts from CIE XYZ tristimulus values to given RGB colourspace.

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values
  • illuminant_XYZ (array_like) – CIE XYZ tristimulus values illuminant xy chromaticity coordinates.
  • illuminant_RGB (array_like) – RGB colourspace illuminant xy chromaticity coordinates.
  • XYZ_to_RGB_matrix (array_like) – Normalised primary matrix.
  • chromatic_adaptation_transform (unicode, optional) – {‘CAT02’, ‘XYZ Scaling’, ‘Von Kries’, ‘Bradford’, ‘Sharp’, ‘Fairchild, ‘CMCCAT97’, ‘CMCCAT2000’, ‘CAT02_BRILL_CAT’, ‘Bianco’, ‘Bianco PC’}, Chromatic adaptation transform.
  • transfer_function (object, optional) – Transfer function.
Returns:

RGB colourspace array.

Return type:

ndarray

Notes

  • Input CIE XYZ tristimulus values are 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 array is in domain [0, 1].

Examples

>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> illuminant_XYZ = np.array([0.34567, 0.35850])
>>> illuminant_RGB = np.array([0.31271, 0.32902])
>>> chromatic_adaptation_transform = 'Bradford'
>>> XYZ_to_RGB_matrix = np.array([
...     [3.24100326, -1.53739899, -0.49861587],
...     [-0.96922426, 1.87592999, 0.04155422],
...     [0.05563942, -0.20401120, 1.05714897]])
>>> XYZ_to_RGB(
...     XYZ,
...     illuminant_XYZ,
...     illuminant_RGB,
...     XYZ_to_RGB_matrix,
...     chromatic_adaptation_transform)  
array([ 0.0110360...,  0.1273446...,  0.1163103...])
colour.models.RGB_to_XYZ(RGB, illuminant_RGB, illuminant_XYZ, RGB_to_XYZ_matrix, chromatic_adaptation_transform=u'CAT02', inverse_transfer_function=None)

Converts from given RGB colourspace to CIE XYZ tristimulus values.

Parameters:
  • RGB (array_like) – RGB colourspace array.
  • illuminant_RGB (array_like) – RGB colourspace illuminant chromaticity coordinates.
  • illuminant_XYZ (array_like) – CIE XYZ tristimulus values illuminant chromaticity coordinates.
  • RGB_to_XYZ_matrix (array_like) – Normalised primary matrix.
  • chromatic_adaptation_transform (unicode, optional) – {‘CAT02’, ‘XYZ Scaling’, ‘Von Kries’, ‘Bradford’, ‘Sharp’, ‘Fairchild, ‘CMCCAT97’, ‘CMCCAT2000’, ‘CAT02_BRILL_CAT’, ‘Bianco’, ‘Bianco PC’}, Chromatic adaptation transform.
  • inverse_transfer_function (object, optional) – Inverse transfer function.
Returns:

CIE XYZ tristimulus values.

Return type:

ndarray

Notes

  • Input RGB colourspace array 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 tristimulus values are in domain [0, 1].

Examples

>>> RGB = np.array([0.01103604, 0.12734466, 0.11631037])
>>> illuminant_RGB = np.array([0.31271, 0.32902])
>>> illuminant_XYZ = np.array([0.34567, 0.35850])
>>> chromatic_adaptation_transform = 'Bradford'
>>> RGB_to_XYZ_matrix = np.array([
...     [0.41238656, 0.35759149, 0.18045049],
...     [0.21263682, 0.71518298, 0.07218020],
...     [0.01933062, 0.11919716, 0.95037259]])
>>> RGB_to_XYZ(
...     RGB,
...     illuminant_RGB,
...     illuminant_XYZ,
...     RGB_to_XYZ_matrix,
...     chromatic_adaptation_transform)  
array([ 0.0704953...,  0.1008    ,  0.0955831...])
colour.models.RGB_to_RGB(RGB, input_colourspace, output_colourspace, chromatic_adaptation_transform=u'CAT02')

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

Parameters:
  • RGB (array_like) – RGB colourspace array.
  • input_colourspace (RGB_Colourspace) – RGB input colourspace.
  • output_colourspace (RGB_Colourspace) – RGB output colourspace.
  • chromatic_adaptation_transform (unicode, optional) – {‘CAT02’, ‘XYZ Scaling’, ‘Von Kries’, ‘Bradford’, ‘Sharp’, ‘Fairchild, ‘CMCCAT97’, ‘CMCCAT2000’, ‘CAT02_BRILL_CAT’, ‘Bianco’, ‘Bianco PC’}, Chromatic adaptation transform.
  • ndarrayRGB colourspace array.

Notes

  • RGB colourspace arrays are in domain [0, 1].

Examples

>>> from colour import sRGB_COLOURSPACE, PROPHOTO_RGB_COLOURSPACE
>>> RGB = np.array([0.01103604, 0.12734466, 0.11631037])
>>> RGB_to_RGB(
...     RGB,
...     sRGB_COLOURSPACE,
...     PROPHOTO_RGB_COLOURSPACE)  
array([ 0.0643338...,  0.1157362...,  0.1157614...])
colour.models.XYZ_to_sRGB(XYZ, illuminant=(0.31271, 0.32902), chromatic_adaptation_transform=u'CAT02', transfer_function=True)

Converts from CIE XYZ tristimulus values to sRGB colourspace.

Parameters:
  • XYZ (array_like) – CIE XYZ tristimulus values.
  • illuminant (array_like, optional) – Source illuminant chromaticity coordinates.
  • chromatic_adaptation_transform (unicode, optional) – {‘CAT02’, ‘XYZ Scaling’, ‘Von Kries’, ‘Bradford’, ‘Sharp’, ‘Fairchild, ‘CMCCAT97’, ‘CMCCAT2000’, ‘CAT02_BRILL_CAT’, ‘Bianco’, ‘Bianco PC’}, Chromatic adaptation transform.
  • transfer_function (bool, optional) – Apply sRGB transfer function.
Returns:

sRGB colour array.

Return type:

ndarray

Notes

  • Input CIE XYZ tristimulus values are in domain [0, 1].

Examples

>>> import numpy as np
>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313])
>>> XYZ_to_sRGB(XYZ)  
array([ 0.1750135...,  0.3881879...,  0.3216195...])
colour.models.sRGB_to_XYZ(RGB, illuminant=(0.31271, 0.32902), chromatic_adaptation_method=u'CAT02', inverse_transfer_function=True)

Converts from sRGB colourspace to CIE XYZ tristimulus values.

Parameters:
  • RGB (array_like) – sRGB colourspace array.
  • illuminant (array_like, optional) – Source illuminant chromaticity coordinates.
  • chromatic_adaptation_method (unicode, optional) – {‘CAT02’, ‘XYZ Scaling’, ‘Von Kries’, ‘Bradford’, ‘Sharp’, ‘Fairchild, ‘CMCCAT97’, ‘CMCCAT2000’, ‘Bianco’, ‘Bianco PC’}, Chromatic adaptation method.
  • inverse_transfer_function (bool, optional) – Apply sRGB inverse transfer function.
Returns:

CIE XYZ tristimulus values.

Return type:

ndarray

Notes

  • Input RGB colourspace array is in domain [0, 1].

Examples

>>> import numpy as np
>>> RGB = np.array([0.17501358, 0.38818795, 0.32161955])
>>> sRGB_to_XYZ(RGB)  
array([ 0.0704953...,  0.1008    ,  0.0955831...])
colour.models.spectral_to_aces_relative_exposure_values(spd, illuminant=<colour.colorimetry.spectrum.SpectralPowerDistribution object at 0x2adc373cdbd0>)

Converts given spectral power distribution to ACES2065-1 colourspace relative exposure values.

Parameters:
  • spd (SpectralPowerDistribution) – Spectral power distribution.
  • illuminant (SpectralPowerDistribution, optional) – Illuminant spectral power distribution.
Returns:

ACES2065-1 colourspace relative exposure values array.

Return type:

ndarray, (3,)

Notes

  • Output ACES2065-1 colourspace relative exposure values array is in domain [0, 1].

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...])