colour.models.rgb.rgb_colourspace Module¶
RGB Colourspace & Transformations¶
Defines the RGB_Colourspace
class for the RGB colourspaces dataset
from colour.models.dataset.aces_rgb
, etc... and the following RGB
colourspace transformations:
See also
-
class
colour.models.rgb.rgb_colourspace.
RGB_Colourspace
(name, primaries, whitepoint, illuminant=None, RGB_to_XYZ_matrix=None, XYZ_to_RGB_matrix=None, encoding_cctf=None, decoding_cctf=None)[source]¶ 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.
- encoding_cctf (object, optional) – Encoding colour component transfer function (Encoding CCTF) / opto-electronic transfer function (OETF / OECF) that maps estimated tristimulus values in a scene to \(R'G'B'\) video component signal value.
- decoding_cctf (object, optional) – Decoding colour component transfer function (Decoding CCTF) / electro-optical transfer function (EOTF / EOCF) that maps an \(R'G'B'\) video component signal value to tristimulus values at the display.
-
name
¶
-
primaries
¶
-
whitepoint
¶
-
illuminant
¶
-
RGB_to_XYZ_matrix
¶
-
XYZ_to_RGB_matrix
¶
-
encoding_cctf
¶
-
decoding_cctf
¶
-
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)
-
decoding_cctf
Property for self._decoding_cctf private attribute.
Returns: self._decoding_cctf. Return type: object
-
encoding_cctf
Property for self._encoding_cctf private attribute.
Returns: self._encoding_cctf. Return type: object
-
illuminant
Property for self._illuminant private attribute.
Returns: self._illuminant. Return type: unicode
-
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)
-
whitepoint
Property for self._whitepoint private attribute.
Returns: self._whitepoint. Return type: array_like
-
colour.models.rgb.rgb_colourspace.
XYZ_to_RGB
(XYZ, illuminant_XYZ, illuminant_RGB, XYZ_to_RGB_matrix, chromatic_adaptation_transform=u'CAT02', encoding_cctf=None)[source]¶ 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 or CIE xyY colourspace array.
- illuminant_RGB (array_like) – RGB colourspace illuminant xy chromaticity coordinates or CIE xyY colourspace array.
- 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.
- encoding_cctf (object, optional) – Encoding colour component transfer function (Encoding CCTF) or opto-electronic transfer function (OETF / OECF).
Returns: RGB colourspace array.
Return type: ndarray
Notes
- Input CIE XYZ tristimulus values are in domain [0, 1].
- Input illuminant_XYZ xy chromaticity coordinates or CIE xyY colourspace array are in domain [0, \(\infty\)].
- Input illuminant_RGB xy chromaticity coordinates or CIE xyY colourspace array are in domain [0, \(\infty\)].
- Output RGB colourspace array is in range [0, 1].
Examples
>>> XYZ = np.array([0.07049534, 0.10080000, 0.09558313]) >>> illuminant_XYZ = np.array([0.34570, 0.35850]) >>> illuminant_RGB = np.array([0.31270, 0.32900]) >>> chromatic_adaptation_transform = 'Bradford' >>> XYZ_to_RGB_matrix = np.array([ ... [3.24062548, -1.53720797, -0.49862860], ... [-0.96893071, 1.87575606, 0.04151752], ... [0.05571012, -0.20402105, 1.05699594]]) >>> XYZ_to_RGB( ... XYZ, ... illuminant_XYZ, ... illuminant_RGB, ... XYZ_to_RGB_matrix, ... chromatic_adaptation_transform) array([ 0.0110015..., 0.1273504..., 0.1163271...])
-
colour.models.rgb.rgb_colourspace.
RGB_to_XYZ
(RGB, illuminant_RGB, illuminant_XYZ, RGB_to_XYZ_matrix, chromatic_adaptation_transform=u'CAT02', decoding_cctf=None)[source]¶ 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 or CIE xyY colourspace array.
- illuminant_XYZ (array_like) – CIE XYZ tristimulus values illuminant chromaticity coordinates or CIE xyY colourspace array.
- 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.
- decoding_cctf (object, optional) – Decoding colour component transfer function (Decoding CCTF) or electro-optical transfer function (EOTF / EOCF).
Returns: CIE XYZ tristimulus values.
Return type: ndarray
Notes
- Input RGB colourspace array is in domain [0, 1].
- Input illuminant_RGB xy chromaticity coordinates or CIE xyY colourspace array are in domain [0, \(\infty\)].
- Input illuminant_XYZ xy chromaticity coordinates or CIE xyY colourspace array are in domain [0, \(\infty\)].
- Output CIE XYZ tristimulus values are in range [0, 1].
Examples
>>> RGB = np.array([0.01100154, 0.12735048, 0.11632713]) >>> illuminant_RGB = np.array([0.31270, 0.32900]) >>> illuminant_XYZ = np.array([0.34570, 0.35850]) >>> chromatic_adaptation_transform = 'Bradford' >>> RGB_to_XYZ_matrix = np.array([ ... [0.41240000, 0.35760000, 0.18050000], ... [0.21260000, 0.71520000, 0.07220000], ... [0.01930000, 0.11920000, 0.95050000]]) >>> 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.rgb_colourspace.
RGB_to_RGB
(RGB, input_colourspace, output_colourspace, chromatic_adaptation_transform=u'CAT02')[source]¶ 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.
Returns: RGB colourspace array.
Return type: ndarray
Notes
- Input / output RGB colourspace arrays are in domain / range [0, 1].
- Input / output RGB colourspace arrays are assumed to be representing linear light values.
Examples
>>> from colour import sRGB_COLOURSPACE, PROPHOTO_RGB_COLOURSPACE >>> RGB = np.array([0.01103742, 0.12734226, 0.11632971]) >>> RGB_to_RGB( ... RGB, ... sRGB_COLOURSPACE, ... PROPHOTO_RGB_COLOURSPACE) array([ 0.0643538..., 0.1157289..., 0.1158038...])