Colour v0.3.16 Release Notes
Release Date: 2020-11-27 // about 4 years ago-
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!
๐ With this release, 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
andcolour.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.
๐ Features
colour.algebra
- โ Add
colour.algebra.smoothstep
definition. (@KelSolaar)
colour.characterisation
- Support for ACES Input Device Transform (IDT) generation: The implementation follows to some extent RAW to ACES v1 and P-2013-001 procedure. (@KelSolaar)
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 andcolour.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
andcolour.msds_ones
definitions. (@KelSolaar)colour.difference
- Add
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
GSoC - 2020
Add
colour.models.log_encoding_Log2
andcolour.models.log_decoding_Log2
log encoding and decoding definitions. (@njwardhan, @KelSolaar)Add
colour.models.exponent_function_basic
andcolour.models.exponent_function_monitor_curve
definitions. (@njwardhan)Add
colour.models.logarithmic_function_basic
,colour.models.logarithmic_function_quasilog
andcolour.models.logarithmic_function_camera
definitions. (@njwardhan, @nick-shaw, @KelSolaar)Implement support for IGPGTG colourspace by Hellwig and Fairchild (2020) with the
colour.XYZ_to_IGPGTG
andcolour.IGPGTG_to_XYZ
definitions. (@KelSolaar)Implement support for DaVinci Wide Gamut colourspace. (@KelSolaar)
colour.plotting
- Implement support for ANSI/IES TM-30-18 Colour Rendition Report. (@enneract, @KelSolaar)
- ๐ Implement support for RGB colourspaces chromatic adaptation in various plotting routines: (@KelSolaar)
colour.quality
GSoC - 2020
- Implement support for CIE 2017 Colour Fidelity Index quality metric computation
colour.quality.colour_fidelity_index_CIE2017
definition. (@enneract) - Implement support for ANSI/IES TM-30-18 Colour Fidelity Index quality metric computation
colour.quality.colour_fidelity_index_ANSIIESTM3018
definition. (@enneract)
colour.recovery
GSoC - 2020
- Implement support for Jakob and Hanika (2019) spectral upsampling method with the
colour.recovery.XYZ_to_sd_Jakob2019
definition. (@enneract, @KelSolaar) - Implement support for Mallett and Yuksel (2019) spectral upsampling method with the
colour.recovery.RGB_to_sd_Mallett2019
definition. (@enneract) - Implement support for Otsu, Yamamoto and Hachisuka (2018) spectral upsampling method with the
colour.recovery.XYZ_to_sd_Otsu2018
definition. (@enneract, @KelSolaar)
colour.utilities
- Float precision can be set globally with the
colour.utilities.set_float_precision
definition and theCOLOUR_SCIENCE__FLOAT_PRECISION
environment variable. It will affect almost the entire API and lead to increase performance at the price of broken capabilities. (@KelSolaar) - It is now possible to pass an
axis
argument to thecolour.utilities.metric_mse
andcolour.utilities.metric_psnr
definitions. (@KelSolaar) - โ Add
colour.utilities.LazyCaseInsensitiveMapping
class for lazily loading slow and heavy datasets. (@KelSolaar)
๐ Fixes
colour.characterisation
- The Finlayson, MacKiewicz and Hurlbert (2015) colour correction method was defective when root-polynomial expansion is in use. (@ChunHsinWang, @KelSolaar)
colour.colorimetry
- The
colour.SpectralDistribution.align
,colour.MultiSpectralDistributions.align
,colour.SpectralDistribution.interpolate
andcolour.MultiSpectralDistributions.interpolate
methods did not honour the instantiation time interpolation class and were forcibly using either thecolour.SpragueInterpolator
orcolour.CubicSplineInterpolator
classes unless aninterpolator
argument was passed. This behaviour was not desirable and was changed so that if the instantiation time interpolation class is not one ofcolour.SpragueInterpolator
orcolour.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 #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
- The
colour.plotting.diagrams.plot_chromaticity_diagram
definition was not passing anymore the CMFS to the underlyingcolour.plotting.diagrams.plot_spectral_locus
andcolour.plotting.diagrams.plot_chromaticity_diagram_colours
definitions. (@KelSolaar, @sobotka)
colour.utilities
- โ The
colour.utilities.filter_warnings
definition was not behaving properly and has been fixed. (@KelSolaar)
Examples
colour.plotting.plot_RGB_colourspaces_gamuts
definition was using an incorrectstyle
argument. (@sianyi)
๐ Changes
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
- The
colour.algebra.cartesian_to_spherical
andcolour.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/m2/nm instead of W/sr/m2/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 fromcolour.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_P
... colour.models.DCI_P3_P_COLOURSPACE
RGB_COLOURSPACE_DCI_P3
... 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
- The
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 - โ Add
Previous changes from v0.3.15
-
Colour 0.3.15 - Alpha Milestone
๐ Features
colour.colorimetry
The typical CIE LED illuminants spectral power distributions and chromaticity coordinates have been added to the datasets: (@KelSolaar)
The recommended indoor illuminants ID65 and ID50 spectral power distributions and chromaticity coordinates have been added to the datasets. (@KelSolaar)
Add
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
- Implement support for Display P3 RGB colourspace as per https://developer.apple.com/documentation/coregraphics/cgcolorspace/1408916-displayp3#discussion. (@sobotka)
- Add
colour.models.Jab_to_JCh
andcolour.models.JCh_to_Jab
definitions. (@KelSolaar)
colour.plotting
Importing
colour
is enough to be able to plot in-place of importingcolour.plotting
: (@KelSolaar)>>> import colour>>> colour.plotting.plot_image<function plot_image at 0x11e6e47a0>
colour.quality
- Support for the Academy Spectral Similarity Index (SSI) has been implemented with the
colour.spectral_similarity_index
definition.
๐ Fixes
colour
Various fixes have been implemented to ensure compatibility with Python 3.8 and Numpy 1.18. (@KelSolaar, @MaxSchambach, @mzszym)
๐ Class methods were missing documentation as a consequence of adopting the new documentation build process, this has been addressed accordingly.
colour.io
- Prevent spi3d LUT index duplicates because of floating point precision related issues. (@KelSolaar, @sobotka, @nick-shaw)
colour.notation
- Fix incorrect Domain-Range scale in Munsell Renotation System implementation. (@KelSolaar)
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 with10e4
. (@OlliNiemitalo)
๐ Changes
colour.algebra
colour.algebra.cartesian_to_spherical
andcolour.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)- Signature:
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)
- Signature:
colour.volume.XYZ_outer_surface
: (@KelSolaar)- Signature:
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)
- Implementation: The generated CIE XYZ tristimulus values are not normalised anymore, this will only affect computation if a different illuminant than CIE Illuminant E is chosen.
- Signature:
colour.plotting
colour.plotting.common.wrap_title
: (@KelSolaar)- Remove