Colour Science for Python
Colour 0.4.4 - Alpha Milestone
This release implements support for Python 3.12 (#1224).
We are now using isort to order our imports. We improved the repository style using the Scientific Python Repository Review page.
colour-visuals was made public: It is a new repository implementing various WebGPU-based visuals on top of Colour and pygfx.
We have solved the clash with https://github.com/vaab/colour by loading a known subset of the objects given by vaab/colour-0.1.5 into our namespace if the COLOUR_SCIENCE__COLOUR__IMPORT_VAAB_COLOUR=True
environment variable is defined. (#1222, @KelSolaar, @tjdcs, @MichaelMauderer)
See the following issues for more information:
colour.hints
Colour
with typing annotations. (#1198, @KelSolaar, @jamesmyatt)colour.models
colour.models.log_encoding_AppleLogProfile
and colour.models.log_decoding_AppleLogProfile
definitions. (@KelSolaar)colour.plotting
Add new definitions to generate data useful for other plotting definitions and used by colour-visuals: (@KelSolaar)
colour.plotting.lines_daylight_locus
colour.plotting.lines_planckian_locus
colour.plotting.lines_pointer_gamut
colour.plotting.lines_spectral_locus
colour.continuous
colour.continuous.AbstractContinuousFunction
class and sub-classes, e.g. colour.SpectralDistribution
class, can be pickled. (#66c26b6, @KelSolaar)colour.difference
colour.difference.delta_E_CIE1994
definition. (#1206, @volrak, @KelSolaar)colour.utilities
colour.utilities.verbose.multiline_repr
definition when an attribute representation is None
. (#1466, @KelSolaar)np.testing.assert_allclose
rather than np.testing.assert_array_almost_equal
to help with tests failing on Github Actions because of minor precision issues when using pytest-xdist
, multi-threading and caching. (@KelSolaar)colour.constants
Object | Name | Author |
---|---|---|
colour.constants.DEFAULT_INT_DTYPE |
DTYPE_INT_DEFAULT |
@KelSolaar |
colour.constants.DEFAULT_FLOAT_DTYPE |
DTYPE_FLOAT_DEFAULT |
... |
Colour 0.4.3 - Alpha Milestone
We worked on many optimisations around colour quality metrics that should result in overall performance increase, thanks again to @tjdcs for the heavy lifting!
@charliermarsh's ruff is now used as a replacement for:
We also replaced mypy with pyright for performance reasons. We took that opportunity to simplify our type annotations.
The colour.XYZ_to_RGB
and colour.RGB_to_XYZ
definition signatures have been changed to be easier to use, please update any code using them. See #1127 for more information.
With this release, the following scientific packages minimum versions are required:
colour.characterisation
colour.apply_matrix_colour_correction
definition and colour.APPLY_MATRIX_COLOUR_CORRECTION_METHODS
attribute to conveniently apply a colour-correction matrix computed with the colour.matrix_colour_correction
definition. (@KelSolaar)colour.colorimetry
colour.SpectralDistribution
and colour.MultiSpectralDistributions
. (#1088, @KelSolaar)import colour
sd = colour.SDS_ILLUMINANTS["A"]
for i in sd:
print(i)
[ 300. 0.930483]
[ 305. 1.12821]
[ 310. 1.35769]
...
[ 780. 241.675]
import colour
sd = colour.MSDS_CMFS["CIE 2012 2 Degree Standard Observer"]
for i in sd:
print(i)
[ 3.90000000e+02 3.76964700e-03 4.14616100e-04 1.84726000e-02]
[ 3.91000000e+02 4.53241600e-03 5.02833300e-04 2.22110100e-02]
[ 3.92000000e+02 5.44655300e-03 6.08499100e-04 2.66981900e-02]
...
[ 8.30000000e+02 1.76246500e-06 7.05386000e-07 0.00000000e+00]
colour.models
colour.XYZ_to_Yrg
and colour.Yrg_to_XYZ
definitions. (#1152, @KelSolaar)colour.models.log_decoding_FLog2
and colour.models.log_encoding_FLog2
definitions. (#1076, @zachlewis)colour.models.RGB_COLOURSPACE_PLASA_ANSI_E154
attribute. (#1193, @KelSolaar)colour.notation
colour.notation.CSS_COLOR_3
attribute and colour.notation.keyword_to_RGB_CSSColor3
definition. (#1140, @KelSolaar)colour.plotting
colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931
, colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS
and colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS
definitions. (@KelSolaar)RGB = np.random.random((128, 128, 3))
plot_RGB_chromaticities_in_chromaticity_diagram(RGB, "ITU-R BT.709", scatter_kwargs={"apply_cctf_encoding": False})
colour.plotting.temperature.plot_daylight_locus
definition. (@KelSolaar)planckian_locus_use_mireds
keyword argument to colour.plotting.temperature.plot_planckian_locus
definition. (@KelSolaar)colour.temperature
colour.temperature.mired_to_CCT
and colour.temperature.CCT_to_mired
definitions to perform micro reciprocal degree and CCT conversions. (#1114, @KelSolaar)colour.temperature.XYZ_to_CCT_Ohno2013
and colour.temperature.CCT_to_XYZ_Ohno2013
convenient definitions. (#1120, @tjdcs)colour.utilities
colour.utilities.int_digest
definition using xxhash to compute 64-bit integer hashes. (#1149, @KelSolaar, @tjdcs)colour.quality.colour_fidelity_index_CIE2017
definition, and TM 30-18, i.e. colour.quality.colour_fidelity_index_ANSIIESTM3018
definition, metrics performance has been improved by x100 thanks to overall optimizations, e.g. colour.temperature.uv_to_CCT_Ohno2013
definition is x5 faster. (#1120, @tjdcs, @KelSolaar)colour.io
colour.io.write_image_OpenImageIO
definition when writing 16-bit integer images (82ef2c4376d606f2576804f353926eb8f2bfb219, @Nick-Shaw, @KelSolaar)colour.colorimetry
colour.colorimetry.sd_gaussian_fwhm
definition output (#1184, @EricFlyMeToTheMoon, @tjdcs, @KelSolaar)colour.models
colour.RGB_to_HCL
definition. (1a580ef610d5afc9c1f867a430e48f134a30db6a, @KelSolaar)colour.phenomena
colour.phenomena.rayleigh.F_air_Bodhaine1999
definition. (#307, #1167, @chnmasta05, @KelSolaar)colour.utilities
colour.utilities.as_float
definition that was causing issue with 1-pixel images processing. (#1189, @KelSolaar, @MrLixm)colour.colorimetry
Object | Signature | Author |
---|---|---|
colour.sd_single_led |
`sd_single_led(peak_wavelength: float, shape: SpectralShape = SPECTRAL_SHAPE_DEFAULT, method: Literal["Ohno 2005"] | str = "Ohno 2005", **kwargs: Any) -> SpectralDistribution` |
colour.sd_multi_leds |
`sd_multi_leds(peak_wavelengths: ArrayLike, shape: SpectralShape = SPECTRAL_SHAPE_DEFAULT, method: Literal["Ohno 2005"] | str = "Ohno 2005", **kwargs: Any) -> SpectralDistribution` |
colour.colorimetry.sd_single_led_Ohno2005 |
sd_single_led_Ohno2005(peak_wavelength: float, half_spectral_width: float, shape: SpectralShape = SPECTRAL_SHAPE_DEFAULT, **kwargs: Any) -> SpectralDistribution |
... |
colour.colorimetry.sd_multi_leds_Ohno2005 |
`sd_multi_leds_Ohno2005(peak_wavelengths: ArrayLike, half_spectral_widths: ArrayLike, peak_power_ratios: ArrayLike | None = None, shape: SpectralShape = SPECTRAL_SHAPE_DEFAULT, **kwargs: Any) -> SpectralDistribution` |
colour.characterisation
colour.matrix_idt
definition is whitepoint preserving using the colour.characterisation.optimisation_factory_rawtoaces_v1
optimisation factory. (@KelSolaar)colour.characterisation.optimisation_factory_Oklab_15
optimisation factory. (@KelSolaar)colour.matrix_idt
definition optimisation factories are now returning 4 objects. (@KelSolaar)colour.models
colour.XYZ_to_xy
and colour.XYZ_to_xyY
definitions do no return the parameter illuminant chromaticities when the luminance Y
is equal to zero. This behaviour was motivated by a note from Bruce Justin Lindbloom but does not have a CIE or ASTM recommendation. (#1153, @KelSolaar)Object | Name | Author |
---|---|---|
colour.XYZ_to_IPT_Munish2021 |
XYZ_to_IPT_Ragoo2021 |
@blue-j, @KelSolaar |
colour.IPT_Munish2021_to_XYZ |
IPT_Ragoo2021_to_XYZ |
... |
Object | Signature | Author |
---|---|---|
colour.XYZ_to_RGB |
`XYZ_to_RGB(XYZ: ArrayLike, colourspace: RGB_Colourspace | str, illuminant: ArrayLike |
colour.RGB_to_XYZ |
`RGB_to_XYZ(RGB: ArrayLike, colourspace: RGB_Colourspace | str, illuminant: ArrayLike |
colour.matrix_RGB_to_RGB |
`matrix_RGB_to_RGB(input_colourspace: RGB_Colourspace | str, output_colourspace: RGB_Colourspace |
colour.RGB_to_RGB |
`RGB_to_RGB(RGB: ArrayLike, input_colourspace: RGB_Colourspace | str, output_colourspace: RGB_Colourspace |
colour.XYZ_to_xy |
XYZ_to_xy(XYZ: ArrayLike) -> NDArrayFloat |
... |
colour.XYZ_to_xyY |
XYZ_to_xyY(XYZ: ArrayLike) -> NDArrayFloat |
... |
colour.models.log_decoding_ACESproxy |
`log_decoding_ACESproxy(ACESproxy: ArrayLike, bit_depth: Literal[10, 12] = 10, in_int: bool = False, constants: dict | None = None) -> NDArrayFloat` |
colour.plotting
colour.plotting.plot_multi_sds
and colour.plotting.diagram.plot_sds_in_chromaticity_diagram
definitions now default to use CIE Illuminant E when computing spectrum colours. (510860ac2e4715a6d5434c76f61bc26f95fe24fa, @KelSolaar)colour.quality
colour.spectral_similarity_index
definition has been updated to 2020 publication update. (#1163, @benjaminherb)Object | Signature | Author |
---|---|---|
colour.spectral_similarity_index |
spectral_similarity_index(sd_test: SpectralDistribution, sd_reference: SpectralDistribution, round_result: bool = True) -> NDArrayFloat |
@tjdcs |
Colour 0.4.2 - Alpha Milestone
This release implements support for Python 3.11. It includes the remaining contributions of the GSoC 2021 work from Cédric (@villirion). New RGB colourspaces, transfer functions, colour models and colour appearance models have been added. Various performance improvements have been implemented.
We would like to especially thanks @tjdcs for his recent contributions.
With this release, the minimum Python version is 3.9 and the following scientific packages minimum versions are required:
colour.appearance
colour.XYZ_to_Hellwig2022
and colour.Hellwig2022_to_XYZ
definitions. (#972 @KelSolaar)colour.XYZ_to_CIECAM16
and colour.CIECAM16_to_XYZ
definitions. (#1015, @KelSolaar)colour.colorimetry
colour.SpectralShape.wavelengths
property. (@KelSolaar)colour.difference
colour.difference.delta_E_ITP
definition. (#981, @sabarish-srinivasan)colour.io
colour.io.ctl_render
and colour.io.process_image_ctl
definitions. (#977, @KelSolaar)colour.models
Implement support for Munish Ragoo and Farup (2021) Optimised IPT colourspace with colour.XYZ_to_IPT_Munish2021
and colour.IPT_Munish2021_to_XYZ
definitions. (#990, @KelSolaar)
Implement support for Leica L-Log log encodings with colour.models.log_encoding_LLog
and colour.models.log_decoding_LLog
definitions. (#986, @KelSolaar, @nick-shaw, @zachlewis)
Implement support for Recommendation ITU-T H.273 / INTERNATIONAL STANDARD ISO/IEC 23091-2 code points for video signal type identification with colour.COLOUR_PRIMARIES_ITUTH273
, colour.TRANSFER_CHARACTERISTICS_ITUTH273
and colour.MATRIX_COEFFICIENTS_ITUTH273
attributes and colour.models.describe_video_signal_colour_primaries
, colour.models.describe_video_signal_transfer_characteristics
and colour.models.describe_video_signal_matrix_coefficients
definitions. (#987, #1033, @fxthomas, @KelSolaar).
Implement support for ARRI Wide Gamut 4 colourspace and ARRI LogC4 log encodings with colour.models.RGB_COLOURSPACE_ARRI_WIDE_GAMUT_4
attribute and colour.models.log_encoding_ARRILogC4
and colour.models.log_decoding_ARRILogC4
definitions. (#1056, @KelSolaar)
For consistency:
colour.models.RGB_COLOURSPACE_ALEXA_WIDE_GAMUT
attribute has been renamed to RGB_COLOURSPACE_ARRI_WIDE_GAMUT_3
.colour.models.log_encoding_ALEXALogC
and colour.models.log_decoding_ALEXALogC
definitions have been renamed to log_encoding_ARRILogC3
and log_decoding_ARRILogC3
respectively.colour.RGB_COLOURSPACES
, colour.LOG_ENCODINGS
, have been renamed accordingly.colour.recovery
colour.recovery.RGB_to_msds_camera_sensitivities_Jiang2013
definition. (#1002, @villirion, @KelSolaar)colour.utilities
colour.utilities.CanonicalMapping
and colour.utilities.LazyCanonicalMapping
, fomerly colour.utilities.CaseInsensitiveMapping
and colour.utilities.LazyCaseInsensitiveMapping
, respectively, support canonical (and sluggified) keys: (#993, @KelSolaar, @zachlewis)>>> import colour
>>> colour.RGB_COLOURSPACES['ALEXA Wide Gamut'].name
'ALEXA Wide Gamut'
>>> colour.RGB_COLOURSPACES['alexa-wide-gamut'].name
'ALEXA Wide Gamut'
>>> colour.RGB_COLOURSPACES['alexawidegamut'].name
'ALEXA Wide Gamut'
>>> 'ALEXA Wide Gamut' in colour.RGB_COLOURSPACES
True
>>> 'alexa-wide-gamut' in colour.RGB_COLOURSPACES
True
>>> 'alexawidegamut' in colour.RGB_COLOURSPACES
True
>>> del colour.RGB_COLOURSPACES['alexa-wide-gamut']
>>> 'ALEXA Wide Gamut' in colour.RGB_COLOURSPACES
False
>>> list(colour.RGB_COLOURSPACES.slugified_keys())
['aces2065-1', 'acescc', 'acescct', 'acescg', 'acesproxy', 'adobe-rgb-1998', 'adobe-wide-gamut-rgb', 'apple-rgb', 'best-rgb', 'beta-rgb', 'blackmagic-wide-gamut', 'cie-rgb', 'cinema-gamut', 'colormatch-rgb', 'dcdm-xyz', 'dci-p3', 'dci-p3-p', 'dji-d-gamut', 'dragoncolor', 'dragoncolor2', 'davinci-wide-gamut', 'display-p3', 'don-rgb-4', 'eci-rgb-v2', 'erimm-rgb', 'ekta-space-ps-5', 'f-gamut', 'filmlight-e-gamut', 'itu-r-bt2020', 'itu-r-bt470-525', 'itu-r-bt470-625', 'itu-r-bt709', 'max-rgb', 'n-gamut', 'ntsc-1953', 'ntsc-1987', 'p3-d65', 'palsecam', 'prophoto-rgb', 'protune-native', 'redwidegamutrgb', 'redcolor', 'redcolor2', 'redcolor3', 'redcolor4', 'rimm-rgb', 'romm-rgb', 'russell-rgb', 's-gamut', 's-gamut3', 's-gamut3cine', 'smpte-240m', 'smpte-c', 'sharp-rgb', 'v-gamut', 'venice-s-gamut3', 'venice-s-gamut3cine', 'xtreme-rgb', 'srgb', 'aces', 'adobe1998', 'prophoto']
>>> list(colour.RGB_COLOURSPACES.canonical_keys())
['aces20651', 'acescc', 'acescct', 'acescg', 'acesproxy', 'adobergb1998', 'adobewidegamutrgb', 'applergb', 'bestrgb', 'betargb', 'blackmagicwidegamut', 'ciergb', 'cinemagamut', 'colormatchrgb', 'dcdmxyz', 'dcip3', 'dcip3p', 'djidgamut', 'dragoncolor', 'dragoncolor2', 'davinciwidegamut', 'displayp3', 'donrgb4', 'ecirgbv2', 'erimmrgb', 'ektaspaceps5', 'fgamut', 'filmlightegamut', 'iturbt2020', 'iturbt470525', 'iturbt470625', 'iturbt709', 'maxrgb', 'ngamut', 'ntsc1953', 'ntsc1987', 'p3d65', 'palsecam', 'prophotorgb', 'protunenative', 'redwidegamutrgb', 'redcolor', 'redcolor2', 'redcolor3', 'redcolor4', 'rimmrgb', 'rommrgb', 'russellrgb', 'sgamut', 'sgamut3', 'sgamut3cine', 'smpte240m', 'smptec', 'sharprgb', 'vgamut', 'venicesgamut3', 'venicesgamut3cine', 'xtremergb', 'srgb', 'aces', 'adobe1998', 'prophoto']
>>> list(colour.MSDS_CMFS.slugified_keys())
['stockman-sharpe-2-degree-cone-fundamentals', 'stockman-sharpe-10-degree-cone-fundamentals', 'smith-pokorny-1975-normal-trichromats', 'wright-guild-1931-2-degree-rgb-cmfs', 'stiles-burch-1955-2-degree-rgb-cmfs', 'stiles-burch-1959-10-degree-rgb-cmfs', 'cie-1931-2-degree-standard-observer', 'cie-1964-10-degree-standard-observer', 'cie-2012-2-degree-standard-observer', 'cie-2012-10-degree-standard-observer', 'cie-2015-2-degree-standard-observer', 'cie-2015-10-degree-standard-observer', 'cie_2_1931', 'cie_10_1964']
>>> list(colour.MSDS_CMFS.canonical_keys())
['stockmansharpe2degreeconefundamentals', 'stockmansharpe10degreeconefundamentals', 'smithpokorny1975normaltrichromats', 'wrightguild19312degreergbcmfs', 'stilesburch19552degreergbcmfs', 'stilesburch195910degreergbcmfs', 'cie19312degreestandardobserver', 'cie196410degreestandardobserver', 'cie20122degreestandardobserver', 'cie201210degreestandardobserver', 'cie20152degreestandardobserver', 'cie201510degreestandardobserver', 'cie21931', 'cie101964']
Most of the datasets Colour ship with benefit from this new feature.
colour.temperature.uv_to_CCT_Ohno2013
definition is ~100x faster. (#951, @KelSolaar)colour.temperature.CCT_to_uv_Ohno2013
definition is ~425x faster. (#951, @KelSolaar)colour.Signal
class underlying continuous function now happens lazilly. (#1057, @tjdcs)colour.SpectralDistribution.shape
property getter is faster by ensuring monotonicity of the colour.SpectralDistribution.domain
property. (#1067, 85f6a57aa604718b2c72e9d9ebb945cd712f9047, @tjdcs, @KelSolaar)colour.contrast
colour.algebra
Object | Access Change | Author |
---|---|---|
colour.algebra.ellipse_coefficients_general_form |
colour.geometry.ellipse_coefficients_general_form |
@KelSolaar |
colour.algebra.ellipse_coefficients_canonical_form |
colour.geometry.ellipse_coefficients_canonical_form |
... |
colour.algebra.point_at_angle_on_ellipse |
colour.geometry.point_at_angle_on_ellipse |
... |
colour.algebra.ellipse_fitting_Halir1998 |
colour.geometry.ellipse_fitting_Halir1998 |
... |
colour.algebra.ELLIPSE_FITTING_METHODS |
colour.geometry.ELLIPSE_FITTING_METHODS |
... |
colour.algebra.ellipse_fitting |
colour.geometry.ellipse_fitting |
... |
colour.algebra.extend_line_segment |
colour.geometry.extend_line_segment |
... |
colour.algebra.extend_line_segment |
colour.geometry.extend_line_segment |
... |
colour.algebra.extend_line_segment |
colour.geometry.extend_line_segment |
... |
colour.characterisation
Object | Signature | Author |
---|---|---|
colour.sd_to_aces_relative_exposure_values |
sd_to_aces_relative_exposure_values(sd: SpectralDistribution, illuminant: Optional[SpectralDistribution] = None, chromatic_adaptation_transform: Optional[Union[Literal["Bianco 2010", "Bianco PC 2010", "Bradford", "CAT02 Brill 2008", "CAT02", "CAT16", "CMCCAT2000", "CMCCAT97", "Fairchild", "Sharp", "Von Kries", "XYZ Scaling", ], str, ]]= "CAT02") -> NDArray |
@KelSolaar |
colour.colorimetry
colour.sd_to_XYZ
and colour.msds_to_XYZ
definition is by default divided by 100 when k
is not None
. (#1020, @KelSolaar, @tjdcs)CIE 2012 2 Degree Standard Observer
and CIE 2012 10 Degree Standard Observer
keys in the colour.MSDS_CMFS
attribute have been renamed to CIE 2015 2 Degree Standard Observer
and CIE 2015 10 Degree Standard Observer
respectively for consistency with their official CIE names. (@KelSolaar)Object | Signature | Author |
---|---|---|
colour.colorimetry.msds_to_XYZ_ASTME308 |
msds_to_XYZ_ASTME308(msds: MultiSpectralDistributions, cmfs: Optional[MultiSpectralDistributions] = None, illuminant: Optional[SpectralDistribution] = None, use_practice_range: Boolean = True, mi_5nm_omission_method: Boolean = True, mi_20nm_interpolation_method: Boolean = True, k: Optional[Number] = None ) -> NDArray |
@tjdcs |
colour.graph
Spectral Distribution
do not use CIE Standard Illuminant D65 anymore by default during the conversion to CIE XYZ tristimulus values. (#1059, @ema2159, @KelSolaar)colour.io
colour.models
DCI-P3+
key in the colour.RGB_COLOURSPACES
mapping has been renamed to DCI-P3-P
to avoid canonical key collisions. (@KelSolaar, @zachlewis)Object | Name | Author |
---|---|---|
colour.models.RGB_COLOURSPACE_ALEXA_WIDE_GAMUT |
RGB_COLOURSPACE_ARRI_WIDE_GAMUT_3 |
@KelSolaar |
colour.models.eotf_inverse_BT2020 |
oetf_BT2020 |
@KelSolaar, @fxthomas |
colour.models.eotf_BT2020 |
oetf_inverse_BT2020 |
... |
colour.models.oetf_PQ_BT2100 |
oetf_BT2100_PQ |
@KelSolaar |
colour.models.oetf_inverse_PQ_BT2100 |
oetf_inverse_BT2100_PQ |
... |
colour.models.eotf_PQ_BT2100 |
eotf_BT2100_PQ |
... |
colour.models.eotf_inverse_PQ_BT2100 |
eotf_inverse_BT2100_PQ |
... |
colour.models.ootf_PQ_BT2100 |
ootf_BT2100_PQ |
... |
colour.models.ootf_inverse_PQ_BT2100 |
ootf_inverse_BT2100_PQ |
... |
colour.models.oetf_HLG_BT2100 |
oetf_BT2100_HLG |
... |
colour.models.oetf_inverse_HLG_BT2100 |
oetf_inverse_BT2100_HLG |
... |
colour.models.eotf_HLG_BT2100 |
eotf_BT2100_HLG |
... |
colour.models.eotf_inverse_HLG_BT2100 |
eotf_inverse_BT2100_HLG |
... |
colour.models.log_encoding_ALEXALogC |
log_encoding_ARRILogC3 |
... |
colour.models.log_decoding_ALEXALogC |
log_decoding_ARRILogC3 |
... |
colour.models.ootf_HLG_BT2100 |
ootf_BT2100_HLG |
... |
colour.models.ootf_inverse_HLG_BT2100 |
ootf_inverse_BT2100_HLG |
... |
colour.plotting
Fix incorrect value for CRI R9 in TM-30-18 report. (@kohler-t)
All the plotting definitions relying on the colour.plotting.common.filter_RGB_colourspaces
, colour.plotting.common.filter_cmfs
, colour.plotting.common.filter_illuminants
and colour.plotting.common.filter_colour_checkers
definitions do not accept a RegEx pattern anymore but a basic string.
It is possible to also use any of the lower, slugified or canonical values:
ntsc (1953)
ntsc-1953
ntsc1953
Object | Signature | Author |
---|---|---|
colour.plotting.common.filter_RGB_colourspaces |
filter_RGB_colourspaces(filterers: Union[RGB_Colourspace, str, Sequence[Union[RGB_Colourspace, str]]], allow_non_siblings: Boolean = True) -> Dict[str, RGB_Colourspace] |
@KelSolaar |
colour.plotting.common.filter_cmfs |
filter_cmfs(filterers: Union[MultiSpectralDistributions,str,Sequence[Union[MultiSpectralDistributions, str]],], allow_non_siblings: Boolean = True) -> Dict[str, MultiSpectralDistributions] |
... |
colour.plotting.common.filter_illuminants |
filter_illuminants(filterers: Union[SpectralDistribution, str, Sequence[Union[SpectralDistribution, str]]], allow_non_siblings: Boolean = True) -> Dict[str, SpectralDistribution] |
... |
colour.plotting.common.filter_colour_checkers |
filter_colour_checkers(filterers: Union[ColourChecker, str, Sequence[Union[ColourChecker, str]]], allow_non_siblings: Boolean = True) -> Dict[str, ColourChecker] |
... |
colour.plotting.plot_RGB_colourspaces_gamuts |
plot_RGB_colourspaces_gamuts(colourspaces: Union[RGB_Colourspace, str, Sequence[Union[RGB_Colourspace, str]]], model: Union[Literal["CAM02LCD", "CAM02SCD", "CAM02UCS", "CAM16LCD", "CAM16SCD", "CAM16UCS", "CIE XYZ", "CIE xyY", "CIE Lab", "CIE Luv", "CIE UCS", "CIE UVW", "DIN99", "Hunter Lab", "Hunter Rdab", "ICaCb", "ICtCp", "IPT", "IgPgTg", "Jzazbz", "OSA UCS", "Oklab", "hdr-CIELAB", "hdr-IPT",], str,] = "CIE xyY", segments: Integer = 8, show_grid: Boolean = True, grid_segments: Integer = 10, show_spectral_locus: Boolean = False, spectral_locus_colour: Optional[Union[ArrayLike, str]] = None, cmfs: Union[MultiSpectralDistributions, str, Sequence[Union[MultiSpectralDistributions, str]],] = "CIE 1931 2 Degree Standard Observer", chromatically_adapt: Boolean = False, convert_kwargs: Optional[Dict] = None, **kwargs: Any,) -> Tuple[plt.Figure, plt.Axes] |
... |
colour.plotting.plot_RGB_colourspaces_gamuts |
plot_RGB_scatter(RGB: ArrayLike, colourspace: Union[RGB_Colourspace, str, Sequence[Union[RGB_Colourspace, str]]] = "sRGB", model: Union[Literal["CAM02LCD", "CAM02SCD", "CAM02UCS", "CAM16LCD", "CAM16SCD", "CAM16UCS", "CIE XYZ", "CIE xyY", "CIE Lab", "CIE Luv", "CIE UCS", "CIE UVW", "DIN99", "Hunter Lab", "Hunter Rdab", "ICaCb", "ICtCp", "IPT", "IgPgTg", "Jzazbz", "OSA UCS", "Oklab", "hdr-CIELAB", "hdr-IPT",],str,] = "CIE xyY",colourspaces: Optional[Union[RGB_Colourspace, str, Sequence[Union[RGB_Colourspace, str]]]] = None, segments: Integer = 8, show_grid: Boolean = True, grid_segments: Integer = 10, show_spectral_locus: Boolean = False, spectral_locus_colour: Optional[Union[ArrayLike, str]] = None, points_size: Floating = 12, cmfs: Union[MultiSpectralDistributions, str, Sequence[Union[MultiSpectralDistributions, str]],] = "CIE 1931 2 Degree Standard Observer", chromatically_adapt: Boolean = False, convert_kwargs: Optional[Dict] = None, **kwargs: Any,) -> Tuple[plt.Figure, plt.Axes] |
... |
colour.utilities
Object | Name | Author |
---|---|---|
colour.utilities.CaseInsensitiveMapping |
CanonicalMapping |
@KelSolaar, @zachlewis |
colour.utilities.LazyCaseInsensitiveMapping |
LazyCanonicalMapping |
... |
Colour 0.4.1 - Alpha Milestone
This release is a maintenance release that mainly addresses packaging issues experienced by the MSYS2 maintainers and import issues when using Colour with Numpy 1.19.x and 1.20.x.
colour
with Numpy 1.19.x and 1.20.x. (@KelSolaar, @remia)setup.py
file. (@KelSolaar, @kmilos)colour.colorimetry
colour.colorimetry.closest_spectral_locus_wavelength
definition. (@KelSolaar, @sobotka)Colour 0.3.16 - Alpha Milestone
This release integrates all the GSoC work from Pawel (@enneract), most of the code from Nishant (@njwardhan) and, the optimizations from Omar (@OmarWagih1). We would like to thank them again for their great contributions!
We stop testing for Python 3.5 and, Scipy>=1.1.0 becomes the minimum version. This is the last feature release to support Python 2.7! We will also trim the deprecation code in the next version thus, please make sure to update your code accordingly.
The colour.SpectralDistribution.interpolate
and colour.MultiSpectralDistributions.interpolate
methods now honour class instantiation time interpolation parameters instead of blindly applying CIE 167:2005 recommendation, this introduces minor numerical changes.
Many definitions, methods and, module attributes have been renamed to improve consistency and we are reaching a satisfactory point in that regard, hopefully, the names will be much more stable from now on.
colour.algebra
colour.algebra.smoothstep
definition. (@KelSolaar)colour.characterisation
Usage is simple and as follows:
>>> sensitivities = colour.CAMERA_RGB_SPECTRAL_SENSITIVITIES['Nikon 5100 (NPL)']
>>> illuminant = colour.ILLUMINANT_SDS['D55']
>>> colour.matrix_idt(sensitivities, illuminant)
array([[ 0.46579991, 0.13409239, 0.01935141],
[ 0.01786094, 0.77557292, -0.16775555],
[ 0.03458652, -0.16152926, 0.74270359]])
The following ISO 7589 and 6728 spectral data has been added: (@KelSolaar)
ISO 6728 Standard Lens
ISO 7589 Diffuser
New attributes colour.SDS_LENSES
containing the ISO 6728 Standard Lens and colour.SDS_FILTERS
containing the ISO 7589 Diffuser have been added.
The ISO 17321-1 24 patches reflectance data has been added as an alias to Ohta (1997) measurements. (@KelSolaar)
colour.colorimetry
The following ISO 7589 illuminants have been added: (@KelSolaar)
ISO 7589 Photographic Daylight
ISO 7589 Sensitometric Daylight
ISO 7589 Studio Tungsten
ISO 7589 Sensitometric Studio Tungsten
ISO 7589 Photoflood
ISO 7589 Sensitometric Photoflood
ISO 7589 Sensitometric Printer
Add colour.msds_constant
, colour.msds_zeros
and colour.msds_ones
definitions. (@KelSolaar)
colour.difference
colour.difference.JND_CIE1976
attribute representing the Just Noticeable Difference (JND) according to CIE 1976 colour difference formula.colour.geometry
The geometry primitives generation code has been consolidated into a new colour.geometry
sub-package. The following objects are available: (@KelSolaar)
Primitives
colour.geometry.primitive_grid
colour.geometry.primitive_cube
colour.PRIMITIVE_METHODS
colour.primitive
Primitives Vertices
colour.geometry.primitive_vertices_quad_mpl
(for Matplotlib usage only)colour.geometry.primitive_vertices_grid_mpl
(for Matplotlib usage only)colour.geometry.primitive_vertices_cube_mpl
(for Matplotlib usage only)colour.geometry.primitive_vertices_sphere
colour.PRIMITIVE_VERTICES_METHODS
colour.primitive_vertices
colour.models
colour.models.log_encoding_Log2
and colour.models.log_decoding_Log2
log encoding and decoding definitions. (@njwardhan, @KelSolaar)colour.models.exponent_function_basic
and colour.models.exponent_function_monitor_curve
definitions. (@njwardhan)colour.models.logarithmic_function_basic
, colour.models.logarithmic_function_quasilog
and colour.models.logarithmic_function_camera
definitions. (@njwardhan, @nick-shaw, @KelSolaar)colour.XYZ_to_IGPGTG
and colour.IGPGTG_to_XYZ
definitions. (@KelSolaar)colour.plotting
colour.quality
colour.quality.colour_fidelity_index_CIE2017
definition. (@enneract)colour.quality.colour_fidelity_index_ANSIIESTM3018
definition. (@enneract)colour.recovery
colour.recovery.XYZ_to_sd_Jakob2019
definition. (@enneract, @KelSolaar)colour.recovery.RGB_to_sd_Mallett2019
definition. (@enneract)colour.recovery.XYZ_to_sd_Otsu2018
definition. (@enneract, @KelSolaar)colour.utilities
colour.utilities.set_float_precision
definition and the COLOUR_SCIENCE__FLOAT_PRECISION
environment variable. It will affect almost the entire API and lead to increase performance at the price of broken capabilities. (@KelSolaar)axis
argument to the colour.utilities.metric_mse
and colour.utilities.metric_psnr
definitions. (@KelSolaar)colour.utilities.LazyCaseInsensitiveMapping
class for lazily loading slow and heavy datasets. (@KelSolaar)colour.characterisation
colour.colorimetry
colour.SpectralDistribution.align
, colour.MultiSpectralDistributions.align
, colour.SpectralDistribution.interpolate
and colour.MultiSpectralDistributions.interpolate
methods did not honour the instantiation time interpolation class and were forcibly using either the colour.SpragueInterpolator
or colour.CubicSplineInterpolator
classes unless an interpolator
argument was passed. This behaviour was not desirable and was changed so that if the instantiation time interpolation class is not one of colour.SpragueInterpolator
or colour.CubicSplineInterpolator
, then, it will be used instead and thus it will take precedence over the CIE 167:2005 recommendation. (@KelSolaar)The immediate consequence is small numerical changes to various spectral computations, for example:
>>> illuminant = ILLUMINANTS_SDS['D65']
>>> sd_to_XYZ_tristimulus_weighting_factors_ASTME308(
... sd, cmfs, illuminant) # doctest: +ELLIPSIS
- array([ 10.8402899..., 9.6843539..., 6.2160858...])
+ array([ 10.8405832..., 9.6844909..., 6.2155622...])
>>> 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...])
+ array([ 0.1171814..., 0.0866360..., 0.0589726...])
Colour quality metrics are affected a bit more severely:
```diff
>>> from colour import ILLUMINANTS_SDS
>>> sd = ILLUMINANTS_SDS['FL2']
>>> colour_rendering_index(sd) # doctest: +ELLIPSIS
- 64.1515202...
+ 64.2337241...
>>> from colour import ILLUMINANTS_SDS
>>> sd = ILLUMINANTS_SDS['FL2']
>>> colour_quality_scale(sd) # doctest: +ELLIPSIS
- 64.0172835...
+ 64.1117031...
CIE Illuminant D Series D60 chromaticity have also been modified:
- 'D60': np.array([0.321626242047397, 0.337736995955436]),
+ 'D60': np.array([0.321616709705268, 0.337619916550817]),
See https://github.com/colour-science/colour/issues/566 for more details.
colour.models
colour.OETF_INVERSES
attribute ITU-R BT.2100 HLG key was incorrectly named ITU-R BT.2100 HLD. (@jchwei)colour.HSL_to_RGB
definition output was incorrect when saturation was equal to 1. (@KelSolaar, @nadersadoughi)colour.plotting
colour.plotting.diagrams.plot_chromaticity_diagram
definition was not passing anymore the CMFS to the underlying colour.plotting.diagrams.plot_spectral_locus
and colour.plotting.diagrams.plot_chromaticity_diagram_colours
definitions. (@KelSolaar, @sobotka)colour.utilities
colour.utilities.filter_warnings
definition was not behaving properly and has been fixed. (@KelSolaar)colour.plotting.plot_RGB_colourspaces_gamuts
definition was using an incorrect style
argument. (@sianyi)colour.adaptation
Object | Name | Author |
---|---|---|
colour.CMCCAT2000_VIEWING_CONDITIONS |
VIEWING_CONDITIONS_CMCCAT2000 |
@KelSolaar |
colour.adaptation.BRADFORD_CAT |
CAT_BRADFORD |
... |
colour.adaptation.BS_CAT |
CAT_BIANCO2010 |
... |
colour.adaptation.BS_PC_CAT |
CAT_PC_BIANCO2010 |
... |
colour.adaptation.CAT02_BRILL_CAT |
CAT_CAT02_BRILL2008 |
... |
colour.adaptation.CAT02_CAT |
CAT_CAT02 |
... |
colour.adaptation.CMCCAT2000_CAT |
CAT_CMCCAT2000 |
... |
colour.adaptation.CMCCAT2000_InductionFactors |
InductionFactors_CMCCAT2000 |
... |
colour.adaptation.CMCCAT97_CAT |
CAT_CMCCAT97 |
... |
colour.adaptation.FAIRCHILD_CAT |
CAT_FAIRCHILD |
... |
colour.adaptation.SHARP_CAT |
CAT_SHARP |
... |
colour.adaptation.VON_KRIES_CAT |
CAT_VON_KRIES |
... |
colour.adaptation.XYZ_SCALING_CAT |
CAT_XYZ_SCALING |
... |
colour.algebra
colour.algebra.cartesian_to_spherical
and colour.algebra.spherical_to_cartesian
definitions now use the ISO 31-11 parameterisation for consistency.Object | Signature | Author |
---|---|---|
colour.KernelInterpolator.__init__ |
KernelInterpolator(self, x, y, window=3, kernel=kernel_lanczos, kernel_kwargs=None, padding_kwargs=None, dtype=DEFAULT_FLOAT_DTYPE) |
@KelSolaar |
Object | Name | Author |
---|---|---|
colour.KernelInterpolator.kernel_args |
kernel_kwargs |
@KelSolaar |
colour.KernelInterpolator.padding_args |
padding_kwargs |
... |
colour.appearance
Object | Name | Author |
---|---|---|
colour.ATD95_Specification |
CAM_Specification_ATD95 |
@KelSolaar |
colour.CAM16_Specification |
CAM_Specification_CAM16 |
... |
colour.CAM16_VIEWING_CONDITIONS |
VIEWING_CONDITIONS_CAM16 |
... |
colour.CIECAM02_Specification |
CAM_Specification_CIECAM02 |
... |
colour.CIECAM02_VIEWING_CONDITIONS |
VIEWING_CONDITIONS_CIECAM02 |
... |
colour.HUNT_VIEWING_CONDITIONS |
VIEWING_CONDITIONS_HUNT |
... |
colour.Hunt_Specification |
CAM_Specification_Hunt |
... |
colour.LLAB_Specification |
CAM_Specification_LLAB |
... |
colour.LLAB_VIEWING_CONDITIONS |
VIEWING_CONDITIONS_LLAB |
... |
colour.Nayatani95_Specification |
CAM_Specification_Nayatani95 |
... |
colour.RLAB_Specification |
CAM_Specification_RLAB |
... |
colour.RLAB_VIEWING_CONDITIONS |
VIEWING_CONDITIONS_RLAB |
... |
colour.appearance.CAM16_InductionFactors |
InductionFactors_CAM16 |
... |
colour.appearance.CIECAM02_InductionFactors |
InductionFactors_CIECAM02 |
... |
colour.appearance.Hunt_InductionFactors |
InductionFactors_Hunt |
... |
colour.appearance.LLAB_InductionFactors |
InductionFactors_LLAB |
... |
colour.appearance.RLAB_D_FACTOR |
D_FACTOR_RLAB |
... |
colour.appearance.chromatic_adaptation_matrix_VonKries |
matrix_chromatic_adaptation_VonKries |
... |
colour.blindness
Object | Name | Author |
---|---|---|
colour.blindness.anomalous_trichromacy_cmfs_Machado2009 |
msds_cmfs_anomalous_trichromacy_Machado2009 |
@KelSolaar |
colour.blindness.anomalous_trichromacy_matrix_Machado2009 |
matrix_anomalous_trichromacy_Machado2009 |
... |
colour.blindness.cvd_matrix_Machado2009 |
matrix_cvd_Machado2009 |
... |
colour.characterisation
Object | Name | Author |
---|---|---|
colour.CAMERA_RGB_SPECTRAL_SENSITIVITIES |
MSDS_CAMERA_SENSITIVITIES |
@KelSolaar |
colour.COLOURCHECKERS |
CCS_COLOURCHECKERS |
... |
colour.COLOURCHECKER_SDS |
SDS_COLOURCHECKERS |
... |
colour.COLOUR_CORRECTION_MATRIX_METHODS |
MATRIX_COLOUR_CORRECTION_METHODS |
... |
colour.DISPLAY_RGB_PRIMARIES |
MSDS_DISPLAY_PRIMARIES |
... |
colour.characterisation.augmented_matrix_Cheung2004 |
matrix_augmented_Cheung2004 |
... |
colour.characterisation.colour_correction_matrix_Cheung2004 |
matrix_colour_correction_Cheung2004 |
... |
colour.characterisation.colour_correction_matrix_Finlayson2015 |
matrix_colour_correction_Finlayson2015 |
... |
colour.characterisation.colour_correction_matrix_Vandermonde |
matrix_colour_correction_Vandermonde |
... |
colour.colour_correction_matrix |
matrix_colour_correction |
... |
colour.colorimetry
colour.sd_blackbody
definition now returns values in W/sr/m^2/nm instead of W/sr/m^2/m. See #559 for more background information. (@KelSolaar, @Wagyx, @MichaelMauderer)
colour.colorimetry
colour.colorimetry.sd_CIE_illuminant_D_series
definition return a spectral distribution whose name includes the used chromaticity coordinates and whose interpolator is instantiated from colour.algebra.LinearInterpolator
. (@KelSolaar)Object | Signature | Author |
---|---|---|
colour.MultiSpectralDistributions.align |
align(self, shape, interpolator=None, interpolator_kwargs=None, extrapolator=None, extrapolator_kwargs=None, **kwargs) |
@KelSolaar |
colour.MultiSpectralDistributions.extrapolate |
extrapolate(self, shape, extrapolator=None, extrapolator_kwargs=None, **kwargs) |
... |
colour.MultiSpectralDistributions.interpolate |
interpolate(self, shape, interpolator=None, interpolator_kwargs=None, **kwargs) |
... |
colour.SpectralDistribution.align |
align(self, shape, interpolator=None, interpolator_kwargs=None, extrapolator=None, extrapolator_kwargs=None, **kwargs) |
... |
colour.SpectralDistribution.extrapolate |
extrapolate(self, shape, extrapolator=None, extrapolator_kwargs=None, **kwargs) |
... |
colour.SpectralDistribution.interpolate |
interpolate(self, shape, interpolator=None, interpolator_kwargs=None, **kwargs) |
... |
Object | Name | Author |
---|---|---|
colour.ASTME308_PRACTISE_SHAPE |
SPECTRAL_SHAPE_ASTME308 |
@KelSolaar |
colour.CMFS |
MSDS_CMFS |
... |
colour.DEFAULT_SPECTRAL_SHAPE |
SPECTRAL_SHAPE_DEFAULT |
... |
colour.HUNTERLAB_ILLUMINANTS |
TVS_ILLUMINANTS_HUNTERLAB |
... |
colour.ILLUMINANTS_SDS |
SDS_ILLUMINANTS |
... |
colour.ILLUMINANTS |
CCS_ILLUMINANTS |
... |
colour.LEFS |
SDS_LEFS |
... |
colour.LIGHT_SOURCES_SDS |
SDS_LIGHT_SOURCES |
... |
colour.LIGHT_SOURCES |
CCS_LIGHT_SOURCES |
... |
colour.MULTI_SD_TO_XYZ_METHODS |
MSDS_TO_XYZ_METHODS |
... |
colour.colorimetry.D_ILLUMINANTS_S_SDS |
SDS_BASIS_FUNCTIONS_CIE_ILLUMINANT_D_SERIES |
... |
colour.colorimetry.LMS_CMFS |
MSDS_CMFS_LMS |
... |
colour.colorimetry.PHOTOPIC_LEFS |
SDS_LEFS_PHOTOPIC |
... |
colour.colorimetry.RGB_CMFS |
MSDS_CMFS_RGB |
... |
colour.colorimetry.SCOTOPIC_LEFS |
SDS_LEFS_SCOTOPIC |
... |
colour.colorimetry.STANDARD_OBSERVERS_CMFS |
MSDS_CMFS_STANDARD_OBSERVER |
... |
colour.colorimetry.multi_sds_to_XYZ_ASTME308 |
msds_to_XYZ_ASTME308 |
... |
colour.colorimetry.multi_sds_to_XYZ_integration |
msds_to_XYZ_integration |
... |
colour.colorimetry.sds_and_multi_sds_to_multi_sds |
sds_and_msds_to_msds |
... |
colour.colorimetry.sds_and_multi_sds_to_sds |
sds_and_msds_to_sds |
... |
colour.multi_sds_to_XYZ |
msds_to_XYZ |
... |
colour.constants
Object | Name | Author |
---|---|---|
colour.constants.AVOGADRO_CONSTANT |
CONSTANT_AVOGADRO |
@KelSolaar |
colour.constants.BOLTZMANN_CONSTANT |
CONSTANT_BOLTZMANN |
... |
colour.constants.K_M |
CONSTANT_K_M |
... |
colour.constants.KP_M |
CONSTANT_KP_M |
... |
colour.constants.PLANCK_CONSTANT |
CONSTANT_PLANCK |
... |
colour.constants.LIGHT_SPEED |
CONSTANT_LIGHT_SPEED |
... |
colour.continuous
Object | Signature | Author |
---|---|---|
colour.continuous.MultiSignals.extrapolator_args |
extrapolator_kwargs |
@KelSolaar |
colour.continuous.MultiSignals.interpolator_args |
interpolator_kwargs |
... |
colour.continuous.Signal.extrapolator_args |
extrapolator_kwargs |
... |
colour.continuous.Signal.interpolator_args |
interpolator_kwargs |
... |
colour.corresponding
Object | Name | Author |
---|---|---|
colour.constants.BRENEMAN_EXPERIMENTS_PRIMARIES_CHROMATICITIES |
BRENEMAN_EXPERIMENT_PRIMARIES_CHROMATICITIES |
@KelSolaar |
colour.geometry
Object | Signature | Author |
---|---|---|
colour.geometry.quad |
primitive_vertices_quad_mpl(width=1, height=1, depth=0, origin=np.array([0, 0]), axis='+z') |
@KelSolaar |
colour.geometry.grid |
primitive_vertices_grid_mpl(width=1, height=1, depth=0, width_segments=1, height_segments=1, origin=np.array([0, 0]), axis='+z') |
... |
colour.geometry.cube |
primitive_vertices_cube_mpl(width=1, height=1, depth=1, width_segments=1, height_segments=1, depth_segments=1, origin=np.array([0, 0, 0]), planes=None) |
... |
colour.io
Object | Signature | Author |
---|---|---|
colour.LUT1D.apply |
apply(self, RGB, interpolator=LinearInterpolator, interpolator_kwargs=None, **kwargs) |
@KelSolaar |
colour.LUT3x1D.apply |
apply(self, RGB, interpolator=LinearInterpolator, interpolator_kwargs=None, **kwargs) |
... |
colour.LUT3D.apply |
apply(self, RGB, interpolator=table_interpolation_trilinear, interpolator_kwargs=None, **kwargs) |
... |
colour.LutSequence.apply |
apply(self, RGB, interpolator_1D=LinearInterpolator, interpolator_1D_kwargs=None, interpolator_3D=table_interpolation_trilinear, interpolator_3D_kwargs=None, **kwargs) |
... |
colour.models
Object | Signature | Author |
---|---|---|
colour.OSA_UCS_to_XYZ |
OSA_UCS_to_XYZ(Ljg, optimisation_kwargs=None, **kwargs) |
@KelSolaar |
colour.RGB_Colourspace |
RGB_Colourspace(self, name, primaries, whitepoint, whitepoint_name=None, matrix_RGB_to_XYZ=None, matrix_XYZ_to_RGB=None, cctf_encoding=None, cctf_decoding=None, use_derived_matrix_RGB_to_XYZ=False, use_derived_matrix_XYZ_to_RGB=False) |
... |
colour.RGB_to_XYZ |
RGB_to_XYZ(RGB, illuminant_RGB, illuminant_XYZ, matrix_RGB_to_XYZ, chromatic_adaptation_transform='CAT02', cctf_decoding=None, **kwargs) |
... |
colour.XYZ_to_RGB |
XYZ_to_RGB(XYZ, illuminant_XYZ, illuminant_RGB, matrix_XYZ_to_RGB, chromatic_adaptation_transform='CAT02', cctf_encoding=None, **kwargs) |
... |
Object | Access | Author |
---|---|---|
colour.models.ACES_RICD |
colour.characterisation.MSDS_ACES_RICD |
@KelSolaar |
Object | Name | Author |
---|---|---|
colour.RGB_Colourspace.RGB_to_XYZ_matrix |
matrix_RGB_to_XYZ |
@KelSolaar |
colour.RGB_Colourspace.XYZ_to_RGB_matrix |
matrix_XYZ_to_RGB |
... |
colour.RGB_Colourspace.use_derived_RGB_to_XYZ_matrix |
use_derived_matrix_RGB_to_XYZ |
... |
colour.RGB_Colourspace.use_derived_XYZ_to_RGB_matrix |
use_derived_matrix_XYZ_to_RGB |
... |
colour.RGB_to_RGB_matrix |
matrix_RGB_to_RGB |
... |
colour.YCBCR_WEIGHTS |
WEIGHTS_YCBCR |
... |
colour.models.ACES_2065_1_COLOURSPACE |
RGB_COLOURSPACE_ACES2065_1 |
... |
colour.models.ACES_CCT_COLOURSPACE |
RGB_COLOURSPACE_ACESCCT |
... |
colour.models.ACES_CC_COLOURSPACE |
RGB_COLOURSPACE_ACESCC |
... |
colour.models.ACES_CG_COLOURSPACE |
RGB_COLOURSPACE_ACESCG |
... |
colour.models.ACES_PROXY_COLOURSPACE |
RGB_COLOURSPACE_ACESPROXY |
... |
colour.models.ADOBE_RGB_1998_COLOURSPACE |
RGB_COLOURSPACE_ADOBE_RGB1998 |
... |
colour.models.ADOBE_WIDE_GAMUT_RGB_COLOURSPACE |
RGB_COLOURSPACE_ADOBE_WIDE_GAMUT_RGB |
... |
colour.models.ALEXA_WIDE_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_ALEXA_WIDE_GAMUT |
... |
colour.models.APPLE_RGB_COLOURSPACE |
RGB_COLOURSPACE_APPLE_RGB |
... |
colour.models.BEST_RGB_COLOURSPACE |
RGB_COLOURSPACE_BEST_RGB |
... |
colour.models.BETA_RGB_COLOURSPACE |
RGB_COLOURSPACE_BETA_RGB |
... |
colour.models.BT2020_COLOURSPACE |
RGB_COLOURSPACE_BT2020 |
... |
colour.models.BT470_525_COLOURSPACE |
RGB_COLOURSPACE_BT470_525 |
... |
colour.models.BT470_625_COLOURSPACE |
RGB_COLOURSPACE_BT470_625 |
... |
colour.models.BT709_COLOURSPACE |
RGB_COLOURSPACE_BT709 |
... |
colour.models.CIE_RGB_COLOURSPACE |
RGB_COLOURSPACE_CIE_RGB |
... |
colour.models.CINEMA_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_CINEMA_GAMUT |
... |
colour.models.COLOR_MATCH_RGB_COLOURSPACE |
RGB_COLOURSPACE_COLOR_MATCH_RGB |
... |
colour.models.DCDM_XYZ_COLOURSPACE |
RGB_COLOURSPACE_DCDM_XYZ |
... |
colour.models.DCI_P3_COLOURSPACE |
RGB_COLOURSPACE_DCI_P3 |
... |
colour.models.DCI_P3_P_COLOURSPACE |
RGB_COLOURSPACE_DCI_P3_P |
... |
colour.models.DISPLAY_P3_COLOURSPACE |
RGB_COLOURSPACE_DISPLAY_P3 |
... |
colour.models.DJI_D_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_DJI_D_GAMUT |
... |
colour.models.DON_RGB_4_COLOURSPACE |
RGB_COLOURSPACE_DON_RGB_4 |
... |
colour.models.DRAGON_COLOR_2_COLOURSPACE |
RGB_COLOURSPACE_DRAGON_COLOR_2 |
... |
colour.models.DRAGON_COLOR_COLOURSPACE |
RGB_COLOURSPACE_DRAGON_COLOR |
... |
colour.models.ECI_RGB_V2_COLOURSPACE |
RGB_COLOURSPACE_ECI_RGB_V2 |
... |
colour.models.EKTA_SPACE_PS_5_COLOURSPACE |
RGB_COLOURSPACE_EKTA_SPACE_PS_5 |
... |
colour.models.ERIMM_RGB_COLOURSPACE |
RGB_COLOURSPACE_ERIMM_RGB |
... |
colour.models.FILMLIGHT_E_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_FILMLIGHT_E_GAMUT |
... |
colour.models.F_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_F_GAMUT |
... |
colour.models.MAX_RGB_COLOURSPACE |
RGB_COLOURSPACE_MAX_RGB |
... |
colour.models.NTSC_1953_COLOURSPACE |
RGB_COLOURSPACE_NTSC1953 |
... |
colour.models.NTSC_1987_COLOURSPACE |
RGB_COLOURSPACE_NTSC1987 |
... |
colour.models.P3_D65_COLOURSPACE |
RGB_COLOURSPACE_P3_D65 |
... |
colour.models.PAL_SECAM_COLOURSPACE |
RGB_COLOURSPACE_PAL_SECAM |
... |
colour.models.POINTER_GAMUT_BOUNDARIES |
CCS_POINTER_GAMUT_BOUNDARY |
... |
colour.models.POINTER_GAMUT_DATA |
DATA_POINTER_GAMUT_VOLUME |
... |
colour.models.POINTER_GAMUT_ILLUMINANT |
CCS_ILLUMINANT_POINTER_GAMUT |
... |
colour.models.PROPHOTO_RGB_COLOURSPACE |
RGB_COLOURSPACE_PROPHOTO_RGB |
... |
colour.models.PROTUNE_NATIVE_COLOURSPACE |
RGB_COLOURSPACE_PROTUNE_NATIVE |
... |
colour.models.RED_COLOR_2_COLOURSPACE |
RGB_COLOURSPACE_RED_COLOR_2 |
... |
colour.models.RED_COLOR_3_COLOURSPACE |
RGB_COLOURSPACE_RED_COLOR_3 |
... |
colour.models.RED_COLOR_4_COLOURSPACE |
RGB_COLOURSPACE_RED_COLOR_4 |
... |
colour.models.RED_COLOR_COLOURSPACE |
RGB_COLOURSPACE_RED_COLOR |
... |
colour.models.RED_WIDE_GAMUT_RGB_COLOURSPACE |
RGB_COLOURSPACE_RED_WIDE_GAMUT_RGB |
... |
colour.models.RIMM_RGB_COLOURSPACE |
RGB_COLOURSPACE_RIMM_RGB |
... |
colour.models.ROMM_RGB_COLOURSPACE |
RGB_COLOURSPACE_ROMM_RGB |
... |
colour.models.RUSSELL_RGB_COLOURSPACE |
RGB_COLOURSPACE_RUSSELL_RGB |
... |
colour.models.SHARP_RGB_COLOURSPACE |
RGB_COLOURSPACE_SHARP_RGB |
... |
colour.models.SMPTE_240M_COLOURSPACE |
RGB_COLOURSPACE_SMPTE_240M |
... |
colour.models.SMPTE_C_COLOURSPACE |
RGB_COLOURSPACE_SMPTE_C |
... |
colour.models.S_GAMUT3_CINE_COLOURSPACE |
RGB_COLOURSPACE_S_GAMUT3_CINE |
... |
colour.models.S_GAMUT3_COLOURSPACE |
RGB_COLOURSPACE_S_GAMUT3 |
... |
colour.models.S_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_S_GAMUT |
... |
colour.models.VENICE_S_GAMUT3_CINE_COLOURSPACE |
RGB_COLOURSPACE_VENICE_S_GAMUT3_CINE |
... |
colour.models.VENICE_S_GAMUT3_COLOURSPACE |
RGB_COLOURSPACE_VENICE_S_GAMUT3 |
... |
colour.models.V_GAMUT_COLOURSPACE |
RGB_COLOURSPACE_V_GAMUT |
... |
colour.models.XTREME_RGB_COLOURSPACE |
RGB_COLOURSPACE_XTREME_RGB |
... |
colour.models.oetf_BT2020 |
eotf_inverse_BT2020 |
... |
colour.models.sRGB_COLOURSPACE |
RGB_COLOURSPACE_sRGB |
... |
colour.notation
colour.notation.RGB_to_HEX
definition will now clip negative values and the whole input array will be normalised to the maximum value if values over 1 are encountered. (@KelSolaar)colour.plotting
Object | Signature | Author |
---|---|---|
colour.plotting.plot_multi_colour_swatches |
plot_multi_colour_swatches(colour_swatches, width=1, height=1, spacing=0, columns=None, direction='+y', text_kwargs=None, background_colour=(1.0, 1.0, 1.0), compare_swatches=None, **kwargs) |
@KelSolaar |
colour.plotting.plot_image |
plot_image(image, imshow_kwargs=None, text_kwargs=None, **kwargs) |
... |
colour.plotting.plot_sds_in_chromaticity_diagram_CIE1931 |
plot_sds_in_chromaticity_diagram_CIE1931(sds, cmfs='CIE 1931 2 Degree Standard Observer', annotate_kwargs=None, chromaticity_diagram_callable_CIE1931=plot_chromaticity_diagram_CIE1931, **kwargs) |
... |
colour.plotting.plot_sds_in_chromaticity_diagram_CIE1960UCS |
plot_sds_in_chromaticity_diagram_CIE1960UCS(sds, cmfs='CIE 1931 2 Degree Standard Observer', annotate_kwargs=None, chromaticity_diagram_callable_CIE1960UCS=plot_chromaticity_diagram_CIE1960UCS, **kwargs) |
... |
colour.plotting.plot_sds_in_chromaticity_diagram_CIE1976UCS |
plot_sds_in_chromaticity_diagram_CIE1976UCS(sds, cmfs='CIE 1931 2 Degree Standard Observer', annotate_kwargs=None, chromaticity_diagram_callable_CIE1976UCS=plot_chromaticity_diagram_CIE1976UCS, **kwargs) |
... |
colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931 |
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1931=plot_RGB_colourspaces_in_chromaticity_diagram_CIE1931, scatter_kwargs=None, **kwargs) |
... |
colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS |
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1960UCS=plot_RGB_colourspaces_in_chromaticity_diagram_CIE1960UCS, scatter_kwargs=None, **kwargs) |
... |
colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS |
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1976UCS=plot_RGB_colourspaces_in_chromaticity_diagram_CIE1976UCS, scatter_kwargs=None, **kwargs) |
... |
colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1931 |
plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1931(chromaticity_diagram_callable_CIE1931=plot_chromaticity_diagram_CIE1931, chromaticity_diagram_clipping=False, ellipse_kwargs=None, **kwargs) |
... |
colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1960UCS |
plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1960UCS(chromaticity_diagram_callable_CIE1960UCS=plot_chromaticity_diagram_CIE1960UCS, chromaticity_diagram_clipping=False, ellipse_kwargs=None, **kwargs) |
... |
colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1976UCS |
plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1976UCS(chromaticity_diagram_callable_CIE1976UCS=plot_chromaticity_diagram_CIE1976UCS, chromaticity_diagram_clipping=False, ellipse_kwargs=None, **kwargs) |
... |
colour.plotting.plot_constant_hue_loci |
plot_constant_hue_loci(data, model, scatter_kwargs=None, **kwargs) |
... |
colour.plotting.plot_planckian_locus_in_chromaticity_diagram_CIE1931 |
plot_planckian_locus_in_chromaticity_diagram_CIE1931(illuminants=None, annotate_kwargs=None, chromaticity_diagram_callable_CIE1931=plot_chromaticity_diagram_CIE1931, planckian_locus_callable_CIE1931=plot_planckian_locus_CIE1931, **kwargs) |
... |
colour.plotting.plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS |
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(illuminants=None, annotate_kwargs=None, chromaticity_diagram_callable_CIE1960UCS=plot_chromaticity_diagram_CIE1960UCS, planckian_locus_callable_CIE1960UCS=plot_planckian_locus_CIE1960UCS, **kwargs) |
... |
Object | Access | Author |
---|---|---|
colour.plotting.quad |
colour.geometry.primitive_vertices_quad_mpl |
@KelSolaar |
colour.plotting.grid |
colour.geometry.primitive_vertices_grid_mpl |
... |
colour.plotting.cube |
colour.geometry.primitive_vertices_cube_mpl |
... |
Object | Name | Author |
---|---|---|
colour.plotting.ASTMG173_DIRECT_CIRCUMSOLAR |
SD_ASTMG173_DIRECT_CIRCUMSOLAR |
@KelSolaar |
colour.plotting.ASTMG173_ETR |
SD_ASTMG173_ETR |
... |
colour.plotting.ASTMG173_GLOBAL_TILT |
SD_ASTMG173_GLOBAL_TILT |
... |
colour.plotting.COLOUR_STYLE_CONSTANTS |
CONSTANTS_COLOUR_STYLE |
... |
colour.plotting.COLOUR_ARROW_STYLE |
CONSTANTS_ARROW_STYLE |
... |
colour.quality
Object | Name | Author |
---|---|---|
colour.quality.CQS_Specification |
ColourRendering_Specification_CQS |
@KelSolaar |
colour.quality.CRI_Specification |
ColourRendering_Specification_CRI |
... |
colour.quality.TCS_SDS |
SDS_TCS |
... |
colour.quality.VS_SDS |
SDS_VS |
... |
colour.recovery
Object | Signature | Author |
---|---|---|
colour.recovery.XYZ_to_sd_Meng2015 |
XYZ_to_sd_Meng2015(XYZ, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].copy().align(DEFAULT_SPECTRAL_SHAPE_MENG_2015), illuminant=sd_ones(DEFAULT_SPECTRAL_SHAPE_MENG_2015), optimisation_kwargs=None, **kwargs) |
@KelSolaar |
Object | Name | Author |
---|---|---|
colour.quality.SMITS_1999_SDS |
SDS_SMITS1999 |
@KelSolaar |
colour.temperature
Object | Signature | Author |
---|---|---|
colour.temperature.CCT_to_xy_Hernandez1999 |
CCT_to_xy_Hernandez1999(CCT, optimisation_kwargs=None, **kwargs) |
@KelSolaar |
colour.temperature.CCT_to_xy_McCamy1992 |
CCT_to_xy_McCamy1992(CCT, optimisation_kwargs=None, **kwargs) |
... |
colour.temperature.uv_to_CCT_Krystek1985 |
uv_to_CCT_Krystek1985(uv, optimisation_kwargs=None, **kwargs) |
... |
colour.temperature.xy_to_CCT_CIE_D |
xy_to_CCT_CIE_D(xy, optimisation_kwargs=None, **kwargs) |
... |
colour.temperature.xy_to_CCT_Kang2002 |
xy_to_CCT_Kang2002(xy, optimisation_kwargs=None, **kwargs) |
... |
colour.utilities
Object | Signature | Author |
---|---|---|
colour.utilities.as_float |
as_float(a, dtype=None) |
@KelSolaar |
colour.utilities.as_float_array |
as_float_array(a, dtype=None) |
... |
colour.utilities.as_int |
as_int(a, dtype=None) |
... |
colour.utilities.as_int_array |
as_int_array(a, dtype=None) |
... |
colour.utilities.filter_warnings |
filter_warnings(colour_runtime_warnings=None, colour_usage_warnings=None, colour_warnings=None, python_warnings=None) |
... |
colour.utilities.metric_mse |
metric_mse(a, b, axis=None) |
... |
colour.utilities.metric_psnr |
metric_psnr(a, b, max_a=1, axis=None) |
... |
colour.utilities.suppress_warnings |
suppress_warnings(colour_runtime_warnings=None, colour_usage_warnings=None, colour_warnings=None, python_warnings=None) |
... |
colour.volume
Object | Name | Author |
---|---|---|
colour.ILLUMINANTS_OPTIMAL_COLOUR_STIMULI |
OPTIMAL_COLOUR_STIMULI_ILLUMINANTS |
@KelSolaar |
Colour 0.3.15 - Alpha Milestone
This is mainly a maintenance release implementing support for Python 3.8, Numpy 1.18 and fixing a major issue in Krystek (1985) correlated colour temperature computation.
colour.colorimetry
colour.colorimetry.sds_and_multi_sds_to_multi_sds
definition that converts given spectral and multi-spectral distributions to multi-spectral distributions. (@KelSolaar)colour.models
colour.models.Jab_to_JCh
and colour.models.JCh_to_Jab
definitions. (@KelSolaar)colour
Various fixes have been implemented to ensure compatibility with Python 3.8 and Numpy 1.18. (@KelSolaar, @MaxSchambach, @mzszym)
colour.io
colour.notation
colour.temperature
colour.temperature.CCT_to_uv_Krystek1985
definition was incorrectly implemented. Incorrect reading of the reference publications ended up with exponentiations being different, e.g. 10**4
was replaced with 10e4
. (@OlliNiemitalo)colour.algebra
colour.algebra.cartesian_to_spherical
and colour.algebra.spherical_to_cartesian
use ISO conversion convention. ρ is in range [0, +inf], θ is in range [0, pi] radians, i.e. [0, 180] degrees, and φ is in range [-pi, pi] radians, i.e. [-180, 180] degrees.colour.volume
colour.is_within_visible_spectrum
: (@KelSolaar)
XYZ_outer_surface(XYZ, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].clone().align(DEFAULT_SPECTRAL_SHAPE_XYZ_OUTER_SURFACE), illuminant=sd_ones(DEFAULT_SPECTRAL_SHAPE_XYZ_OUTER_SURFACE), tolerance=None, **kwargs)
colour.volume.XYZ_outer_surface
: (@KelSolaar)
XYZ_outer_surface(cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].clone().align(DEFAULT_SPECTRAL_SHAPE_XYZ_OUTER_SURFACE), illuminant=sd_ones(DEFAULT_SPECTRAL_SHAPE_XYZ_OUTER_SURFACE), **kwargs)
colour.plotting
colour.plotting.common.wrap_title
~: (@KelSolaar)
Colour 0.3.14 - Alpha Milestone
We would like to thanks all the contributors as usual!
With this release we are getting close to have a beta candidate in the coming months. It will likely be the last version to support Python 2.x.
NumFOCUS
Colour is now a NumFOCUS affiliated project:
We had a few new contributors for the 2019 edition of the Hacktoberfest. Thanks to @Chinmayrane16, @evalevanto, @feralpoosum, @BPearlstine and, @pavithraes for their contributions!
Automatic Colour Conversion Graph
Colour now implements an automatic colour conversion graph based on NetworkX and enabling easier colour conversions:
>>> sd = colour.COLOURCHECKERS_SDS['ColorChecker N Ohta']['dark skin']
>>> convert(sd, 'Spectral Distribution', 'sRGB', verbose={'mode': 'Short'})
Image Input and Output
Imageio is now a requirement for reading and writing images, it will be used if OpenImageIO is not available. If you wish to read OpenEXR files or develop Colour, you will need to install the FreeImage plugin as follows:
$ python -c "import imageio;imageio.plugins.freeimage.download()"
Support for OpenImageIO 2.x has also been implemented.
Name and Signature Changes
Various colour component transfer functions objects have been either renamed or their signature changed, most notably the sRGB transfer functions and the colour.oetf
definition.
All the reverse words have been replaced with inverse in object names, file names and, docstrings.
Coverage
Coverage was raised to 100%. It does not mean that all the possible code paths are covered but it certainly strengthen the API.
Dependency Management
We have adopted Poetry to manage the development dependencies, the setup.py
file has been replaced with a standardized pyproject.toml
file.
Continuous Integration
Travis-ci and Azure Pipelines have been replaced with Github Actions.
Documentation
The README and the Manual have been slightly reorganised to create a better separation between the tutorials, API reference and, the new How-To Guide.
colour.colorimetry
colour.sds_and_multi_sds_to_sds
definition that converts given spectral and multi-spectral distributions to a flat list of spectral distributions. (@KelSolaar)colour.colorimetry.multi_sds_to_XYZ_ASTME308
definition that converts given multi-spectral distributions to CIE XYZ tristimulus values according to to practise ASTM E308-15 method. (@KelSolaar)colour.corresponding
colour.corresponding_chromaticities_prediction
definition can now use a colour.CorrespondingColourDataset
class instance as argument. (@KelSolaar)colour.io
colour.read_image
and colour.write_image
definitions support Imageio and will fallback to it if OpenImageIO is not available.colour.graph
colour.convert
definition leverages an automatic colour conversion graph enabling easier colour conversions:>>> sd = colour.COLOURCHECKERS_SDS['ColorChecker N Ohta']['dark skin']
>>> convert(sd, 'Spectral Distribution', 'sRGB', verbose={'mode': 'Short'})
===============================================================================
* *
* [ Conversion Path ] *
* *
* "sd_to_XYZ" --> "XYZ_to_sRGB" *
* *
===============================================================================
array([ 0.45675795, 0.30986982, 0.24861924])
>>> illuminant = colour.ILLUMINANTS_SDS['FL2']
>>> convert(sd, 'Spectral Distribution', 'sRGB', sd_to_XYZ={'illuminant': illuminant})
array([ 0.47924575, 0.31676968, 0.17362725])
colour.models
colour.models.F_GAMUT_COLOURSPACE
class and Fujifilm F-Log with colour.models.log_encoding_FLog
and colour.models.log_decoding_FLog
transfer functions. (@sobotka, @KelSolaar, @nick-shaw)colour.models.SMPTE_C_COLOURSPACE
class and related NTSC (1987) RGB colourspace with colour.models.NTSC_1987_COLOURSPACE
class. (@KelSolaar)colour.plotting
colour.plotting.plot_constant_hue_loci
definition plotting Constant Hue Loci as given by Hung and Berns (1995) or Ebner and Fairchild (1998). It is intended to be used with Colour - Datasets as follows:from colour_datasets import load
from colour.plotting import plot_constant_hue_loci
plot_constant_hue_loci(load('3362536'), 'IPT')
colour.temperature
colour.temperature.xy_to_CCT_CIE_D
colour.temperature.CCT_to_xy_Hernandez1999
, this definition is not a bijective function and might produce unexpected results. It is given for consistency with other correlated colour temperature computation methods but should be avoided for practical applications.colour.temperature.xy_to_CCT_Kang2002
colour.temperature.uv_to_CCT_Krystek1985
colour.temperature.CCT_to_xy_McCamy1992
, this definition is not a bijective function and might produce unexpected results. It is given for consistency with other correlated colour temperature computation methods but should be avoided for practical applications.colour.quality
colour.colour_quality_scale
definition when using the additional_data
argument were incorrectly scaled and have been fixed. (@KelSolaar)colour.adaptation
colour.adaptation.chromatic_adaptation_reverse_CMCCAT2000
: (@KelSolaar)
chromatic_adaptation_inverse_CMCCAT2000
colour.appearance
yield
based tests dependent on nosetests
have been replaced. (@MichaelMauderer)colour.characterisation
colour.colorimetry
colour.ASTME30815_PRACTISE_SHAPE
: (@KelSolaar)
ASTME308_PRACTISE_SHAPE
colour.MultiSpectralDistribution
: (@KelSolaar)
MultiSpectralDistributions
colour.multi_sds_to_XYZ
: (@KelSolaar)
multi_sds_to_XYZ(msds, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].copy().trim(DEFAULT_SPECTRAL_SHAPE), illuminant=sd_ones(), k=None, method='ASTM E308-15', **kwargs)
colour.colorimetry.multi_sds_to_XYZ_integration
: (@KelSolaar)
multi_sds_to_XYZ_integration(msds, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer']. copy().trim(DEFAULT_SPECTRAL_SHAPE), illuminant=sd_ones(), k=None, shape=DEFAULT_SPECTRAL_SHAPE)
colour.colorimetry.adjust_tristimulus_weighting_factors_ASTME30815
: (@KelSolaar)
adjust_tristimulus_weighting_factors_ASTME308
colour.colorimetry.lagrange_coefficients_ASTME202211
: (@KelSolaar)
lagrange_coefficients_ASTME2022
colour.colorimetry.luminance_ASTMD153508
: (@KelSolaar)
luminance_ASTMD1535
colour.colorimetry.sd_to_XYZ_ASTME30815
: (@KelSolaar)
sd_to_XYZ_ASTME308
colour.colorimetry.sd_to_XYZ_tristimulus_weighting_factors_ASTME30815
: (@KelSolaar)
sd_to_XYZ_tristimulus_weighting_factors_ASTME308
colour.colorimetry.tristimulus_weighting_factors_ASTME202211
: (@KelSolaar)
tristimulus_weighting_factors_ASTME2022
colour.continuous
colour.continuous.MultiSignal
: (@KelSolaar)
MultiSignals
colour.io
colour.read_image
: (@KelSolaar)
read_image(path, method='OpenImageIO', **kwargs)
colour.write_image
: (@KelSolaar)
write_image(image, path, method='OpenImageIO', **kwargs)
colour.models
colour.ENCODING_CCTFS
: (@KelSolaar)
CCTF_ENCODINGS
colour.encoding_cctf
: (@KelSolaar)
cctf_encoding
colour.DECODING_CCTFS
: (@KelSolaar)
CCTF_DECODINGS
colour.decoding_cctf
: (@KelSolaar)
cctf_decoding
colour.RGB_Colourspace.encoding_cctf
: (@KelSolaar)
cctf_encoding
colour.RGB_Colourspace.decoding_cctf
: (@KelSolaar)
decoding_cctf
colour.XYZ_to_RGB
: (@KelSolaar)
XYZ_to_RGB(XYZ, illuminant_XYZ, illuminant_RGB, XYZ_to_RGB_matrix, chromatic_adaptation_transform='CAT02', cctf_encoding=None, **kwargs)
colour.XYZ_to_RGB
: (@KelSolaar)
RGB_to_XYZ(RGB, illuminant_RGB, illuminant_XYZ, RGB_to_XYZ_matrix, chromatic_adaptation_transform='CAT02', cctf_decoding=None, **kwargs)
colour.XYZ_to_sRGB
: (@KelSolaar)
XYZ_to_sRGB(XYZ, illuminant=ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65'], chromatic_adaptation_transform='CAT02', apply_cctf_encoding=True, **kwargs)
colour.XYZ_to_sRGB
: (@KelSolaar)
sRGB_to_XYZ(RGB, illuminant=ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65'], chromatic_adaptation_method='CAT02', apply_cctf_decoding=True, **kwargs)
The colour.RGB_to_RGB
definition now accepts keyword arguments, they are filtered and passed accordingly to the decoding and encoding colour component transfer functions:
colour.RGB_to_RGB
: (@KelSolaar)
RGB_to_RGB(RGB, input_colourspace, output_colourspace, chromatic_adaptation_transform='CAT02', apply_decoding_cctf=False, apply_encoding_cctf=False, **kwargs)
Various log related objects and signatures have been renamed for consistency purposes:
colour.log_decoding_curve
: (@KelSolaar)
colour.log_decoding
log_decoding(value, function='Cineon', **kwargs)
colour.LOG_DECODING_CURVES
: (@KelSolaar)
colour.LOG_DECODINGS
colour.log_encoding_curve
: (@KelSolaar)
colour.log_encoding
log_encoding(value, function='Cineon', **kwargs)
colour.LOG_ENCODING_CURVES
: (@KelSolaar)
colour.LOG_ENCODINGS
The IEC 61966-2-1:1999 standard does not actually define an OETF but and EOTF so the sRGB related definitions have been renamed accordingly:
colour.models.oetf_sRGB
: (@KelSolaar)
eotf_inverse_sRGB
colour.models.oetf_reverse_sRGB
: (@KelSolaar)
eotf_sRGB
Various other colour component transfer functions objects have been either renamed or their signature changed:
colour.eotf
: (@KelSolaar)
eotf(value, function='ITU-R BT.1886', **kwargs)
colour.EOTFS_REVERSE
: (@KelSolaar)
EOTF_INVERSES
colour.eotf_reverse
: (@KelSolaar)
eotf_inverse(value, function='ITU-R BT.1886', **kwargs)
colour.oetf
: (@KelSolaar)
oetf(value, function='ITU-R BT.709', **kwargs)
colour.OETFS_REVERSE
: (@KelSolaar)
OETF_INVERSES
colour.oetf_reverse
: (@KelSolaar)
oetf_inverse(value, function='ITU-R BT.709', **kwargs)
colour.OOTFS_REVERSE
: (@KelSolaar)
OOTF_INVERSES
colour.models.oetf_DICOMGSDF
: (@KelSolaar)
eotf_inverse_DICOMGSDF
colour.models.eotf_reverse_BT1886
: (@KelSolaar)
eotf_inverse_BT1886
colour.models.eotf_reverse_DCDM
: (@KelSolaar)
eotf_inverse_DCDM
colour.models.oetf_ST2084
: (@KelSolaar)
eotf_inverse_ST2084
colour.models.oetf_reverse_ARIBSTDB67
: (@KelSolaar)
oetf_inverse_ARIBSTDB67
colour.models.oetf_reverse_BT601
: (@KelSolaar)
oetf_inverse_BT601
colour.models.oetf_reverse_BT709
: (@KelSolaar)
oetf_inverse_BT709
colour.models.oetf_BT2100_HLG
: (@KelSolaar, @nick-shaw)
oetf_HLG_BT2100
oetf_HLG_BT2100(E, constants=BT2100_HLG_CONSTANTS)
colour.models.oetf_reverse_BT2100_HLG
: (@KelSolaar, @nick-shaw)
oetf_inverse_HLG_BT2100
oetf_inverse_HLG_BT2100(E_p, constants=BT2100_HLG_CONSTANTS)
colour.models.eotf_BT2100_HLG
: (@KelSolaar, @nick-shaw)
eotf_HLG_BT2100
eotf_HLG_BT2100(E_p, L_B=0, L_W=1000, gamma=None, constants=BT2100_HLG_CONSTANTS, method='ITU-R BT.2100-2')
colour.models.eotf_reverse_BT2100_HLG
: (@KelSolaar, @nick-shaw)
eotf_inverse_HLG_BT2100
eotf_inverse_HLG_BT2100(F_D, L_B=0, L_W=1000, gamma=None, constants=BT2100_HLG_CONSTANTS, method='ITU-R BT.2100-2')
colour.models.ootf_BT2100_HLG
: (@KelSolaar, @nick-shaw)
ootf_HLG_BT2100
ootf_HLG_BT2100(E, L_B=0, L_W=1000, gamma=None, method='ITU-R BT.2100-2')
colour.models.ootf_reverse_BT2100_HLG
: (@KelSolaar, @nick-shaw)
ootf_inverse_HLG_BT2100
ootf_inverse_HLG_BT2100(F_D, L_B=0, gamma=None, method='ITU-R BT.2100-2')
colour.models.oetf_BT2100_PQ
: (@KelSolaar, @nick-shaw)
oetf_PQ_BT2100
colour.models.oetf_reverse_BT2100_PQ
: (@KelSolaar, @nick-shaw)
oetf_inverse_PQ_BT2100
colour.models.eotf_BT2100_PQ
: (@KelSolaar, @nick-shaw)
eotf_PQ_BT2100
colour.models.eotf_reverse_BT2100_PQ
: (@KelSolaar, @nick-shaw)
eotf_inverse_PQ_BT2100
colour.models.ootf_BT2100_PQ
: (@KelSolaar, @nick-shaw)
ootf_PQ_BT2100
colour.models.ootf_reverse_BT2100_PQ
: (@KelSolaar, @nick-shaw)
ootf_inverse_PQ_BT2100
colour.models.log_encoding_Log3G10
: (@KelSolaar)
log_encoding_Log3G10(x, method='v2', **kwargs)
colour.models.log_decoding_Log3G10
: (@KelSolaar)
log_decoding_Log3G10(y, method='v2', **kwargs)
colour.models.log_encoding_CanonLog
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_CanonLog(x, bit_depth=10, out_normalised_code_value=True, in_reflection=True, **kwargs)
colour.models.log_decoding_CanonLog
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_CanonLog(clog, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.log_encoding_CanonLog2
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_CanonLog2(x, bit_depth=10, out_normalised_code_value=True, in_reflection=True, **kwargs)
colour.models.log_decoding_CanonLog2
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_CanonLog2(clog2, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.log_encoding_CanonLog3
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_CanonLog3(x, bit_depth=10, out_normalised_code_value=True, in_reflection=True, **kwargs)
colour.models.log_decoding_CanonLog3
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_CanonLog3(clog3, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.log_encoding_VLog
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_VLog(L_in, bit_depth=10, out_normalised_code_value=True, in_reflection=True, constants=VLOG_CONSTANTS, **kwargs)
colour.models.log_decoding_VLog
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_VLog(V_out, bit_depth=10, in_normalised_code_value=True, out_reflection=True, constants=VLOG_CONSTANTS, **kwargs)
colour.models.log_encoding_SLog
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_SLog(x, bit_depth=10, out_normalised_code_value=True, in_reflection=True, **kwargs)
colour.models.log_decoding_SLog
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_SLog(y, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.log_encoding_SLog2
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_SLog2(x, bit_depth=10, out_normalised_code_value=True, in_reflection=True, **kwargs)
colour.models.log_decoding_SLog2
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_SLog2(y, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.log_encoding_SLog3
: (@KelSolaar, @nick-shaw, @KevinJW)
log_encoding_SLog3(x, bit_depth=10, out_normalised_code_value=True, in_reflection=True, **kwargs)
colour.models.log_decoding_SLog3
: (@KelSolaar, @nick-shaw, @KevinJW)
log_decoding_SLog3(y, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.oetf_ROMMRGB
: (@KelSolaar)
cctf_encoding_ROMMRGB
colour.models.eotf_ROMMRGB
: (@KelSolaar)
cctf_decoding_ROMMRGB
colour.models.oetf_ProPhotoRGB
: (@KelSolaar)
cctf_encoding_ProPhotoRGB
colour.models.eotf_ProPhotoRGB
: (@KelSolaar)
cctf_decoding_ProPhotoRGB
colour.models.oetf_RIMMRGB
: (@KelSolaar)
cctf_encoding_RIMMRGB
colour.models.eotf_RIMMRGB
: (@KelSolaar)
cctf_decoding_RIMMRGB
colour.models.XYZ_to_colourspace_model
: (@feralpoosum)
colour.models.NTSC_COLOURSPACE
: (@KelSolaar)
NTSC_1953_COLOURSPACE
colour.notation
colour.notation.munsell_value_ASTMD153508
: (@KelSolaar)
munsell_value_ASTMD1535
colour.plotting
colour.plotting.ASTM_G_173_DIRECT_CIRCUMSOLAR
: (@KelSolaar)
ASTMG173_DIRECT_CIRCUMSOLAR
colour.plotting.ASTM_G_173_ETR
: (@KelSolaar)
ASTMG173_ETR
colour.plotting.ASTM_G_173_GLOBAL_TILT
: (@KelSolaar)
ASTMG173_GLOBAL_TILT
colour.plotting.plot_single_sd_colour_quality_scale_bars
: (@KelSolaar)
plot_single_sd_colour_quality_scale_bars(sd, method='NIST CQS 9.0', **kwargs)
colour.plotting.plot_multi_sds_colour_quality_scales_bars
: (@KelSolaar)
plot_multi_sds_colour_quality_scales_bars(sds, method='NIST CQS 9.0', **kwargs)
colour.plotting.plot_planckian_locus_in_chromaticity_diagram_CIE1931
: (@KelSolaar)
plot_planckian_locus_in_chromaticity_diagram_CIE1931(illuminants=None, annotate_parameters=None, chromaticity_diagram_callable_CIE1931=plot_chromaticity_diagram_CIE1931, planckian_locus_callable_CIE1931=plot_planckian_locus_CIE1931, **kwargs)
colour.plotting.plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS
: (@KelSolaar)
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(illuminants=None, annotate_parameters=None, chromaticity_diagram_callable_CIE1960UCS=plot_chromaticity_diagram_CIE1960UCS, planckian_locus_callable_CIE1960UCS=plot_planckian_locus_CIE1960UCS, **kwargs)
colour.recovery
colour.recovery.XYZ_to_sd_Meng2015
: (@KelSolaar)
XYZ_to_sd_Meng2015(XYZ, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].copy().align(DEFAULT_SPECTRAL_SHAPE_MENG_2015), illuminant=sd_ones(DEFAULT_SPECTRAL_SHAPE_MENG_2015), optimisation_parameters=None)
colour.temperature
colour.xy_to_CCT
: (@KelSolaar)
xy_to_CCT(xy, method='CIE Illuminant D Series')
colour.CCT_to_xy
: (@KelSolaar)
CCT_to_xy(CCT, method='CIE Illuminant D Series')
Colour 0.3.13 - Alpha Milestone
This is mainly a maintenance release addressing regressions introduced in CIECAM02 and CAM16 implementations by Colour 0.3.12.
colour.quality
colour.uv_to_Luv
and colour.uv_to_UCS
conversion definitions. (@kelsolaar)colour.quality
colour.COLOUR_QUALITY_SCALE_METHODS
attribute was added to enumerate the available methods. (@kelsolaar)colour.utilities
colour.utilities.multiprocessing_pool
context manager to support domain-range scale propagation when multiprocessing code on Windows. (@kelsolaar)colour.appearance
colour.colorimetry
colour.whiteness
: (@kelsolaar)
whiteness(XYZ, XYZ_0, method='CIE 2004', **kwargs)
colour.notation
colour.notation.munsell_specification_to_xyY
, colour.notation.xyY_to_munsell_specification
, colour.munsell_colour_to_xyY
and colour.xyY_to_munsell_colour
definitions have been updated to support n-dimensional arrays. (@kelsolaar)colour.plotting
colour.plotting.plot_single_sd
: (@kelsolaar)
plot_single_sd(sd, cmfs='CIE 1931 2 Degree Standard Observer', out_of_gamut_clipping=True, modulate_colours_with_sd_amplitude=False, equalize_sd_amplitude=False, **kwargs)
colour.plotting.plot_single_sd_colour_quality_scale_bars
: (@kelsolaar)
plot_single_sd_colour_quality_scale_bars(sd, method='NIST CQS 7.4', **kwargs)
colour.plotting.plot_multi_sds_colour_quality_scales_bars
: (@kelsolaar)
plot_multi_sds_colour_quality_scales_bars(sds, method='NIST CQS 7.4', **kwargs)
colour.quality
colour.colour_quality_scale
: (@kelsolaar)
colour_quality_scale(sd_test, additional_data=False, method='NIST CQS 9.0')
colour.temperature
colour.cct.uv_to_CCT_Ohno2013
, colour.cct.CCT_to_uv_Ohno2013
, colour.cct.uv_to_CCT_Robertson1968
, colour.cct.CCT_to_uv_Robertson1968
, colour.CCT_to_uv
and colour.uv_to_CCT
definitions have been updated to support n-dimensional arrays. The D_uv
argument is now required to be passed horizontally stacked with the CCT
argument. (@KelSolaar)Colour 0.3.12
>>> CCT, D_uv = 6503.49254150, 0.00320598
>>> colour.CCT_to_uv(CCT, D_uv=D_uv)
>>> colour.temperature.CCT_to_uv_Ohno2013(CCT, D_uv)
Colour 0.3.13
>>> CCT_D_uv = [6503.49254150, 0.00320598]
>>> colour.CCT_to_uv(CCT_D_uv, cmfs=cmfs)
>>> colour.temperature.CCT_to_uv_Ohno2013(CCT_D_uv)
colour.temperature.CCT_to_uv_Ohno2013
: (@kelsolaar)
colour.temperature.CCT_to_uv_Robertson1968
: (@kelsolaar)
colour.volume
colour.RGB_colourspace_volume_MonteCarlo
: (@kelsolaar)
RGB_colourspace_volume_MonteCarlo(colourspace, samples=10e6, limits=np.array([[0, 100], [-150, 150], [-150, 150]], dtype=np.float), illuminant_Lab=ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65'], chromatic_adaptation_method='CAT02', random_generator=random_triplet_generator, random_state=None)
Colour 0.3.12 - Alpha Milestone
Another important 700+ commits step on The Road to Stable!
This release was severely delayed because of the involvement of some of us in the authoring of the upcoming Cinematic Color update. Colouris used to produce an important amount of figures in this work and it was important to improve the plotting capabilities.
The colour.plotting
sub-package was extensively overhauled. It is less opinionated and more flexible. The plotting definitions have been renamed and start with plot_, they return the figure
and axes
instances. The Cinematic Color 2 - Figures Google Colab document is a good example highlighting the greatest and latest changes and capabilities.
The CIE Standard Illuminant D Series D65 was made the default illuminant in places where CIE Illuminant D Series D50 was used as the default argument.
A few reasons for this choice, first D65 is a Standard CIE illuminant along with A, second Colour is used mainly in computer graphics thus it makes sense to adopt D65 where it is ubiquitous, and, finally, it brings consistency across the API while preventing some errors from users with less expertise in the field.
The colour science field adopts many input domains and output ranges. Those are challenging when designing an API. Picking a unique domain-range scale over an other has caused surprise and grief to practitioners of different industries in other software.
Colour has always used the domain-range scales of the publications it implements while recognizing the need for a unique domain-range scale. The API can be switched to use a soft normalised scale to domain-range [0, 1] using the colour.set_domain_range_scale
definition and the colour.domain_range_scale
context manager. More information about Domain-Range Scales is available in the documentation.
With this release, Colour is now able to read and write Look-Up-Tables (LUTs) of various dimensions, i.e. LUT1D, LUT3x1D, LUT3D and LUT Sequences.
Polynomial colour correction was added, it is a useful tool to correct for non-linearity of data, for example, film stocks colours. With great powers come great responsibilities and polynomials will eventually alter significantly colour data that is not present in the original fitting set.
Support for Azure Pipelines was added by @MichaelMauderer giving for the first time continuous integration on macOS and Windows, a few Windows related issues were addressed.
The Barten (1999) contrast sensitivity function was implemented and can be used to estimate ideal code values as a function of viewing conditions.
The power word and abbreviation has been removed from all the spectral distribution related objects. Likewise, the word spectral has been removed from all the related objects and replaced with sd.
The built documentation has been removed from the PyPi package to reduce the size of the downloads.
Implement support for safe and symmetrical power with colour.algebra.spow
definition and the related colour.algebra.is_spow_enabled
, colour.algebra.set_spow_enable
and colour.algebra.spow_enable
definitions. (@KelSolaar)
Implement colour.NearestNeighbourInterpolator
interpolator class. (@KelSolaar)
Implement support for various ellipse related geometrical definitions: (@KelSolaar)
colour.algebra.ellipse_coefficients_general_form
colour.algebra.ellipse_coefficients_canonical_form
colour.algebra.point_at_angle_on_ellipse
colour.algebra.ellipse_fitting_Halir1998
colour.algebra.ELLIPSE_FITTING_METHODS
colour.algebra.ellipse_fitting
colour.polynomial_expansion
, colour.colour_correction_matrix
, and colour.colour_correction
definitions wrapping the following objects: (@KelSolaar)
colour.characterisation.augmented_matrix_Cheung2004
,
colour.characterisation.colour_correction_matrix_Cheung2004
and
colour.characterisation.colour_correction_Cheung2004
definitions.colour.characterisation.augmented_matrix_Finlayson2015
,
colour.characterisation.colour_correction_matrix_Finlayson2015
and
colour.characterisation.colour_correction_Finlayson2015
definitions.colour.characterisation.augmented_matrix_Vandermonde
,
colour.characterisation.colour_correction_matrix_Vandermonde
and
colour.characterisation.colour_correction_Vandermonde
definitions.colour.COLOURCHECKERS
attribute and available with the following keys:
ColorChecker24 - Before November 2014
ColorChecker24 - After November 2014
colour.anomalous_trichromacy_cmfs_Machado2009
, colour.anomalous_trichromacy_matrix_Machado2009
and colour.cvd_matrix_Machado2009
definitions. (@KelSolaar, @MichaelMauderer)colour.multi_sds_to_XYZ
definition. (@KelSolaar)
It ultimately allows conversion of multi-spectral images to RGB, as an example here is the RIT MetaCow converted to sRGB:colour.MultiSpectralDistribution.signal_type
property and colour.MultiSpectralDistribution.to_sds
method. (@KelSolaar)colour.SD_GAUSSIAN_METHODS
colour.sd_gaussian
colour.colorimetry.sd_single_led_Ohno2005
colour.SD_SINGLE_LED_METHODS
colour.sd_single_led
colour.colorimetry.sd_multi_leds_Ohno2005
colour.SD_MULTI_LEDS_METHODS
colour.sd_multi_leds
colour.colorimetry.daylight_locus_function
definition computing the the Daylight Locus chromaticity coordinate y_D
for given chromaticity coordinate x_D
. (@KelSolaar)colour.contrast.contrast_sensitivity_function_Barten1999
definition and the colour.contrast_sensitivity_function
high-level definition wrapper. (@KelSolaar)Computing the minimum detectable contrast with the assumed conditions for UHDTV applications as given in ITU-R BT.2246-4 Figure 31 and using Barten (1999) method.
colour.difference.delta_E_DIN99
definition.
(@KelSolaar, @MichaelMauderer)colour.read_LUT
and colour.write_LUT
definitions. (@nick-shaw, @KelSolaar)The following LUT formats are currently available:
- *Cinespace*: `colour.io.read_LUT_Cinespace` and `colour.io.write_LUT_Cinespace` definitions.
- *Iridas*: `colour.io.read_LUT_IridasCube` and `colour.io.write_LUT_IridasCube` definitions.
- *Resolve*: `colour.io.read_LUT_ResolveCube` and `colour.io.write_LUT_ResolveCube` definitions.
- *Sony SPI 1D*: `colour.io.read_LUT_SonySPI1D` and `colour.io.write_LUT_SonySPI1D` definitions.
- *Sony SPI 3D*: `colour.io.read_LUT_SonySPI3D` and `colour.io.write_LUT_SonySPI3D` definitions.
colour.io.ImageAttribute_Specification
class:
(@KelSolaar)import numpy as np
import colour
compression = colour.io.ImageAttribute_Specification('Compression', 'none')
colour.write_image(np.ones((32, 32, 3)), 'compression_rle.tif')
colour.write_image(np.ones((32, 32, 3)), 'compression_none.tif',
attributes=[compression])
colour.XYZ_to_JzAzBz
and colour.JzAzBz_to_XYZ
definitions. (@KelSolaar)colour.RGB_to_YCoCg
and colour.YCoCg_to_RGB
definitions. (@KelSolaar)colour.ENCODING_CCTFS
and colour.DECODING_CCTFS
attributes and colour.encoding_cctf
and colour.decoding_cctf
definitions: they are convenient collections around the following transfer function objects: (@KelSolaar)
colour.ENCODING_CCTFS
and colour.encoding_cctf
:
colour.LOG_ENCODING_CURVES
colour.OETFS
colour.EOTFS_REVERSE
colour.DECODING_CCTFS
and colour.decoding_cctf
:
colour.LOG_DECODING_CURVES
colour.EOTFS
colour.OETFS_REVERSE
colour.Hunter_Rdab_to_XYZ
definition. (@KelSolaar)colour.UVW_to_XYZ
definition. (@KelSolaar)colour.xy_to_Luv_uv
and colour.xy_to_UCS_uv
definitions. (@KelSolaar)colour.models.DCDM_XYZ_COLOURSPACE
. (@KelSolaar, @codycuellar)colour.RGB_Colourspace.copy
and colour.RGB_Colourspace.chromatically_adapt
methods respectively returning a copy and chromatically adapting the current instance of the RGB_Colourspace
to given whitepoint. (@KelSolaar)colour.models.P3_D65_COLOURSPACE
attribute. (@JDVandenberg)colour.models.log_encoding_FilmicPro6
and colour.models.log.decoding_FilmicPro6
definitions. (@KelSolaar, @Nick-Shaw)attribute and
colour.models.log_encoding_FilmLightTLogand
colour.models.log. log_decoding_FilmLightTLog` definitions. (@Nick-Shaw)The following definitions have now support for CA bypass by using the None
builtin as chromatic_adaptation_transform
argument: (@KelSolaar, @scoopxyz)
colour.XYZ_to_RGB
colour.RGB_to_XYZ
colour.RGB_to_RGB_matrix
colour.RGB_to_RGB
Implement support for Sharp RGB colourspace from Ward and Eydelberg-Vileshin (2002) with colour.models.SHARP_RGB_COLOURSPACE
attribute.
colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1931
, colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1960UCS
and colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1976UCS
definitions plotting MacAdam (1942) Ellipses (Observer PGN) in the Chromaticity Diagram. (@KelSolaar)colour.plotting.plot_pointer_gamut
definition plotting Pointer's Gamut . (@KelSolaar)colour.plotting.plot_multi_colour_checkers
definition. (@KelSolaar)colour.plotting.plot_single_function
and colour.plotting.plot_multi_functions
definitions. (@KelSolaar)colour.plotting.plot_single_luminance_function
and colour.plotting.plot_multi_luminance_functions
definitions. (@KelSolaar)colour.plotting.filter_passthrough
utility definition. (@KelSolaar)colour.get_domain_range_scale
definition which returns the current domain-range scale.colour.set_domain_range_scale
definition which sets the current domain-range scale.colour.domain_range_scale
decorator/context manager which sets the current domain-range scale for the scope of the decorated objects or context.colour.utilities.metric_mse
and colour.utilities.metric_psnr
definitions computing respectively mean squared error (MSE) and peak signal-to-noise ratio (PSNR). (@KelSolaar)colour.utilities.describe_environment
definition that outputs the important information about the current environment: (@KelSolaar)>>> environment = colour.utilities.describe_environment()
===============================================================================
* *
* Interpreter : *
* python : 2.7.14 | packaged by conda-forge | (default, Dec 25 2017, *
* 01:18:54) *
* [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] *
* *
* colour-science.org : *
* colour : v0.3.11-323-g380c1838 *
* *
* Runtime : *
* numpy : 1.14.3 *
* scipy : 1.0.0 *
* pandas : 0.22.0 *
* matplotlib : 2.2.2 *
* notebook : 5.4.0 *
* ipywidgets : 7.2.1 *
* *
===============================================================================
colour.utilities.filter_mapping
utility definition. (@KelSolaar)colour.utilities.as_array
, colour.utilities.as_int_array
, colour.utilities.as_float_array
, colour.utilities.as_int
, and colour.utilities.as_float
utility definitions (@KelSolaar, @MichaelMauderer)colour.volume.XYZ_outer_surface
definition generating CIE XYZ colourspace outer surface. (@KelSolaar)colour.volume.generate_pulse_waves
definition generating pulse waves for CIE XYZ colourspace outer surface computation. (@KelSolaar)D
intermediate variable calculation, colour.XYZ_to_CAM16
and colour.CAM16_to_XYZ
definitions are affected. (@KelSolaar, @crowsonkb)colour.XYZ_to_ATD95
definition. (@KelSolaar)Whitepoint | Chromaticity Coordinates |
---|---|
ACES | [0.32168, 0.33767] |
D60 | [0.32163, 0.33774] |
As a consequence, colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D60']
, colour.ILLUMINANTS['CIE 1964 10 Degree Standard Observer']['D60']
and colour.ILLUMINANTS_SDS['D60']
values have changed and a new colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['ACES']
illuminant has been introduced.
colour.sd_CIE_illuminant_D_series
definition has been updated to conform to CIE 015:2004 recommendation and its output now better matches tabulated data. (@kelsolaar)colour.lightness
and colour.luminance
definitions now use consistent domain/range for Fairchild (2010) and Fairchild (2011) methods.colour.XYZ_to_hdr_CIELab
, colour.hdr_CIELab_to_XYZ
, colour.XYZ_to_hdr_IPT
and colour.hdr_IPT_to_XYZ
definitions output is affected for the Fairchild 2011 method. (@kelsolaar, @sobotka)colour.is_within_visible_spectrum
definition has been overhauled and now relies on a proper computation of CIE XYZ
colourspace outer surface. As a consequence, colour.RGB_colourspace_visible_spectrum_coverage_MonteCarlo
definition output is largely affected and RGB colourspaces have increased coverage, e.g. for sRGB: 36% to 49%.colour.algebra.random_triplet_generator
definition now returns a ndarray
instead of an iterator, memory consumption is higher but speed is increased.colour.first_order_colour_fit
: (@kelsolaar)
colour_correction_matrix
colour.COLOURCHECKERS_SPDS
: (@kelsolaar)
COLOURCHECKERS_SDS
colour.COLOURCHECKERS_SDS
spectral distributions are now ordered according to the colour rendition chart samples order thus colour.characterisation.COLOURCHECKER_INDEXES_TO_NAMES_MAPPING
is not needed anymore. (@kelsolaar)colour.characterisation.COLOURCHECKER_INDEXES_TO_NAMES_MAPPING
colour.COLOURCHECKERS
are now using an ordered dict instead of instances of colour.characterisation.dataset.colour_checkers.chromaticity_coordinates.ColourChecker_Specification
class. (@kelsolaar)colour.characterisation.dataset.colour_checkers.chromaticity_coordinates.ColourChecker_Specification
colour.blackbody_spd
: (@kelsolaar)
sd_blackbody
colour.CIE_standard_illuminant_A_function
: (@kelsolaar)
sd_CIE_standard_illuminant_A
colour.SpectralDistribution
colour.constant_spd
: (@kelsolaar)
sd_constant
colour.D_illuminant_relative_spd
: (@kelsolaar)
sd_CIE_illuminant_D_series
sd_CIE_illuminant_D_series(xy, M1_M2_rounding=True)
colour.ILLUMINANTS_RELATIVE_SPDS
: (@kelsolaar)
ILLUMINANTS_SDS
colour.LIGHT_SOURCES_RELATIVE_SPDS
: (@kelsolaar)
LIGHT_SOURCES_SDS
colour.colorimetry.lightness_Fairchild2011
: (@kelsolaar)
lightness_Fairchild2011(Y, epsilon=0.474, method='hdr-CIELAB')
colour.colorimetry.luminance_Fairchild2011
: (@kelsolaar)
luminance_Fairchild2011(L_hdr, epsilon=0.474, method='hdr-CIELAB')
colour.mesopic_luminous_efficiency_function
: (@kelsolaar)
sd_mesopic_luminous_efficiency_function
colour.MultiSpectralPowerDistribution
: (@kelsolaar)
MultiSpectralDistribution
colour.ones_spd
: (@kelsolaar)
sd_ones
colour.SpectralPowerDistribution
: (@kelsolaar)
SpectralDistribution
colour.SPECTRAL_TO_XYZ_METHODS
: (@kelsolaar)
SD_TO_XYZ_METHODS
colour.spectral_to_XYZ
: (@kelsolaar)
sd_to_XYZ
sd_to_XYZ(sd, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], illuminant=sd_ones(ASTME30815_PRACTISE_SHAPE), k=None, method='ASTM E308-15', **kwargs)
colour.zeros_spd
: (@kelsolaar)
sd_zeros
colour.colorimetry.spectral_to_XYZ_ASTME30815
: (@kelsolaar)
sd_to_XYZ_ASTME30815
sd_to_XYZ_ASTME30815(sd, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], illuminant=sd_ones(ASTME30815_PRACTISE_SHAPE), use_practice_range=True, mi_5nm_omission_method=True, mi_20nm_interpolation_method=True, k=None)
colour.colorimetry.spectral_to_XYZ_integration
: (@kelsolaar)
sd_to_XYZ_integration
sd_to_XYZ_integration(sd, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], illuminant=sd_ones(STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].shape), k=None)
colour.colorimetry.spectral_to_XYZ_tristimulus_weighting_factors_ASTME30815
: (@kelsolaar)
sd_to_XYZ_tristimulus_weighting_factors_ASTME30815
sd_to_XYZ_tristimulus_weighting_factors_ASTME30815(sd, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], illuminant=sd_ones(ASTME30815_PRACTISE_SHAPE), k=None)
colour.colorimetry.tristimulus_weighting_factors_ASTME202211
: (@kelsolaar)
tristimulus_weighting_factors_ASTME202211cmfs, illuminant, shape, k=None)
colour.constants.CIE_E
~: (@kelsolaar)
colour.constants.CIE_K
~: (@kelsolaar)
colour.IES_TM2714_Spd
: (@KelSolaar)
SpectralDistribution_IESTM2714
colour.read_image
: (@KelSolaar, @Nick-Shaw)
read_image(path, bit_depth='float32', attributes=False)
colour.read_spds_from_csv_file
: (@kelsolaar)
read_sds_from_csv_file
colour.read_spds_from_xrite_file
: (@kelsolaar)
read_sds_from_xrite_file
colour.write_spds_to_csv_file
: (@kelsolaar)
write_sds_to_csv_file
colour.RGB_Colourspace.illuminant
: (@KelSolaar)
whitepoint_name
colour.spectral_to_aces_relative_exposure_values
: (@kelsolaar)
sd_to_aces_relative_exposure_values
colour.models.DCI_P3_COLOURSPACE
and colour.models.DCI_P3_P_COLOURSPACE
colourspaces CCTFs have been changed for Gamma 2.6. (@KelSolaar, @codycuellar)The following transfer functions now take and output floating point values by default:
colour.models.oetf_DCIP3
: (@KelSolaar, @codycuellar)
eotf_reverse_DCDM
eotf_reverse_DCDM(XYZ, out_int=False)
colour.models.eotf_DCIP3
: (@KelSolaar, @codycuellar)
eotf_DCDM
oetf_DCDM(XYZ, in_int=False)
colour.models.oetf_DICOMGSDF
: (@KelSolaar)
oetf_DICOMGSDF(L, out_int=False)
colour.models.eotf_DICOMGSDF
: (@KelSolaar)
eotf_DICOMGSDF(J, in_int=False)
colour.models.oetf_ROMMRGB
: (@kelsolaar)
oetf_ROMMRGB(X, bit_depth=8, out_int=False)
colour.models.eotf_ROMMRGB
: (@kelsolaar)
eotf_ROMMRGB(X_p, bit_depth=8, in_int=False)
colour.models.oetf_ProPhotoRGB
: (@kelsolaar)
oetf_ProPhotoRGB(X, bit_depth=8, out_int=False)
colour.models.eotf_ProPhotoRGB
: (@kelsolaar)
eotf_ProPhotoRGB(X_p, bit_depth=8, in_int=False)
colour.models.oetf_RIMMRGB
: (@kelsolaar)
oetf_RIMMRGB(X, bit_depth=8, out_int=False, E_clip=2.0)
colour.models.eotf_RIMMRGB
: (@kelsolaar)
eotf_RIMMRGB(X_p, bit_depth=8, in_int=False, E_clip=2.0)
colour.models.log_encoding_ERIMMRGB
: (@kelsolaar)
log_encoding_ERIMMRGB(X, bit_depth=8, out_int=False, E_min=0.001, E_clip=316.2)
colour.models.log_decoding_ERIMMRGB
: (@kelsolaar)
log_decoding_ERIMMRGB(X_p, bit_depth=8, in_int=False, E_min=0.001, E_clip=316.2)
RED colourspaces primaries have been chromatically adapted to D65 illuminant as Graeme Natress confirmed RED is using D65. (@Nick-Shaw) The following colourspaces are affected:
colour.models.RED_COLOR_COLOURSPACE
colour.models.RED_COLOR_2_COLOURSPACE
colour.models.RED_COLOR_3_COLOURSPACE
colour.models.RED_COLOR_4_COLOURSPACE
colour.models.DRAGON_COLOR_COLOURSPACE
colour.models.DRAGON_COLOR_2_COLOURSPACE
colour.function_gamma
: (@kelsolaar)
gamma_function
colour.function_linear
: (@kelsolaar)
linear_function
colour.rayleigh_scattering_spd
: (@kelsolaar)
sd_rayleigh_scattering
colour.plotting.boundaries
~: (@kelsolaar)
colour.plotting.render
definition.colour.plotting.decorate
~: (@kelsolaar)
colour.plotting.render
definition.colour.plotting.display
~: (@kelsolaar)
colour.plotting.render
definition.colour.plotting.colour_plotting_defaults
: (@kelsolaar)
colour_plotting_style
colour.plotting.get_RGB_colourspace
: (@kelsolaar)
filter_RGB_colourspaces
filter_RGB_colourspaces(filterer, flags=re.IGNORECASE):
colour.plotting.get_cmfs
: (@kelsolaar)
filter_cmfs
filter_cmfs(filterer, flags=re.IGNORECASE):
colour.plotting.get_illuminant
: (@kelsolaar)
filter_illuminants
filter_illuminants(filterer, flags=re.IGNORECASE):
colour.plotting. label_rectangles
: (@kelsolaar)
label_rectangles(labels, rectangles, rotation='vertical', text_size=10, offset=None)
colour.plotting.cvd_simulation_Machado2009_plot
: (@kelsolaar)
plot_cvd_simulation_Machado2009
colour.plotting.single_colour_checker_plot
: (@kelsolaar)
plot_single_colour_checker
colour.plotting.multi_colour_checker_plot
: (@kelsolaar)
plot_multi_colour_checkers
colour.plotting.single_spd_plot
: (@kelsolaar)
plot_single_sd
colour.plotting.multi_spd_plot
: (@kelsolaar)
plot_multi_sds
colour.plotting.single_cmfs_plot
: (@kelsolaar)
plot_single_cmfs
colour.plotting.multi_cmfs_plot
: (@kelsolaar)
plot_multi_cmfs
colour.plotting.single_illuminant_spd_plot
: (@kelsolaar)
plot_single_illuminant_sd
colour.plotting.multi_illuminant_spd_plot
: (@kelsolaar)
plot_multi_illuminant_sds
colour.plotting.visible_spectrum_plot
: (@kelsolaar)
plot_visible_spectrum
colour.plotting.single_lightness_function_plot
: (@kelsolaar)
plot_single_lightness_function
colour.plotting.multi_lightness_function_plot
: (@kelsolaar)
plot_multi_lightness_functions
colour.plotting.plot_single_lightness_function
and colour.plotting.plot_multi_lightness_functions
definitions now render normalised Lightness. (@kelsolaar)colour.plotting.blackbody_spectral_radiance_plot
: (@kelsolaar)
plot_blackbody_spectral_radiance
colour.plotting.blackbody_colours_plot
: (@kelsolaar)
plot_blackbody_colours
colour.plotting.single_colour_swatch_plot
: (@kelsolaar)
plot_single_colour_swatch
colour.plotting.multi_colour_swatch_plot
: (@kelsolaar)
plot_multi_colour_swatches
plot_multi_colour_swatches(colour_swatches, width=1, height=1, spacing=0, columns=3, text_parameters=None, background_colour=(1.0, 1.0, 1.0), compare_swatches=None, **kwargs)
colour.plotting.image_plot
: (@kelsolaar)
plot_image
plot_image(image, text_parameters=None, interpolation='nearest', colour_map=matplotlib.cm.Greys_r, **kwargs)
colour.plotting.corresponding_chromaticities_prediction_plot
: (@kelsolaar)
plot_corresponding_chromaticities_prediction
colour.plotting.spectral_locus_plot
: (@kelsolaar)
plot_spectral_locus
colour.plotting.chromaticity_diagram_colours_plot
: (@kelsolaar)
plot_chromaticity_diagram_colours
colour.plotting.chromaticity_diagram_plot
: (@kelsolaar)
plot_chromaticity_diagram
colour.plotting.chromaticity_diagram_plot_CIE1931
: (@kelsolaar)
plot_chromaticity_diagram_CIE1931
plot_chromaticity_diagram_CIE1931(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, show_spectral_locus=True, wavelength_labels=None, **kwargs)
colour.plotting.chromaticity_diagram_plot_CIE1960UCS
: (@kelsolaar)
plot_chromaticity_diagram_CIE1960UCS
plot_chromaticity_diagram_CIE1960UCS(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, show_spectral_locus=True, wavelength_labels=None, **kwargs)
colour.plotting.chromaticity_diagram_plot_CIE1976UCS
: (@kelsolaar)
plot_chromaticity_diagram_CIE1976UCS
plot_chromaticity_diagram_CIE1976UCS(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, show_spectral_locus=True, wavelength_labels=None, **kwargs)
colour.plotting.spds_chromaticity_diagram_plot
: (@kelsolaar)
plot_sds_in_chromaticity_diagram
colour.plotting.spds_chromaticity_diagram_plot_CIE1931
: (@kelsolaar)
plot_sds_in_chromaticity_diagram_CIE1931
plot_sds_in_chromaticity_diagram_CIE1931(sds, cmfs='CIE 1931 2 Degree Standard Observer', annotate_parameters=None, chromaticity_diagram_callable_CIE1931=chromaticity_diagram_plot_CIE1931, **kwargs)
colour.plotting.spds_chromaticity_diagram_plot_CIE1960UCS
: (@kelsolaar)
plot_sds_in_chromaticity_diagram_CIE1960UCS
plot_sds_in_chromaticity_diagram_CIE1960UCS(sds, cmfs='CIE 1931 2 Degree Standard Observer', annotate_parameters=None, chromaticity_diagram_callable_CIE1960UCS=chromaticity_diagram_plot_CIE1960UCS, **kwargs)
colour.plotting.spds_chromaticity_diagram_plot_CIE1976UCS
: (@kelsolaar)
plot_sds_in_chromaticity_diagram_CIE1976UCS
plot_sds_in_chromaticity_diagram_CIE1976UCS(sds, cmfs='CIE 1931 2 Degree Standard Observer', annotate_parameters=None, chromaticity_diagram_callable_CIE1976UCS=chromaticity_diagram_plot_CIE1976UCS, **kwargs)
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot
: (@kelsolaar)
plot_RGB_colourspaces_in_chromaticity_diagram
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot_CIE1931
: (@kelsolaar)
plot_RGB_colourspaces_in_chromaticity_diagram_CIE1931
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot_CIE1960UCS
: (@kelsolaar)
plot_RGB_colourspaces_in_chromaticity_diagram_CIE1960UCS
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot_CIE1976UCS
: (@kelsolaar)
plot_RGB_colourspaces_in_chromaticity_diagram_CIE1976UCS
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot
: (@kelsolaar)
plot_RGB_chromaticities_in_chromaticity_diagram
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1931
: (@kelsolaar)
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1931=RGB_colourspaces_chromaticity_diagram_plot_CIE1931, scatter_parameters=None, **kwargs)
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1960UCS
: (@kelsolaar)
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1960UCS=RGB_colourspaces_chromaticity_diagram_plot_CIE1960UCS, scatter_parameters=None, **kwargs)
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1976UCS
: (@kelsolaar)
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1976UCS= RGB_colourspaces_chromaticity_diagram_plot_CIE1976UCS, scatter_parameters=None, **kwargs)
colour.plotting.single_cctf_plot
: (@kelsolaar)
plot_single_cctf
colour.plotting.multi_cctf_plot
: (@kelsolaar)
plot_multi_cctfs
colour.plotting.single_munsell_value_function_plot
: (@kelsolaar)
plot_single_munsell_value_function
colour.plotting.multi_munsell_value_function_plot
: (@kelsolaar)
plot_multi_munsell_value_functions
colour.plotting.single_rayleigh_scattering_spd_plot
: (@kelsolaar)
plot_single_sd_rayleigh_scattering
colour.plotting.the_blue_sky_plot
: (@kelsolaar)
plot_the_blue_sky
colour.plotting.colour_quality_bars_plot
: (@kelsolaar)
plot_colour_quality_bars
colour.plotting.single_spd_colour_rendering_index_bars_plot
: (@kelsolaar)
plot_single_sd_colour_rendering_index_bars
colour.plotting.multi_spd_colour_rendering_index_bars_plot
: (@kelsolaar)
plot_multi_sds_colour_rendering_indexes_bars
colour.plotting.single_spd_colour_quality_scale_bars_plot
: (@kelsolaar)
plot_single_sd_colour_quality_scale_bars
colour.plotting.multi_spd_colour_quality_scale_bars_plot
: (@kelsolaar)
plot_multi_sds_colour_quality_scales_bars
colour.plotting.planckian_locus_plot
: (@kelsolaar)
plot_planckian_locus
colour.plotting.planckian_locus_chromaticity_diagram_plot
: (@kelsolaar)
plot_planckian_locus_in_chromaticity_diagram
colour.plotting.planckian_locus_chromaticity_diagram_plot_CIE1931
: (@kelsolaar)
plot_planckian_locus_in_chromaticity_diagram_CIE1931
colour.plotting.planckian_locus_chromaticity_diagram_plot_CIE1960UCS
: (@kelsolaar)
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS
colour.plotting.RGB_colourspaces_gamuts_plot
: (@kelsolaar)
plot_RGB_colourspaces_gamuts
colour.plotting.RGB_scatter_plot
: (@kelsolaar)
plot_RGB_scatter
colour.REFLECTANCE_RECOVERY_METHODS
: (@kelsolaar)
XYZ_TO_SD_METHODS
colour.XYZ_to_spectral
: (@kelsolaar)
XYZ_to_sd
colour.recovery.RGB_to_spectral_Smits1999
: (@kelsolaar)
RGB_to_sd_Smits1999
colour.recovery.RGB_to_sd_Smits1999
output spectral distribution defaults to colour.LinearInterpolator
interpolator. (@kelsolaar)colour.recovery.XYZ_to_spectral_Meng2015
: (@kelsolaar)
XYZ_to_sd_Meng2015
XYZ_to_sd_Meng2015(XYZ, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], interval=5, optimisation_parameters=None)
colour.utilities.filter_warnings
: (@kelsolaar)
filter_warnings(state=True, colour_warnings=True, colour_runtime_warnings=False, colour_usage_warnings=False, python_warnings=False)
colour.utilities.message_box
: (@kelsolaar)
message_box(message, width=79, padding=3, print_callable=print)
colour.utilities.as_numeric
: (@kelsolaar)
as_numeric(a, dtype=DEFAULT_FLOAT_DTYPE)
colour.is_within_visible_spectrum
: (@kelsolaar)
is_within_visible_spectrum(XYZ, interval=10, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], illuminant=sd_ones(STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'].shape), tolerance=None)