Changelog History
Page 1
-
v0.3.16 Changes
November 27, 2020Colour 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
-
v0.3.15 Changes
January 25, 2020Colour 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
-
v0.3.14 Changes
October 26, 2019Colour 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 standardizedpyproject.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.
๐ Features
colour.colorimetry
- Add
colour.sds_and_multi_sds_to_sds
definition that converts given spectral and multi-spectral distributions to a flat list of spectral distributions. (@KelSolaar) - Implement support for ICC D50 illuminant computed from the following CIE XYZ tristimulus values [96.42, 100.00, 82.49]. (@KelSolaar)
- Add
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) - Implement support for ICC D50 illuminant computed from the following CIE XYZ tristimulus values [96.42, 100.00, 82.49]. (@KelSolaar)
colour.corresponding
colour.corresponding_chromaticities_prediction
definition can now use acolour.CorrespondingColourDataset
class instance as argument. (@KelSolaar)
colour.io
- The
colour.read_image
andcolour.write_image
definitions support Imageio and will fallback to it if OpenImageIO is not available. - ๐ OpenImageIO 2.x is now supported.
colour.graph
The new
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
- Implement support for Recommendation ITU-R BT.2100-2 with the modified black lift handling of HLG EOTF. (@KelSolaar, @nick-shaw)
- Implement support for Fujifilm F-Gamut RGB colourspace with
colour.models.F_GAMUT_COLOURSPACE
class and Fujifilm F-Log withcolour.models.log_encoding_FLog
andcolour.models.log_decoding_FLog
transfer functions. (@sobotka, @KelSolaar, @nick-shaw) - Re-implement support for SMPTE C RGB colourspace with
colour.models.SMPTE_C_COLOURSPACE
class and related NTSC (1987) RGB colourspace withcolour.models.NTSC_1987_COLOURSPACE
class. (@KelSolaar)
colour.plotting
Add
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 loadfrom colour.plotting import plot_constant_hue_loci plot_constant_hue_loci(load('3362536'), 'IPT')
colour.temperature
- โ Add various optimization based correlated colour temperature computation definitions: (@KelSolaar)
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.
๐ Fixes
colour.quality
- The individual colour scales returned by
colour.colour_quality_scale
definition when using theadditional_data
argument were incorrectly scaled and have been fixed. (@KelSolaar)
๐ Changes
colour.adaptation
colour.adaptation.chromatic_adaptation_reverse_CMCCAT2000
: (@KelSolaar)- Name:
chromatic_adaptation_inverse_CMCCAT2000
- Name:
colour.appearance
- โ
yield
based tests dependent onnosetests
have been replaced. (@MichaelMauderer)
colour.characterisation
- The following colour checkers now use ICC D50 illuminant instead of D50: (@KelSolaar)
- ColorChecker 2005
- BabelColor Average
- ColorChecker24 - Before November 2014
- ColorChecker24 - After November 2014
colour.colorimetry
colour.ASTME30815_PRACTISE_SHAPE
: (@KelSolaar)- Name:
ASTME308_PRACTISE_SHAPE
- Name:
colour.MultiSpectralDistribution
: (@KelSolaar)- Name:
MultiSpectralDistributions
- Name:
colour.multi_sds_to_XYZ
: (@KelSolaar)- Signature:
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)
- Signature:
colour.colorimetry.multi_sds_to_XYZ_integration
: (@KelSolaar)- Signature:
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)
- Signature:
colour.colorimetry.adjust_tristimulus_weighting_factors_ASTME30815
: (@KelSolaar)- Name:
adjust_tristimulus_weighting_factors_ASTME308
- Name:
colour.colorimetry.lagrange_coefficients_ASTME202211
: (@KelSolaar)- Name:
lagrange_coefficients_ASTME2022
- Name:
colour.colorimetry.luminance_ASTMD153508
: (@KelSolaar)- Name:
luminance_ASTMD1535
- Name:
colour.colorimetry.sd_to_XYZ_ASTME30815
: (@KelSolaar)- Name:
sd_to_XYZ_ASTME308
- Name:
colour.colorimetry.sd_to_XYZ_tristimulus_weighting_factors_ASTME30815
: (@KelSolaar)- Name:
sd_to_XYZ_tristimulus_weighting_factors_ASTME308
- Name:
colour.colorimetry.tristimulus_weighting_factors_ASTME202211
: (@KelSolaar)- Name:
tristimulus_weighting_factors_ASTME2022
- Name:
colour.continuous
- ๐ฆ
colour.continuous.MultiSignal
: (@KelSolaar)- Name:
MultiSignals
- Name:
colour.io
colour.read_image
: (@KelSolaar)- Signature:
read_image(path, method='OpenImageIO', **kwargs)
- Signature:
colour.write_image
: (@KelSolaar)- Signature:
write_image(image, path, method='OpenImageIO', **kwargs)
- Signature:
colour.models
- Various CCTF related objects, signatures and properties have been renamed for consistency purposes:
colour.ENCODING_CCTFS
: (@KelSolaar)- Name:
CCTF_ENCODINGS
- Name:
colour.encoding_cctf
: (@KelSolaar)- Name:
cctf_encoding
- Name:
colour.DECODING_CCTFS
: (@KelSolaar)- Name:
CCTF_DECODINGS
- Name:
colour.decoding_cctf
: (@KelSolaar)- Name:
cctf_decoding
- Name:
colour.RGB_Colourspace.encoding_cctf
: (@KelSolaar)- Name:
cctf_encoding
- Name:
colour.RGB_Colourspace.decoding_cctf
: (@KelSolaar)- Name:
decoding_cctf
- Name:
colour.XYZ_to_RGB
: (@KelSolaar)- Signature:
XYZ_to_RGB(XYZ, illuminant_XYZ, illuminant_RGB, XYZ_to_RGB_matrix, chromatic_adaptation_transform='CAT02', cctf_encoding=None, **kwargs)
- Signature:
colour.XYZ_to_RGB
: (@KelSolaar)- Signature:
RGB_to_XYZ(RGB, illuminant_RGB, illuminant_XYZ, RGB_to_XYZ_matrix, chromatic_adaptation_transform='CAT02', cctf_decoding=None, **kwargs)
- Signature:
colour.XYZ_to_sRGB
: (@KelSolaar)- Signature:
XYZ_to_sRGB(XYZ, illuminant=ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65'], chromatic_adaptation_transform='CAT02', apply_cctf_encoding=True, **kwargs)
- Signature:
colour.XYZ_to_sRGB
: (@KelSolaar)- Signature:
sRGB_to_XYZ(RGB, illuminant=ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65'], chromatic_adaptation_method='CAT02', apply_cctf_decoding=True, **kwargs)
- Signature:
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)- Signature:
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)- Name:
colour.log_decoding
- Signature:
log_decoding(value, function='Cineon', **kwargs)
colour.LOG_DECODING_CURVES
: (@KelSolaar)- Name:
colour.LOG_DECODINGS
colour.log_encoding_curve
: (@KelSolaar)- Name:
colour.log_encoding
- Signature:
log_encoding(value, function='Cineon', **kwargs)
colour.LOG_ENCODING_CURVES
: (@KelSolaar)- Name:
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)- Name:
eotf_inverse_sRGB
- Name:
colour.models.oetf_reverse_sRGB
: (@KelSolaar)- Name:
eotf_sRGB
- Name:
Various other colour component transfer functions objects have been either renamed or their signature changed:
colour.eotf
: (@KelSolaar)- Signature:
eotf(value, function='ITU-R BT.1886', **kwargs)
colour.EOTFS_REVERSE
: (@KelSolaar)- Name:
EOTF_INVERSES
colour.eotf_reverse
: (@KelSolaar)- Signature:
eotf_inverse(value, function='ITU-R BT.1886', **kwargs)
colour.oetf
: (@KelSolaar)- Signature:
oetf(value, function='ITU-R BT.709', **kwargs)
colour.OETFS_REVERSE
: (@KelSolaar)- Name:
OETF_INVERSES
colour.oetf_reverse
: (@KelSolaar)- Signature:
oetf_inverse(value, function='ITU-R BT.709', **kwargs)
colour.OOTFS_REVERSE
: (@KelSolaar)- Name:
OOTF_INVERSES
colour.models.oetf_DICOMGSDF
: (@KelSolaar)- Name:
eotf_inverse_DICOMGSDF
colour.models.eotf_reverse_BT1886
: (@KelSolaar)- Name:
eotf_inverse_BT1886
colour.models.eotf_reverse_DCDM
: (@KelSolaar)- Name:
eotf_inverse_DCDM
colour.models.oetf_ST2084
: (@KelSolaar)- Name:
eotf_inverse_ST2084
colour.models.oetf_reverse_ARIBSTDB67
: (@KelSolaar)- Name:
oetf_inverse_ARIBSTDB67
colour.models.oetf_reverse_BT601
: (@KelSolaar)- Name:
oetf_inverse_BT601
colour.models.oetf_reverse_BT709
: (@KelSolaar)- Name:
oetf_inverse_BT709
colour.models.oetf_BT2100_HLG
: (@KelSolaar, @nick-shaw)- Name:
oetf_HLG_BT2100
- Signature:
oetf_HLG_BT2100(E, constants=BT2100_HLG_CONSTANTS)
colour.models.oetf_reverse_BT2100_HLG
: (@KelSolaar, @nick-shaw)- Name:
oetf_inverse_HLG_BT2100
- Signature:
oetf_inverse_HLG_BT2100(E_p, constants=BT2100_HLG_CONSTANTS)
colour.models.eotf_BT2100_HLG
: (@KelSolaar, @nick-shaw)- Name:
eotf_HLG_BT2100
- Signature:
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)- Name:
eotf_inverse_HLG_BT2100
- Signature:
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)- Name:
ootf_HLG_BT2100
- Signature:
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)- Name:
ootf_inverse_HLG_BT2100
- Signature:
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)- Name:
oetf_PQ_BT2100
colour.models.oetf_reverse_BT2100_PQ
: (@KelSolaar, @nick-shaw)- Name:
oetf_inverse_PQ_BT2100
colour.models.eotf_BT2100_PQ
: (@KelSolaar, @nick-shaw)- Name:
eotf_PQ_BT2100
colour.models.eotf_reverse_BT2100_PQ
: (@KelSolaar, @nick-shaw)- Name:
eotf_inverse_PQ_BT2100
colour.models.ootf_BT2100_PQ
: (@KelSolaar, @nick-shaw)- Name:
ootf_PQ_BT2100
colour.models.ootf_reverse_BT2100_PQ
: (@KelSolaar, @nick-shaw)- Name:
ootf_inverse_PQ_BT2100
colour.models.log_encoding_Log3G10
: (@KelSolaar)- Signature:
log_encoding_Log3G10(x, method='v2', **kwargs)
colour.models.log_decoding_Log3G10
: (@KelSolaar)- Signature:
log_decoding_Log3G10(y, method='v2', **kwargs)
colour.models.log_encoding_CanonLog
: (@KelSolaar, @nick-shaw, @KevinJW)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
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)- Signature:
log_decoding_SLog3(y, bit_depth=10, in_normalised_code_value=True, out_reflection=True, **kwargs)
colour.models.oetf_ROMMRGB
: (@KelSolaar)- Name:
cctf_encoding_ROMMRGB
colour.models.eotf_ROMMRGB
: (@KelSolaar)- Name:
cctf_decoding_ROMMRGB
colour.models.oetf_ProPhotoRGB
: (@KelSolaar)- Name:
cctf_encoding_ProPhotoRGB
colour.models.eotf_ProPhotoRGB
: (@KelSolaar)- Name:
cctf_decoding_ProPhotoRGB
colour.models.oetf_RIMMRGB
: (@KelSolaar)- Name:
cctf_encoding_RIMMRGB
colour.models.eotf_RIMMRGB
: (@KelSolaar)- Name:
cctf_decoding_RIMMRGB
colour.models.XYZ_to_colourspace_model
: (@feralpoosum)- Deprecated
colour.models.NTSC_COLOURSPACE
: (@KelSolaar)- Name:
NTSC_1953_COLOURSPACE
colour.notation
colour.notation.munsell_value_ASTMD153508
: (@KelSolaar)- Name:
munsell_value_ASTMD1535
- Name:
colour.plotting
colour.plotting.ASTM_G_173_DIRECT_CIRCUMSOLAR
: (@KelSolaar)- Name:
ASTMG173_DIRECT_CIRCUMSOLAR
- Name:
colour.plotting.ASTM_G_173_ETR
: (@KelSolaar)- Name:
ASTMG173_ETR
- Name:
colour.plotting.ASTM_G_173_GLOBAL_TILT
: (@KelSolaar)- Name:
ASTMG173_GLOBAL_TILT
- Name:
colour.plotting.plot_single_sd_colour_quality_scale_bars
: (@KelSolaar)- Signature:
plot_single_sd_colour_quality_scale_bars(sd, method='NIST CQS 9.0', **kwargs)
- Signature:
colour.plotting.plot_multi_sds_colour_quality_scales_bars
: (@KelSolaar)- Signature:
plot_multi_sds_colour_quality_scales_bars(sds, method='NIST CQS 9.0', **kwargs)
- Signature:
colour.plotting.plot_planckian_locus_in_chromaticity_diagram_CIE1931
: (@KelSolaar)- Signature:
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)
- Signature:
colour.plotting.plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS
: (@KelSolaar)- Signature:
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)
- Signature:
colour.recovery
colour.recovery.XYZ_to_sd_Meng2015
: (@KelSolaar)- Signature:
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)
- Signature:
colour.temperature
colour.xy_to_CCT
: (@KelSolaar)- Signature:
xy_to_CCT(xy, method='CIE Illuminant D Series')
- Signature:
colour.CCT_to_xy
: (@KelSolaar)- Signature:
CCT_to_xy(CCT, method='CIE Illuminant D Series')
- Signature:
- Add
-
v0.3.13 Changes
October 13, 2019Colour 0.3.13 - Alpha Milestone
This is mainly a maintenance release addressing regressions introduced in CIECAM02 and CAM16 implementations by Colour 0.3.12.
๐ Features
colour.quality
- Add
colour.uv_to_Luv
andcolour.uv_to_UCS
conversion definitions. (@KelSolaar)
colour.quality
- Implement support for colour quality scale computation using NIST CQS 9.0 method based on the latest available spreadsheet from Yoshi Ohno. The results are typically very close to NIST CQS 7.4 method. The
colour.COLOUR_QUALITY_SCALE_METHODS
attribute was added to enumerate the available methods. (@KelSolaar)
colour.utilities
- ๐ Implement
colour.utilities.multiprocessing_pool
context manager to support domain-range scale propagation when multiprocessing code on Windows. (@KelSolaar)
๐ Fixes
colour.appearance
- Fix regressions introduced to CIECAM02 and CAM16 implementations by Colour 0.3.12. (@nschloe, @KelSolaar)
๐ Changes
colour.colorimetry
colour.whiteness
: (@KelSolaar)- Signature:
whiteness(XYZ, XYZ_0, method='CIE 2004', **kwargs)
- Signature:
colour.notation
- The
colour.notation.munsell_specification_to_xyY
,colour.notation.xyY_to_munsell_specification
,colour.munsell_colour_to_xyY
andcolour.xyY_to_munsell_colour
definitions have been updated to support n-dimensional arrays. (@KelSolaar)
colour.plotting
colour.plotting.plot_single_sd
: (@KelSolaar)- Signature:
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)
- Signature:
colour.plotting.plot_single_sd_colour_quality_scale_bars
: (@KelSolaar)- Signature:
plot_single_sd_colour_quality_scale_bars(sd, method='NIST CQS 7.4', **kwargs)
- Signature:
colour.plotting.plot_multi_sds_colour_quality_scales_bars
: (@KelSolaar)- Signature:
plot_multi_sds_colour_quality_scales_bars(sds, method='NIST CQS 7.4', **kwargs)
- Signature:
colour.quality
colour.colour_quality_scale
: (@KelSolaar)- Signature:
colour_quality_scale(sd_test, additional_data=False, method='NIST CQS 9.0')
- Signature:
colour.temperature
- The
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
andcolour.uv_to_CCT
definitions have been updated to support n-dimensional arrays. TheD_uv
argument is now required to be passed horizontally stacked with theCCT
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)- Signature: `CCT_to_uv_Ohno2013(CCT_D_uv, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'])
colour.temperature.CCT_to_uv_Robertson1968
: (@KelSolaar)- Signature: `CCT_to_uv_Robertson1968(CCT_D_uv)
colour.volume
colour.RGB_colourspace_volume_MonteCarlo
: (@KelSolaar)- Signature:
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)
- Signature:
- Add
-
v0.3.12 Changes
March 24, 2019Colour 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.
๐ฆ Plotting Package Overhaul
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 thefigure
andaxes
instances. The Cinematic Color 2 - Figures Google Colab document is a good example highlighting the greatest and latest changes and capabilities.0๏ธโฃ Default to CIE Standard Illuminant D Series D65
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.
Domain-Range Scales
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 thecolour.domain_range_scale
context manager. More information about Domain-Range Scales is available in the documentation.Look-Up-Tables IO
๐ 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
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.๐ Windows and macOs CI
๐ 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.
Contrast Sensitivity Function
The Barten (1999) contrast sensitivity function was implemented and can be used to estimate ideal code values as a function of viewing conditions.
Miscellaneous
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.
๐ Features
colour.algebra
Implement support for safe and symmetrical power with
colour.algebra.spow
definition and the relatedcolour.algebra.is_spow_enabled
,colour.algebra.set_spow_enable
andcolour.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.characterisation
- Implement support for Cheung et al. (2004), Finlayson et al. (2015) and Vandermonde polynomial colour correction with
colour.polynomial_expansion
,colour.colour_correction_matrix
, andcolour.colour_correction
definitions wrapping the following objects: (@KelSolaar)- Cheung et al. (2004) :
colour.characterisation.augmented_matrix_Cheung2004
,
colour.characterisation.colour_correction_matrix_Cheung2004
and
colour.characterisation.colour_correction_Cheung2004
definitions. - Finlayson et al. (2015) :
colour.characterisation.augmented_matrix_Finlayson2015
,
colour.characterisation.colour_correction_matrix_Finlayson2015
and
colour.characterisation.colour_correction_Finlayson2015
definitions. - Vandermonde :
colour.characterisation.augmented_matrix_Vandermonde
,
colour.characterisation.colour_correction_matrix_Vandermonde
and
colour.characterisation.colour_correction_Vandermonde
definitions.
- Cheung et al. (2004) :
- Add X-Rite new ColourChecker data from prior and after November 2014 in
colour.COLOURCHECKERS
attribute and available with the following keys:ColorChecker24 - Before November 2014
ColorChecker24 - After November 2014
colour.blindness
- Implement support for Machado et al. (2009) colour vision deficiency model with
colour.anomalous_trichromacy_cmfs_Machado2009
,colour.anomalous_trichromacy_matrix_Machado2009
andcolour.cvd_matrix_Machado2009
definitions. (@KelSolaar, @MichaelMauderer)
colour.colorimetry
- Implement support for multi-spectral distribution array conversion to CIE XYZ tristimulus values with
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:
- Add
colour.MultiSpectralDistribution.signal_type
property andcolour.MultiSpectralDistribution.to_sds
method. (@KelSolaar) - Implement support for gaussian spectral distributions generation and single and multi LED spectral distributions generation according to Ohno (2005) method with the following objects: (@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
- Add
colour.colorimetry.daylight_locus_function
definition computing the the Daylight Locus chromaticity coordinatey_D
for given chromaticity coordinatex_D
. (@KelSolaar)
colour.contrast
- Implement support for Barten (1999) contrast sensitivity function (CSF) with
colour.contrast.contrast_sensitivity_function_Barten1999
definition and thecolour.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
- Implement support for DIN99 colour difference formula with
colour.difference.delta_E_DIN99
definition.
(@KelSolaar, @MichaelMauderer)
colour.io
- Implement support for reading and writing 1D, 3x1D and 3D LUTs with the
colour.read_LUT
andcolour.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.
๐ Implement support for writing image attributes using the
colour.io.ImageAttribute_Specification
class:
(@KelSolaar)import numpy as npimport 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.models
- Implement support for Safdar et al. (2017) JzAzBz colourspace with
colour.XYZ_to_JzAzBz
andcolour.JzAzBz_to_XYZ
definitions. (@KelSolaar) - Implement support for YCoCg colour encoding with
colour.RGB_to_YCoCg
andcolour.YCoCg_to_RGB
definitions. (@KelSolaar) - Implement
colour.ENCODING_CCTFS
andcolour.DECODING_CCTFS
attributes andcolour.encoding_cctf
andcolour.decoding_cctf
definitions: they are convenient collections around the following transfer function objects: (@KelSolaar)colour.ENCODING_CCTFS
andcolour.encoding_cctf
:colour.LOG_ENCODING_CURVES
colour.OETFS
colour.EOTFS_REVERSE
colour.DECODING_CCTFS
andcolour.decoding_cctf
:colour.LOG_DECODING_CURVES
colour.EOTFS
colour.OETFS_REVERSE
- Implement
colour.Hunter_Rdab_to_XYZ
definition. (@KelSolaar) - Implement
colour.UVW_to_XYZ
definition. (@KelSolaar) - Implement
colour.xy_to_Luv_uv
andcolour.xy_to_UCS_uv
definitions. (@KelSolaar) - Implement
colour.models.DCDM_XYZ_COLOURSPACE
. (@KelSolaar, @codycuellar) - Implement
colour.RGB_Colourspace.copy
andcolour.RGB_Colourspace.chromatically_adapt
methods respectively returning a copy and chromatically adapting the current instance of theRGB_Colourspace
to given whitepoint. (@KelSolaar) - Implement support for P3-D65 colourspace with
colour.models.P3_D65_COLOURSPACE
attribute. (@jdvandenberg) - Implement support for Filmic Pro log encoding curve with
colour.models.log_encoding_FilmicPro6
andcolour.models.log.decoding_FilmicPro6
definitions. (@KelSolaar, @nick-shaw) - Implement support for FilmLight E-Gamut colourspace and its log encoding curve with the colour.models.FILMLIGHT_E_GAMUT_COLOURSPACE
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 aschromatic_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
- Implement
colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1931
,colour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1960UCS
andcolour.plotting.plot_ellipses_MacAdam1942_in_chromaticity_diagram_CIE1976UCS
definitions plotting MacAdam (1942) Ellipses (Observer PGN) in the Chromaticity Diagram. (@KelSolaar)
- Implement
colour.plotting.plot_pointer_gamut
definition plotting Pointer's Gamut . (@KelSolaar) - Implement support for colour rendition charts comparison with
colour.plotting.plot_multi_colour_checkers
definition. (@KelSolaar)
- Implement
colour.plotting.plot_single_function
andcolour.plotting.plot_multi_functions
definitions. (@KelSolaar) - Implement
colour.plotting.plot_single_luminance_function
andcolour.plotting.plot_multi_luminance_functions
definitions. (@KelSolaar) - Implement
colour.plotting.filter_passthrough
utility definition. (@KelSolaar)
colour.utilities
- Implement support for multiple different domain-range scales with the following objects: (@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.
- Implement
colour.utilities.metric_mse
andcolour.utilities.metric_psnr
definitions computing respectively mean squared error (MSE) and peak signal-to-noise ratio (PSNR). (@KelSolaar) Implement
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 *
* *
Implement
colour.utilities.filter_mapping
utility definition. (@KelSolaar)Implement
colour.utilities.as_array
,colour.utilities.as_int_array
,colour.utilities.as_float_array
,colour.utilities.as_int
, andcolour.utilities.as_float
utility definitions (@KelSolaar, @MichaelMauderer)
colour.volume
- Implement
colour.volume.XYZ_outer_surface
definition generating CIE XYZ colourspace outer surface. (@KelSolaar) - Implement
colour.volume.generate_pulse_waves
definition generating pulse waves for CIE XYZ colourspace outer surface computation. (@KelSolaar)
๐ Fixes
colour.appearance
- CAM16 computations were incorrect because of a faulty
D
intermediate variable calculation,colour.XYZ_to_CAM16
andcolour.CAM16_to_XYZ
definitions are affected. (@KelSolaar, @crowsonkb) - CIECAM02 Dim induction factor N_c has been changed from 0.95 to 0.9 to match the CIE recommendation. (@KelSolaar, Mark D. Fairchild)
- Handles NaNs gracefully in
colour.XYZ_to_ATD95
definition. (@KelSolaar)
colour.colorimetry
- CIE Illuminant D Series D60 illuminant chromaticity coordinates and spectral distribution were incorrect because of the mistaken assumption that ACES whitepoint is CIE Illuminant D Series D60:
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']
andcolour.ILLUMINANTS_SDS['D60']
values have changed and a newcolour.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
andcolour.luminance
definitions now use consistent domain/range for Fairchild (2010) and Fairchild (2011) methods.
colour.models
- Fixes incorrect computation of epsilon value for hdr-CIELAB and hdr-IPT 2011 colourspaces:
colour.XYZ_to_hdr_CIELab
,colour.hdr_CIELab_to_XYZ
,colour.XYZ_to_hdr_IPT
andcolour.hdr_IPT_to_XYZ
definitions output is affected for the Fairchild 2011 method. (@KelSolaar, @sobotka)
colour.volume
colour.is_within_visible_spectrum
definition has been overhauled and now relies on a proper computation ofCIE 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%.
๐ Changes
colour.algebra
colour.algebra.random_triplet_generator
definition now returns andarray
instead of an iterator, memory consumption is higher but speed is increased.
colour.characterisation
colour.first_order_colour_fit
: (@KelSolaar)- Name:
colour_correction_matrix
- Name:
colour.COLOURCHECKERS_SPDS
: (@KelSolaar)- Name:
COLOURCHECKERS_SDS
- Name:
colour.COLOURCHECKERS_SDS
spectral distributions are now ordered according to the colour rendition chart samples order thuscolour.characterisation.COLOURCHECKER_INDEXES_TO_NAMES_MAPPING
is not needed anymore. (@KelSolaar)colour.characterisation.COLOURCHECKER_INDEXES_TO_NAMES_MAPPING
: (@KelSolaar)- Remove
colour.COLOURCHECKERS
are now using an ordered dict instead of instances ofcolour.characterisation.dataset.colour_checkers.chromaticity_coordinates.ColourChecker_Specification
class. (@KelSolaar)colour.characterisation.dataset.colour_checkers.chromaticity_coordinates.ColourChecker_Specification
: (@KelSolaar)- Remove
colour.colorimetry
- All the Illuminants and light sources now use a linear interpolator by default for consistency with CIE Standard Illuminant D Series which should be linearly interpolated as per CIE 15:2004 recommendations. (@KelSolaar)
- CIE Standard Illuminant A uses chromaticity coordinates as given in CIE 015:2004 Colorimetry, 3rd Edition.
- CIE Illuminant D Series D55 uses chromaticity coordinates as given in CIE 015:2004 Colorimetry, 3rd Edition.
- CIE Illuminant D Series D75 uses chromaticity coordinates as given in CIE 015:2004 Colorimetry, 3rd Edition.
- Illuminants F Series use chromaticity coordinates as given in CIE 015:2004 Colorimetry, 3rd Edition.
- Illuminants F Series that were using HunterLab naming convention have been renamed to CIE naming convention, e.g. F1 has been renamed to FL1, F2 to FL2 and so forth.
colour.blackbody_spd
: (@KelSolaar)- Name:
sd_blackbody
- Name:
colour.CIE_standard_illuminant_A_function
: (@KelSolaar)- Name:
sd_CIE_standard_illuminant_A
- Return:
colour.SpectralDistribution
- Name:
colour.constant_spd
: (@KelSolaar)- Name:
sd_constant
- Name:
colour.D_illuminant_relative_spd
: (@KelSolaar)- Name:
sd_CIE_illuminant_D_series
- Signature:
sd_CIE_illuminant_D_series(xy, M1_M2_rounding=True)
- Name:
colour.ILLUMINANTS_RELATIVE_SPDS
: (@KelSolaar)- Name:
ILLUMINANTS_SDS
- Name:
colour.LIGHT_SOURCES_RELATIVE_SPDS
: (@KelSolaar)- Name:
LIGHT_SOURCES_SDS
- Name:
colour.colorimetry.lightness_Fairchild2011
: (@KelSolaar)- Signature:
lightness_Fairchild2011(Y, epsilon=0.474, method='hdr-CIELAB')
- Signature:
colour.colorimetry.luminance_Fairchild2011
: (@KelSolaar)- Signature:
luminance_Fairchild2011(L_hdr, epsilon=0.474, method='hdr-CIELAB')
- Signature:
colour.mesopic_luminous_efficiency_function
: (@KelSolaar)- Name:
sd_mesopic_luminous_efficiency_function
- Name:
colour.MultiSpectralPowerDistribution
: (@KelSolaar)- Name:
MultiSpectralDistribution
- Name:
colour.ones_spd
: (@KelSolaar)- Name:
sd_ones
- Name:
colour.SpectralPowerDistribution
: (@KelSolaar)- Name:
SpectralDistribution
- Name:
colour.SPECTRAL_TO_XYZ_METHODS
: (@KelSolaar)- Name:
SD_TO_XYZ_METHODS
- Name:
colour.spectral_to_XYZ
: (@KelSolaar)- Name:
sd_to_XYZ
- Signature:
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)
- Name:
colour.zeros_spd
: (@KelSolaar)- Name:
sd_zeros
- Name:
colour.colorimetry.spectral_to_XYZ_ASTME30815
: (@KelSolaar)- Name:
sd_to_XYZ_ASTME30815
- Signature:
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)
- Name:
colour.colorimetry.spectral_to_XYZ_integration
: (@KelSolaar)- Name:
sd_to_XYZ_integration
- Signature:
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)
- Name:
colour.colorimetry.spectral_to_XYZ_tristimulus_weighting_factors_ASTME30815
: (@KelSolaar)- Name:
sd_to_XYZ_tristimulus_weighting_factors_ASTME30815
- Signature:
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)
- Name:
colour.colorimetry.tristimulus_weighting_factors_ASTME202211
: (@KelSolaar)- Signature:
tristimulus_weighting_factors_ASTME202211cmfs, illuminant, shape, k=None)
- Signature:
colour.constants
colour.constants.CIE_E
: (@KelSolaar)- Remove: The CIE 1976, e.g. Lightness (CIE 1976), Luminance (CIE 1976), CIE L*a*b*, CIE L*u*v** related code uses the algorithm recommended in CIE 015:2004 Colorimetry, 3rd Edition.
colour.constants.CIE_K
: (@KelSolaar)- Remove: The CIE 1976, e.g. Lightness (CIE 1976), Luminance (CIE 1976), CIE L*a*b*, CIE L*u*v** related code uses the algorithm recommended in CIE 015:2004 Colorimetry, 3rd Edition.
colour.io
colour.IES_TM2714_Spd
: (@KelSolaar)- Name:
SpectralDistribution_IESTM2714
- Name:
colour.read_image
: (@KelSolaar, @nick-shaw)- Signature:
read_image(path, bit_depth='float32', attributes=False)
- Signature:
colour.read_spds_from_csv_file
: (@KelSolaar)- Name:
read_sds_from_csv_file
- Name:
colour.read_spds_from_xrite_file
: (@KelSolaar)- Name:
read_sds_from_xrite_file
- Name:
colour.write_spds_to_csv_file
: (@KelSolaar)- Name:
write_sds_to_csv_file
- Name:
colour.models
colour.RGB_Colourspace.illuminant
: (@KelSolaar)- Name:
whitepoint_name
- Name:
colour.spectral_to_aces_relative_exposure_values
: (@KelSolaar)- Name:
sd_to_aces_relative_exposure_values
- Name:
colour.models.DCI_P3_COLOURSPACE
andcolour.models.DCI_P3_P_COLOURSPACE
colourspaces CCTFs have been changed for Gamma 2.6. (@KelSolaar, @codycuellar)
0๏ธโฃ The following transfer functions now take and output floating point values by default:
colour.models.oetf_DCIP3
: (@KelSolaar, @codycuellar)- Name:
eotf_reverse_DCDM
- Signature:
eotf_reverse_DCDM(XYZ, out_int=False)
colour.models.eotf_DCIP3
: (@KelSolaar, @codycuellar)- Name:
eotf_DCDM
- Signature:
oetf_DCDM(XYZ, in_int=False)
colour.models.oetf_DICOMGSDF
: (@KelSolaar)- Signature:
oetf_DICOMGSDF(L, out_int=False)
colour.models.eotf_DICOMGSDF
: (@KelSolaar)- Signature:
eotf_DICOMGSDF(J, in_int=False)
colour.models.oetf_ROMMRGB
: (@KelSolaar)- Signature:
oetf_ROMMRGB(X, bit_depth=8, out_int=False)
colour.models.eotf_ROMMRGB
: (@KelSolaar)- Signature:
eotf_ROMMRGB(X_p, bit_depth=8, in_int=False)
colour.models.oetf_ProPhotoRGB
: (@KelSolaar)- Signature:
oetf_ProPhotoRGB(X, bit_depth=8, out_int=False)
colour.models.eotf_ProPhotoRGB
: (@KelSolaar)- Signature:
eotf_ProPhotoRGB(X_p, bit_depth=8, in_int=False)
colour.models.oetf_RIMMRGB
: (@KelSolaar)- Signature:
oetf_RIMMRGB(X, bit_depth=8, out_int=False, E_clip=2.0)
colour.models.eotf_RIMMRGB
: (@KelSolaar)- Signature:
eotf_RIMMRGB(X_p, bit_depth=8, in_int=False, E_clip=2.0)
colour.models.log_encoding_ERIMMRGB
: (@KelSolaar)- Signature:
log_encoding_ERIMMRGB(X, bit_depth=8, out_int=False, E_min=0.001, E_clip=316.2)
colour.models.log_decoding_ERIMMRGB
: (@KelSolaar)- Signature:
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)- Name:
gamma_function
colour.function_linear
: (@KelSolaar)- Name:
linear_function
colour.phenomena
colour.rayleigh_scattering_spd
: (@KelSolaar)- Name:
sd_rayleigh_scattering
- Name:
colour.plotting
colour.plotting.boundaries
: (@KelSolaar)- Remove: Functionality has been moved to
colour.plotting.render
definition.
- Remove: Functionality has been moved to
colour.plotting.decorate
: (@KelSolaar)- Remove: Functionality has been moved to
colour.plotting.render
definition.
- Remove: Functionality has been moved to
colour.plotting.display
: (@KelSolaar)- Remove: Functionality has been moved to
colour.plotting.render
definition.
- Remove: Functionality has been moved to
colour.plotting.colour_plotting_defaults
: (@KelSolaar)- Name:
colour_plotting_style
- Name:
colour.plotting.get_RGB_colourspace
: (@KelSolaar)- Name:
filter_RGB_colourspaces
- Signature:
filter_RGB_colourspaces(filterer, flags=re.IGNORECASE):
- Name:
colour.plotting.get_cmfs
: (@KelSolaar)- Name:
filter_cmfs
- Signature:
filter_cmfs(filterer, flags=re.IGNORECASE):
- Name:
colour.plotting.get_illuminant
: (@KelSolaar)- Name:
filter_illuminants
- Signature:
filter_illuminants(filterer, flags=re.IGNORECASE):
- Name:
colour.plotting. label_rectangles
: (@KelSolaar)- Signature:
label_rectangles(labels, rectangles, rotation='vertical', text_size=10, offset=None)
- Signature:
colour.plotting.cvd_simulation_Machado2009_plot
: (@KelSolaar)- Name:
plot_cvd_simulation_Machado2009
- Name:
colour.plotting.single_colour_checker_plot
: (@KelSolaar)- Name:
plot_single_colour_checker
- Name:
colour.plotting.multi_colour_checker_plot
: (@KelSolaar)- Name:
plot_multi_colour_checkers
- Name:
colour.plotting.single_spd_plot
: (@KelSolaar)- Name:
plot_single_sd
- Name:
colour.plotting.multi_spd_plot
: (@KelSolaar)- Name:
plot_multi_sds
- Name:
colour.plotting.single_cmfs_plot
: (@KelSolaar)- Name:
plot_single_cmfs
- Name:
colour.plotting.multi_cmfs_plot
: (@KelSolaar)- Name:
plot_multi_cmfs
- Name:
colour.plotting.single_illuminant_spd_plot
: (@KelSolaar)- Name:
plot_single_illuminant_sd
- Name:
colour.plotting.multi_illuminant_spd_plot
: (@KelSolaar)- Name:
plot_multi_illuminant_sds
- Name:
colour.plotting.visible_spectrum_plot
: (@KelSolaar)- Name:
plot_visible_spectrum
- Name:
colour.plotting.single_lightness_function_plot
: (@KelSolaar)- Name:
plot_single_lightness_function
- Name:
colour.plotting.multi_lightness_function_plot
: (@KelSolaar)- Name:
plot_multi_lightness_functions
- Name:
colour.plotting.plot_single_lightness_function
andcolour.plotting.plot_multi_lightness_functions
definitions now render normalised Lightness. (@KelSolaar)colour.plotting.blackbody_spectral_radiance_plot
: (@KelSolaar)- Name:
plot_blackbody_spectral_radiance
- Name:
colour.plotting.blackbody_colours_plot
: (@KelSolaar)- Name:
plot_blackbody_colours
- Name:
colour.plotting.single_colour_swatch_plot
: (@KelSolaar)- Name:
plot_single_colour_swatch
- Name:
colour.plotting.multi_colour_swatch_plot
: (@KelSolaar)- Name:
plot_multi_colour_swatches
- Signature:
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)
- Name:
colour.plotting.image_plot
: (@KelSolaar)- Name:
plot_image
- Signature:
plot_image(image, text_parameters=None, interpolation='nearest', colour_map=matplotlib.cm.Greys_r, **kwargs)
- Name:
colour.plotting.corresponding_chromaticities_prediction_plot
: (@KelSolaar)- Name:
plot_corresponding_chromaticities_prediction
- Name:
colour.plotting.spectral_locus_plot
: (@KelSolaar)- Name:
plot_spectral_locus
- Name:
colour.plotting.chromaticity_diagram_colours_plot
: (@KelSolaar)- Name:
plot_chromaticity_diagram_colours
- Name:
colour.plotting.chromaticity_diagram_plot
: (@KelSolaar)- Name:
plot_chromaticity_diagram
- Name:
colour.plotting.chromaticity_diagram_plot_CIE1931
: (@KelSolaar)- Name:
plot_chromaticity_diagram_CIE1931
- Signature:
plot_chromaticity_diagram_CIE1931(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, show_spectral_locus=True, wavelength_labels=None, **kwargs)
- Name:
colour.plotting.chromaticity_diagram_plot_CIE1960UCS
: (@KelSolaar)- Name:
plot_chromaticity_diagram_CIE1960UCS
- Signature:
plot_chromaticity_diagram_CIE1960UCS(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, show_spectral_locus=True, wavelength_labels=None, **kwargs)
- Name:
colour.plotting.chromaticity_diagram_plot_CIE1976UCS
: (@KelSolaar)- Name:
plot_chromaticity_diagram_CIE1976UCS
- Signature:
plot_chromaticity_diagram_CIE1976UCS(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, show_spectral_locus=True, wavelength_labels=None, **kwargs)
- Name:
colour.plotting.spds_chromaticity_diagram_plot
: (@KelSolaar)- Name:
plot_sds_in_chromaticity_diagram
- Name:
colour.plotting.spds_chromaticity_diagram_plot_CIE1931
: (@KelSolaar)- Name:
plot_sds_in_chromaticity_diagram_CIE1931
- Signature:
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)
- Name:
colour.plotting.spds_chromaticity_diagram_plot_CIE1960UCS
: (@KelSolaar)- Name:
plot_sds_in_chromaticity_diagram_CIE1960UCS
- Signature:
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)
- Name:
colour.plotting.spds_chromaticity_diagram_plot_CIE1976UCS
: (@KelSolaar)- Name:
plot_sds_in_chromaticity_diagram_CIE1976UCS
- Signature:
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)
- Name:
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot
: (@KelSolaar)- Name:
plot_RGB_colourspaces_in_chromaticity_diagram
- Name:
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot_CIE1931
: (@KelSolaar)- Name:
plot_RGB_colourspaces_in_chromaticity_diagram_CIE1931
- Name:
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot_CIE1960UCS
: (@KelSolaar)- Name:
plot_RGB_colourspaces_in_chromaticity_diagram_CIE1960UCS
- Name:
colour.plotting.RGB_colourspaces_chromaticity_diagram_plot_CIE1976UCS
: (@KelSolaar)- Name:
plot_RGB_colourspaces_in_chromaticity_diagram_CIE1976UCS
- Name:
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot
: (@KelSolaar)- Name:
plot_RGB_chromaticities_in_chromaticity_diagram
- Name:
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1931
: (@KelSolaar)- Name:
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931
- Signature:
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1931=RGB_colourspaces_chromaticity_diagram_plot_CIE1931, scatter_parameters=None, **kwargs)
- Name:
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1960UCS
: (@KelSolaar)- Name:
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS
- Signature:
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1960UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1960UCS=RGB_colourspaces_chromaticity_diagram_plot_CIE1960UCS, scatter_parameters=None, **kwargs)
- Name:
colour.plotting.RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1976UCS
: (@KelSolaar)- Name:
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS
- Signature:
plot_RGB_chromaticities_in_chromaticity_diagram_CIE1976UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1976UCS= RGB_colourspaces_chromaticity_diagram_plot_CIE1976UCS, scatter_parameters=None, **kwargs)
- Name:
colour.plotting.single_cctf_plot
: (@KelSolaar)- Name:
plot_single_cctf
- Name:
colour.plotting.multi_cctf_plot
: (@KelSolaar)- Name:
plot_multi_cctfs
- Name:
colour.plotting.single_munsell_value_function_plot
: (@KelSolaar)- Name:
plot_single_munsell_value_function
- Name:
colour.plotting.multi_munsell_value_function_plot
: (@KelSolaar)- Name:
plot_multi_munsell_value_functions
- Name:
colour.plotting.single_rayleigh_scattering_spd_plot
: (@KelSolaar)- Name:
plot_single_sd_rayleigh_scattering
- Name:
colour.plotting.the_blue_sky_plot
: (@KelSolaar)- Name:
plot_the_blue_sky
- Name:
colour.plotting.colour_quality_bars_plot
: (@KelSolaar)- Name:
plot_colour_quality_bars
- Name:
colour.plotting.single_spd_colour_rendering_index_bars_plot
: (@KelSolaar)- Name:
plot_single_sd_colour_rendering_index_bars
- Name:
colour.plotting.multi_spd_colour_rendering_index_bars_plot
: (@KelSolaar)- Name:
plot_multi_sds_colour_rendering_indexes_bars
- Name:
colour.plotting.single_spd_colour_quality_scale_bars_plot
: (@KelSolaar)- Name:
plot_single_sd_colour_quality_scale_bars
- Name:
colour.plotting.multi_spd_colour_quality_scale_bars_plot
: (@KelSolaar)- Name:
plot_multi_sds_colour_quality_scales_bars
- Name:
colour.plotting.planckian_locus_plot
: (@KelSolaar)- Name:
plot_planckian_locus
- Name:
colour.plotting.planckian_locus_chromaticity_diagram_plot
: (@KelSolaar)- Name:
plot_planckian_locus_in_chromaticity_diagram
- Name:
colour.plotting.planckian_locus_chromaticity_diagram_plot_CIE1931
: (@KelSolaar)- Name:
plot_planckian_locus_in_chromaticity_diagram_CIE1931
- Name:
colour.plotting.planckian_locus_chromaticity_diagram_plot_CIE1960UCS
: (@KelSolaar)- Name:
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS
- Name:
colour.plotting.RGB_colourspaces_gamuts_plot
: (@KelSolaar)- Name:
plot_RGB_colourspaces_gamuts
- Signature: `plot_RGB_colourspaces_gamuts(colourspaces=None, reference_colourspace='CIE xyY', segments=8, show_grid=True, grid_segments=10, show_spectral_locus=False, spectral_locus_colour=None, cmfs='CIE 1931 2 Degree Standard Observer', **kwargs)
- Name:
colour.plotting.RGB_scatter_plot
: (@KelSolaar)- Name:
plot_RGB_scatter
- Signature: `plot_RGB_scatter(RGB, colourspace, reference_colourspace='CIE xyY', colourspaces=None, segments=8, show_grid=True, grid_segments=10, show_spectral_locus=False, spectral_locus_colour=None, points_size=12, cmfs='CIE 1931 2 Degree Standard Observer', **kwargs)
- Name:
colour.recovery
colour.REFLECTANCE_RECOVERY_METHODS
: (@KelSolaar)- Name:
XYZ_TO_SD_METHODS
- Name:
colour.XYZ_to_spectral
: (@KelSolaar)- Name:
XYZ_to_sd
- Name:
colour.recovery.RGB_to_spectral_Smits1999
: (@KelSolaar)- Name:
RGB_to_sd_Smits1999
- Name:
colour.recovery.RGB_to_sd_Smits1999
output spectral distribution defaults tocolour.LinearInterpolator
interpolator. (@KelSolaar)colour.recovery.XYZ_to_spectral_Meng2015
: (@KelSolaar)- Name:
XYZ_to_sd_Meng2015
- Signature:
XYZ_to_sd_Meng2015(XYZ, cmfs=STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'], interval=5, optimisation_parameters=None)
- Name:
colour.utilities
- โ
colour.utilities.filter_warnings
: (@KelSolaar)- Signature:
filter_warnings(state=True, colour_warnings=True, colour_runtime_warnings=False, colour_usage_warnings=False, python_warnings=False)
- Signature:
colour.utilities.message_box
: (@KelSolaar)- Signature:
message_box(message, width=79, padding=3, print_callable=print)
- Signature:
colour.utilities.as_numeric
: (@KelSolaar)- Signature:
as_numeric(a, dtype=DEFAULT_FLOAT_DTYPE)
- Signature:
colour.volume
colour.is_within_visible_spectrum
: (@KelSolaar)- Signature:
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)
- Signature:
-
v0.3.11 Changes
February 19, 2018Colour 0.3.11 - Alpha Milestone
๐ This release is an important milestone on The Road to Stable. The spectral backend has been entirely overhauled and is based on a continuous signal implementation. It is backward incompatible but we think that the ease of use and speed improvements are worth it.
It requires minimal code changes from an usage standpoint compared to previous version, e.g.
colour.SpectralPowerDistribution
instantiation now requires spectral data as first argument:Colour 0.3.11
\>\>\> data = { ...500: 0.0651, ...520: 0.0705, ...540: 0.0772, ...560: 0.0870, ...580: 0.1128, ...600: 0.1360... } \>\>\> SpectralPowerDistribution(data)
Colour 0.3.10
\>\>\> data = { ...500: 0.0651, ...520: 0.0705, ...540: 0.0772, ...560: 0.0870, ...580: 0.1128, ...600: 0.1360... } \>\>\> SpectralPowerDistribution('Sample', data)
๐ The documentation has been entirely rewritten with an improved presentation and layout, the bibliography and cross-references have been fixed and overall it should be much easier and accessible than the interim automatic version previously used. It still misses a lot of context content but we will be gradually addressing that in future versions.
๐ As part of some import API changes, a deprecation system has been implement so that only key objects are exposed at the
colour
top level namespace. Thecolour.plotting
sub-package is also affected. As a result you might see warnings as such:\>\>\> import colour\>\>\> colour.tsplit/Users/kelsolaar/Documents/Development/colour-science/colour/colour/utilities/verbose.py:141: ColourWarning: "colour.tsplit" object access is deprecated and will change to "colour.utilities.tsplit" in a future release. warn(\*args, \*\*kwargs)\<function tsplit at 0x103152c08\>
๐ Please adjust your access accordingly to the warnings and the updated documentation. You can also find the related API changes exposed into the
colour.API_CHANGES
andcolour.plotting.API_CHANGES
attributes.๐ง We have also started to use Invoke to provide automation in our regular maintenance tasks.
๐ Features
colour.adaptation
- Implement
colour.chromatic_adaptation
definition wrapping the following definitions: (@KelSolaar)colour.adaptation.chromatic_adaptation_CIE1994
colour.adaptation.chromatic_adaptation_CMCCAT2000
colour.adaptation.chromatic_adaptation_Fairchild1990
colour.adaptation.chromatic_adaptation_VonKries
colour.algebra
- ๐ Implement
colour.NullInterpolator
class: a call within given tolerances will return existingy
variable values ordefault
if outside tolerances. (@KelSolaar) - Implement
colour.kernel_nearest_neighbour
,colour.kernel_linear
,colour.kernel_sinc
,colour.kernel_lanczos
, andcolour.kernel_cardinal_spline
interpolating kernel definitions for use with the newcolour.KernelInterpolator
class performing interpolation of a 1-D function. (@KelSolaar)
colour.appearance
- Implement support for CAM16 colour appearance model with
colour.XYZ_to_CAM16
andcolour.CAM16_to_XYZ
definitions. (@KelSolaar)
colour.continuous
- ๐ฆ Implement
colour.continuous.AbstractContinuousFunction
,colour.continuous.Signal
andcolour.continuous.MultiSignal
classes implementing support for continuous functions/signals representation. (@KelSolaar, @MichaelMauderer)
colour.difference
Implement support for Li et al. (2017) CAM16 based uniform colourspaces colour difference with
colour.difference.delta_E_CAM16LCD
,colour.difference.delta_E_CAM16SCD
, andcolour.difference.delta_E_CAM16UCS
definitions. (@KelSolaar)colour.delta_E
wrapper definition has been improved and accepts the following methods: (@KelSolaar)CIE 1976
CIE 1994
CIE 2000
CMC
CAM02-LCD
CAM02-SCD
CAM02-UCS
CAM16-LCD
CAM16-SCD
CAM16-UCS
colour.models
- Implement support for ITU-R BT.2100 transfer functions with the following definitions: (@KelSolaar, @nick-shaw)
colour.models.oetf_BT2100_PQ
colour.models.oetf_reverse_BT2100_PQ
colour.models.eotf_BT2100_PQ
colour.models.eotf_reverse_BT2100_PQ
colour.models.ootf_BT2100_PQ
colour.models.ootf_reverse_BT2100_PQ
colour.models.oetf_BT2100_HLG
colour.models.oetf_reverse_BT2100_HLG
colour.models.eotf_BT2100_HLG
colour.models.eotf_reverse_BT2100_HLG
colour.models.ootf_BT2100_HLG
colour.models.ootf_reverse_BT2100_HLG
- Implement support for SMPTE 240M transfer functions with
colour.models.oetf_SMPTE240M
andcolour.models.eotf_SMPTE240M
definitions. (@KelSolaar) - Implement
colour.oetf_reverse
andcolour.eotf_reverse
definitions andcolour.OETFS_REVERSE
andcolour.EOTFS_REVERSE
attributes defining relevant reverse OETF and EOTF conversions. (@KelSolaar, @nick-shaw, @KevinJW) - Implement
colour.legal_to_full
andcolour.full_to_legal
definitions providing conversions between full range and legal range. (@KelSolaar) - Implement
colour.CV_range
definition returning the Code Value range for given bit depth, range legality and representation. (@nick-shaw) - Implement support for Li et al. (2017) CAM16 based uniform colourspaces with
colour.JMh_CAM16_to_CAM16LCD
,colour.CAM16LCD_to_JMh_CAM16
,colour.JMh_CAM16_to_CAM16SCD
,colour.CAM16SCD_to_JMh_CAM16
,colour.JMh_CAM16_to_CAM16UCS
,CAM16UCS_to_JMh_CAM16
definitions. (@KelSolaar) - Implement
colour.RGB_Colourspace. __str__
andcolour.RGB_Colourspace. __repr__
methods.
(@KelSolaar)
colour.recovery
- Implement
colour.XYZ_to_spectral
definition wrapping the following definitions: (@KelSolaar)colour.recovery.XYZ_to_spectral_Meng2015
colour.recovery.RGB_to_spectral_Smits1999
colour.utilities
- Implement
colour.utilities.closest_indexes
definition that returnsa
array closest element indexes to referenceb
array elements. (@KelSolaar) - Implement
colour..utilities.fill_nan
definition that fills given array NaNs either through linear interpolation or with given constant value. (@KelSolaar) - Implement
colour.utilities.ndarray_write
context manager that sets given array writeable to perform an operation and then read-only. (@KelSolaar) - Implement
colour.utilities.first_item
definition that returns the first item of given iterable. (@KelSolaar)
๐ Fixes
colour.models
colour.models.log_encoding_CanonLog3
andcolour.models.log_decoding_CanonLog3
definitions implementation was slightly incorrect, they have been reimplemented correctly. (@nick-shaw, @KelSolaar)colour.models.log_encoding_SLog2
andcolour.models.log_decoding_SLog2
definitions implementation was incorrect, they have been reimplemented correctly. (@nick-shaw, @KelSolaar)
colour.plotting
- ๐ป
colour.plotting.display
definition was raising an exception when attempting to save a figure. (@KelSolaar)
colour.recovery
colour.recovery.XYZ_to_spectral_Meng2015
definition recovered spectral power distribution has been scaled by 100. (@KelSolaar)
colour.temperature
colour.temperature.uv_to_CCT_Ohno2013
definition was incorrectly using parabolic solution. (@brandondube, @KelSolaar)- As a consequence correlated colour temperature computations using Ohno (2013) method are slightly affected:
- CCT: 6507.51282029, 0.00322336 ---> 6507.47380460, 0.00322335
- CQS: 75.3424278440688 ---> 75.342591389578701
colour.utilities
colour.utilities.is_iterable
definition does not consume consumes the first item of given iterator. (@KelSolaar, @MichaelMauderer)
colour.volume
- MacAdam (1935) Optimal Colour Stimuli data for D65 illuminant taken from Centore (2012) had a reproduction error.
๐ Changes
colour.adaptation
colour.adaptation.chromatic_adaptation_CMCCAT2000
: (@KelSolaar)- Signature:
chromatic_adaptation_CMCCAT2000(XYZ, XYZ_w, XYZ_wr, L_A1, L_A2, surround=CMCCAT2000_VIEWING_CONDITIONS['Average'], direction='Forward')
- Signature:
colour.colorimetry
colour.DEFAULT_WAVELENGTH_DECIMALS
: (@KelSolaar)- Remove
colour.SpectralMapping
: (@KelSolaar)- Remove
colour.SpectralPowerDistribution
: (@KelSolaar)- Signature:
__init__ (self, data=None, domain=None, **kwargs)
colour.SpectralPowerDistribution.data
: (@KelSolaar)- Remove
colour.SpectralPowerDistribution.title
: (@KelSolaar)- Name:
SpectralPowerDistribution.strict_name
colour.SpectralPowerDistribution.items
: (@KelSolaar)- Remove
colour.SpectralPowerDistribution. __iter__
: (@KelSolaar)- Remove
colour.SpectralPowerDistribution.get
: (@KelSolaar)- Remove
colour.SpectralPowerDistribution.extrapolate
: (@KelSolaar)- Signature:
extrapolate(self, shape, extrapolator=None, extrapolator_args=None)
colour.SpectralPowerDistribution.interpolate
: (@KelSolaar)- Signature:
interpolate(self, shape, interpolator=None, interpolator_args=None)
colour.SpectralPowerDistribution.align
: (@KelSolaar)- Signature:
align(self, shape, interpolator=None, interpolator_args=None, extrapolator=None, extrapolator_args=None)
colour.SpectralPowerDistribution.trim_wavelengths
: (@KelSolaar)- Name:
SpectralPowerDistribution.trim
colour.SpectralPowerDistribution.zeros
: (@KelSolaar)- Remove
๐ฏ
colour.SpectralPowerDistribution.clone
: (@KelSolaar)- Name:
SpectralPowerDistribution.copy
colour.MultiSpectralPowerDistribution
: (@KelSolaar)- Signature:
__init__ (self, data=None, domain=None, labels=None, **kwargs)
colour.MultiSpectralPowerDistribution.mapping
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.data
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.title
: (@KelSolaar)- Name:
MultiSpectralPowerDistribution.strict_name
colour.MultiSpectralPowerDistribution.x
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.y
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.z
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.items
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution. __iter__
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.get
: (@KelSolaar)- Remove
colour.MultiSpectralPowerDistribution.extrapolate
: (@KelSolaar)- Signature:
extrapolate(self, shape, extrapolator=None, extrapolator_args=None)
colour.MultiSpectralPowerDistribution.interpolate
: (@KelSolaar)- Signature:
interpolate(self, shape, interpolator=None, interpolator_args=None)
colour.MultiSpectralPowerDistribution.align
: (@KelSolaar)- Signature:
align(self, shape, interpolator=None, interpolator_args=None, extrapolator=None, extrapolator_args=None)
colour.MultiSpectralPowerDistribution.trim_wavelengths
: (@KelSolaar)- Name:
MultiSpectralPowerDistribution.trim
colour.MultiSpectralPowerDistribution.zeros
: (@KelSolaar)- Remove
๐ฏ
colour.MultiSpectralPowerDistribution.clone
: (@KelSolaar)- Name:
MultiSpectralPowerDistribution.copy
colour.models
colour.models.log_encoding_SLog
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_SLog(x, bit_depth=10, out_legal=True, in_reflection=True)
- Note: The return value is now in legal range (studio swing).
- Signature:
colour.models.log_decoding_SLog
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_SLog(y, bit_depth=10, in_legal=True, out_reflection=True)
- Note: The input value is now in legal range (studio swing).
- Signature:
colour.models.log_encoding_SLog2
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_SLog2(x, bit_depth=10, out_legal=True, in_reflection=True)
- Note: The return value is now in legal range (studio swing).
- Signature:
colour.models.log_decoding_SLog2
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_SLog2(y, bit_depth=10, in_legal=True, out_reflection=True)
- Note: The input value is now in legal range (studio swing).
- Signature:
colour.models.log_encoding_SLog3
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_SLog3(x, bit_depth=10, out_legal=True, in_reflection=True)
- Note: The return value is now in legal range (studio swing).
- Signature:
colour.models.log_decoding_SLog3
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_SLog3(y, bit_depth=10, in_legal=True, out_reflection=True)
- Note: The input value is now in legal range (studio swing).
- Signature:
colour.models.log_encoding_VLog
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_VLog(L_in, bit_depth=10, out_legal=True, in_reflection=True)
- Signature:
colour.models.log_decoding_VLog
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_VLog(V_out, bit_depth=10, in_legal=True, out_reflection=True)
- Signature:
colour.models.log_encoding_CanonLog
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_CanonLog(x, bit_depth=10, out_legal=True, in_reflection=True)
- Note: The input value is now reflection according to ACES IDT.
- Signature:
colour.models.log_decoding_CanonLog
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_CanonLog(clog_ire, bit_depth=10, in_legal=True, out_reflection=True)
- Note: The output value is now reflection according to ACES IDT.
- Signature:
colour.models.log_encoding_CanonLog2
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_CanonLog2(x, bit_depth=10, out_legal=True, in_reflection=True)
- Note: The input value is now reflection according to ACES IDT.
- Signature:
colour.models.log_decoding_CanonLog2
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_CanonLog2(clog2_ire, bit_depth=10, in_legal=True, out_reflection=True)
- Note: The output value is now reflection according to ACES IDT.
- Signature:
colour.models.log_encoding_CanonLog3
: (@nick-shaw, @KelSolaar)- Signature:
log_encoding_CanonLog3(x, bit_depth=10, out_legal=True, in_reflection=True)
- Note: The input value is now reflection according to ACES IDT.
- Signature:
colour.models.log_decoding_CanonLog3
: (@nick-shaw, @KelSolaar)- Signature:
log_decoding_CanonLog3(clog3_ire, bit_depth=10, in_legal=True, out_reflection=True)
- Note: The output value is now reflection according to ACES IDT.
- Signature:
colour.models.eotf_ARIBSTDB67
: (@KelSolaar, @nick-shaw, @KevinJW)- Name:
oetf_reverse_ARIBSTDB67
- Name:
colour.models.eotf_BT709
: (@KelSolaar, @nick-shaw, @KevinJW)- Name:
oetf_reverse_BT709
- Name:
colour.models.oetf_BT1886
: (@KelSolaar, @nick-shaw, @KevinJW)- Name:
eotf_reverse_BT1886
- Name:
colour.models.eotf_sRGB
: (@KelSolaar, @nick-shaw, @KevinJW)- Name:
oetf_reverse_sRGB
- Name:
colour.models.ALEXA_WIDE_GAMUT_RGB_COLOURSPACE
: (@KelSolaar)- Name:
ALEXA_WIDE_GAMUT_COLOURSPACE
- Name:
colour.models.NTSC_RGB_COLOURSPACE
: (@KelSolaar)- Name:
NTSC_COLOURSPACE
- Name:
colour.models.PAL_SECAM_RGB_COLOURSPACE
: (@KelSolaar)- Name:
PAL_SECAM_COLOURSPACE
- Name:
colour.models.REC_709_COLOURSPACE
: (@KelSolaar, @nick-shaw, @KevinJW, @meshula)- Name:
BT709_COLOURSPACE
- Name:
colour.models.REC_2020_COLOURSPACE
: (@KelSolaar, @nick-shaw, @KevinJW, @meshula)- Name:
BT2020_COLOURSPACE
- Name:
colour.models.SMPTE_C_RGB_COLOURSPACE
: (@KelSolaar)- Name:
SMPTE_240M_COLOURSPACE
- Name:
colour.plotting
colour.plotting.CIE_1931_chromaticity_diagram_plot
: (@brandondube, @KelSolaar)- Name:
chromaticity_diagram_plot_CIE1931
- Signature: `chromaticity_diagram_plot_CIE1931(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, use_cached_diagram_colours=True, **kwargs)
- Name:
colour.plotting.CIE_1960_UCS_chromaticity_diagram_plot
: (@brandondube, @KelSolaar)- Name:
chromaticity_diagram_plot_CIE1960UCS
- Signature: `chromaticity_diagram_plot_CIE1960UCS(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, use_cached_diagram_colours=True, **kwargs)
- Name:
colour.plotting.CIE_1976_UCS_chromaticity_diagram_plot
: (@brandondube, @KelSolaar)- Name:
chromaticity_diagram_plot_CIE1976UCS
- Signature: `chromaticity_diagram_plot_CIE1976UCS(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, use_cached_diagram_colours=True, **kwargs)
- Name:
colour.plotting.spds_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Name:
spds_chromaticity_diagram_plot_CIE1931
- Signature:
spds_chromaticity_diagram_plot_CIE1931(spds, cmfs='CIE 1931 2 Degree Standard Observer', annotate=True, chromaticity_diagram_callable_CIE1931=(chromaticity_diagram_plot_CIE1931), **kwargs)
- Name:
colour.plotting.spds_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
spds_chromaticity_diagram_plot_CIE1960UCS
- Signature:
spds_chromaticity_diagram_plot_CIE1960UCS(spds, cmfs='CIE 1931 2 Degree Standard Observer', annotate=True, chromaticity_diagram_callable_CIE1960UCS=(chromaticity_diagram_plot_CIE1960UCS), **kwargs)
- Name:
colour.plotting.spds_CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
spds_chromaticity_diagram_plot_CIE1976UCS
- Signature:
spds_chromaticity_diagram_plot_CIE1976UCS(spds, cmfs='CIE 1931 2 Degree Standard Observer', annotate=True, chromaticity_diagram_callable_CIE1976UCS=(chromaticity_diagram_plot_CIE1976UCS), **kwargs)
- Name:
colour.plotting.RGB_colourspaces_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Name:
RGB_colourspaces_chromaticity_diagram_plot_CIE1931
- Signature:
RGB_colourspaces_chromaticity_diagram_plot_CIE1931(colourspaces=None, cmfs='CIE 1931 2 Degree Standard Observer', chromaticity_diagram_callable_CIE1931=(chromaticity_diagram_plot_CIE1931), **kwargs)
- Name:
colour.plotting.RGB_colourspaces_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
RGB_colourspaces_chromaticity_diagram_plot_CIE1960UCS
- Signature:
RGB_colourspaces_chromaticity_diagram_plot_CIE1960UCS(colourspaces=None, cmfs='CIE 1931 2 Degree Standard Observer', chromaticity_diagram_callable_CIE1960UCS=(chromaticity_diagram_plot_CIE1960UCS), **kwargs)
- Name:
colour.plotting.RGB_colourspaces_CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
RGB_colourspaces_chromaticity_diagram_plot_CIE1976UCS
- Signature:
RGB_colourspaces_chromaticity_diagram_plot_CIE1976UCS(colourspaces=None, cmfs='CIE 1931 2 Degree Standard Observer', chromaticity_diagram_callable_CIE1976UCS=(chromaticity_diagram_plot_CIE1976UCS), **kwargs)
- Name:
colour.plotting.RGB_chromaticity_coordinates_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Name:
RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1931
- Signature:
RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1931(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1931=(RGB_colourspaces_CIE_1931_chromaticity_diagram_plot), **kwargs)
- Name:
colour.plotting.RGB_chromaticity_coordinates_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1960UCS
- Signature:
RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1960UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1960UCS=(RGB_colourspaces_CIE_1960_UCS_chromaticity_diagram_plot), **kwargs)
- Name:
colour.plotting.RGB_chromaticity_coordinates_CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1976UCS
- Signature:
RGB_chromaticity_coordinates_chromaticity_diagram_plot_CIE1976UCS(RGB, colourspace='sRGB', chromaticity_diagram_callable_CIE1976UCS=(RGB_colourspaces_CIE_1976_UCS_chromaticity_diagram_plot), **kwargs)
- Name:
colour.plotting.planckian_locus_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Name:
planckian_locus_chromaticity_diagram_plot_CIE1931
- Signature:
planckian_locus_chromaticity_diagram_plot_CIE1931(illuminants=None, chromaticity_diagram_callable_CIE1931=(chromaticity_diagram_plot_CIE1931), **kwargs)
- Name:
colour.plotting.planckian_locus_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Name:
planckian_locus_chromaticity_diagram_plot_CIE1960UCS
- Signature:
planckian_locus_chromaticity_diagram_plot_CIE1960UCS(illuminants=None, chromaticity_diagram_callable_CIE1960UCS=(chromaticity_diagram_plot_CIE1960UCS), **kwargs)
- Name:
colour.utilities
colour.ArbitraryPrecisionMapping
: (@KelSolaar)- Remove
- Implement
-
v0.3.10 Changes
December 02, 2017Colour 0.3.10 - Alpha Milestone
Colour is now formatted using Yapf, the current configuration is subject to change but this will help contributors not using PyCharm to use their favourite editor while having the capability to format the contributed code to our Colour standard.
๐ Features
colour.biochemistry
- Implement support for MichaelisโMenten kinetics, a model of enzyme kinetics with
colour.reaction_rate_MichealisMenten
andcolour.substrate_concentration_MichealisMenten
definitions. (@KelSolaar)
colour.colorimetry
- Implement support for yellowness computation with colour.yellowness_ASTMD1925 and colour.yellowness_ASTME313 definitions. (@KelSolaar)
- Implement support for Fairchild and Wyble (2010)lightness computation with colour.lightness_Fairchild2010 definition. (@KelSolaar)
- Implement support for Fairchild and Wyble (2010)luminance computation with colour.luminance_Fairchild2010 definition. (@KelSolaar)
colour.models
- ๐ฒ Implement support for ARIB STD-B67 (Hybrid Log-Gamma) EOTF and OETF with
colour.eotf_ARIBSTDB67
andcolour.oetf_ARIBSTDB67
definitions. (@KelSolaar) - Implement support for DICOM - Grayscale Standard Display Function EOTF and OETF with
colour.eotf_DICOMGSDF
andcolour.oetf_DICOMGSDF
definitions. (@KelSolaar) - Implement support for Protune Native colourspace with
colour.PROTUNE_NATIVE_COLOURSPACE
colourspace class. (@KelSolaar) - Implement support for Protune log curves with
colour.log_encoding_Protune
andcolour.log_decoding_Protune
definitions. (@KelSolaar) - Implement support for Prismatic colourspace with
colour.RGB_to_Prismatic
andcolour.Prismatic_to_RGB
definitions. (@KelSolaar) - Implement support for hdr-CIELab and hdr-IPT colourspaces with
colour.XYZ_to_hdr_CIELab
,colour.hdr_CIELab_to_XYZ
,colour.XYZ_to_hdr_IPT
andcolour.hdr_IPT_to_XYZ
definitions. (@KelSolaar)
colour.recovery
- Implement support for Meng et al. reflectance recovery method with
colour.XYZ_to_spectral_Meng2015
definition. (@KelSolaar)
colour.utilities
- Implement
colour.as_namedtuple
definition that attempts to convert given array_like, Mapping or Numpy structured array to namedtuple. (@KelSolaar)
๐ Fixes
colour.appearance
colour.XYZ_to_CIECAM02
andcolour.CIECAM02_to_XYZ
definitions handles negative numbers gracefully as per CIECAM02 and Its Recent Developments (@crowsonkb)
colour.colorimetry.
colour.TriSpectralPowerDistribution.items
method was broken. (@KelSolaar)
colour.models
colour.eotf_BT1886
andcolour.oetf_BT1886
definitions default argumentsL_B
andL_W
had their default values changed from respectively 64 and 940 to 0 and 1. (@KelSolaar, @nick-shaw)
๐ Changes
colour.appearance
- colour.CIECAM02_to_XYZ: (@KelSolaar, @crowsonkb)
- Signature:
CIECAM02_to_XYZ(CIECAM02_specification, XYZ_w, L_A, Y_b, surround=CIECAM02_VIEWING_CONDITIONS['Average'], discount_illuminant=False)
- Signature:
colour.colorimetry
- colour.whiteness_ASTM313: (@KelSolaar)
- Name:
whiteness_ASTME313
- Name:
colour.models
colour.eotf_BT1886
: (@KelSolaar, @nick-shaw)- Signature:
eotf_BT1886(V, L_B=0, L_W=1)
- Signature:
colour.oetf_BT1886
: (@KelSolaar, @nick-shaw)- Signature:
oetf_BT1886(L, L_B=0, L_W=1)
- Signature:
colour.gamma_function
: (@KelSolaar)- Name:
function_gamma
- Name:
colour.linear_function
: (@KelSolaar)- Name:
function_linear
- Name:
- Implement support for MichaelisโMenten kinetics, a model of enzyme kinetics with
-
v0.3.9 Changes
March 12, 2017Colour 0.3.9 - Alpha Milestone
๐ Features
colour.characterisation
- Add camera spectral sensitivities for Nikon 5100 and Sigma SDMerill measured by the National Physical Laboratory and available from
colour.CAMERAS_RGB_SPECTRAL_SENSITIVITIES
attribute. (@KelSolaar)
colour.colorimetry
colour.SpectralPowerDistribution
andcolour.TriSpectralPowerDistribution
classes have been optimised and are now 6.5 times faster on usual computations. (@KelSolaar)
colour.difference
- Implement support for Luo et al. (2006) CIECAM02 based uniform colourspaces colour difference with
colour.delta_E_CAM02LCD
,colour.delta_E_CAM02SCD
, andcolour.delta_E_CAM02UCS
definitions. (@KelSolaar)
colour.plotting
- Implement
colour.plotting.colour_plotting_defaults
definition that installs Colour default plotting parameters, this implies that Colour will now not override Matplotlib rc parameters on import. (@KelSolaar)
colour.quality
colour.colour_quality_scale
definition has been optimised and is now 10.5 times faster, its return value is minorly altered. (@KelSolaar)colour.colour_rendering_index
definition has been optimised and is now 13.1 times faster, its return value is minorly altered. (@KelSolaar)
colour.models
- Implement support for Luo et al. (2006) CIECAM02 based uniform colourspaces with
colour.JMh_CIECAM02_to_CAM02LCD
,colour.CAM02LCD_to_JMh_CIECAM02
,colour.JMh_CIECAM02_to_CAM02SCD
,colour.CAM02SCD_to_JMh_CIECAM02
,colour.JMh_CIECAM02_to_CAM02UCS
andcolour.CAM02UCS_to_JMh_CIECAM02
definitions. (@KelSolaar) - Implement support for Dolby ICTCP colourspace with
colour.RGB_to_ICTCP
andcolour.ICTCP_to_RGB
definitions. (@KelSolaar) - ๐ Implement support for two sets of transformations matrices in
colour.RGB_Colourspace
class whose purpose is to support both literature defined dataset and accurate computations enabling transformations without loss of precision.colour.RGB_Colourspace.use_derived_RGB_to_XYZ_matrix
andcolour.RGB_Colourspace.use_derived_XYZ_to_RGB_matrix
attributes and thecolour.RGB_Colourspace.use_derived_transformation_matrices
method have been introduced to alter the behaviour of the class on a per user need basis. (@KelSolaar, @KevinJW, @nick-shaw, @MichaelMauderer) - ๐ฒ Implement support for Canon Log 2 and Canon Log 3 log curves with
colour.log_encoding_CanonLog2
,colour.log_decoding_CanonLog2
,colour.log_encoding_CanonLog3
andcolour.log_decoding_CanonLog3
definitions. (@KelSolaar) - Implement support for RedWideGamut RGB colourspace and Log3G10, Log3G12 log curves with respectively
colour.RED_WIDE_GAMUT_RGB
colourspace class andcolour.log_encoding_Log3G10
,colour.log_decoding_Log3G10
,colour.log_encoding_Log3G12
,colour.log_decoding_Log3G12
definitions. (@nick-shaw) - Implement support for ACEScct colourspace and ACEScct log curves with respectively
colour.ACES_CCT_COLOURSPACE
colourspace class andcolour.log_encoding_ACEScct
,colour.log_encoding_ACEScct
definitions. (@scooperxyz) - Implement
colour.RGB_to_RGB_matrix
definition computing the matrix converting from given input RGB colourspace to output RGB colourspace. (@KelSolaar, @KevinJW)
colour.temperature
- Implement support for Krystek (1985) correlated colour temperature to chromaticity coordinates uv computation with colour.CCT_to_uv_Krystek1985 definition. (@KelSolaar)
colour.uv_to_CCT_Ohno2013
definition has been optimised and is now 15.7 times faster. (@KelSolaar)colour.CCT_to_uv_Ohno2013
definition has been optimised and is now ? times faster. (@KelSolaar)
colour.utilities
- Implement
colour.linear_conversion
definition performing a simple linear conversion of given array between the old and new range. (@KelSolaar)
๐ Changes
colour.algebra
colour.cartesian_to_cylindrical
: (@KelSolaar)- Returns: Cylindrical coordinates array (radial distance ฯ, azimuth ฯ, and height z)
colour.cylindrical_to_cartesian
: (@KelSolaar)- Signature:
cylindrical_to_cartesian(a)
, cylindrical coordinates array (radial distance ฯ, azimuth ฯ, and height z)
- Signature:
colour.characterisation
colour.characterisation.dataset.colour_checkers.chromaticity_coordinates.ColourChecker_Specification
: (@KelSolaar)- Signature:
ColourChecker_Specification('index', 'name', 'xyY')
- Signature:
colour.colorimetry
colour.DEFAULT_SPECTRAL_SHAPE
: (@KelSolaar)- Value:
SpectralShape(360, 780, 1)
- Value:
colour.models
colour.log_encoding_ACESproxy
: (@KelSolaar)- Signature:
log_encoding_ACESproxy(lin_AP1, bit_depth='10 Bit')
- Signature:
colour.log_encoding_ACEScc
: (@KelSolaar)- Signature:
log_encoding_ACEScc(lin_AP1)
- Signature:
colour.oetf_ROMMRGB
: (@KelSolaar)- Signature:
oetf_ROMMRGB(X, I_max=255)
- Signature:
colour.eotf_ROMMRGB
: (@KelSolaar)- Signature:
eotf_ROMMRGB(X_p, I_max=255)
- Signature:
- The following RGB colourspaces XYZ to RGB matrix have been replaced by their specified one if existing: (@KelSolaar)
- ACES Primaries 0
- Adobe RGB (1998)
- ALEXA Wide Gamut RGB
- CIE RGB
- ROMM RGB
- sRGB
- V-Gamut
colour.RGB_to_RGB
: (@KelSolaar, @scooperxyz)- Signature:
RGB_to_RGB(RGB, input_colourspace, output_colourspace, chromatic_adaptation_transform='CAT02', apply_decoding_cctf=False, apply_encoding_cctf=False)
- Signature:
colour.plotting
colour.plotting.multi_colour_plot
: (@KelSolaar)- Signature:
multi_colour_plot(colour_parameters, width=1, height=1, spacing=0, across=3, text_display=True, text_size='large', text_offset=0.075, background_colour=(1.0, 1.0, 1.0), **kwargs)
- Signature:
colour.temperature
colour.CCT_to_uv
: (@KelSolaar)- Signature:
CCT_to_uv(CCT, method='Ohno 2013', **kwargs)
- Signature:
- Add camera spectral sensitivities for Nikon 5100 and Sigma SDMerill measured by the National Physical Laboratory and available from
-
v0.3.8 Changes
July 31, 2016Colour 0.3.8 - Alpha Milestone
This release introduces important backward incompatible changes on various spectral computations, illuminants chromaticity coordinates and RGB colourspace model related objects, please carefully refer to the Changes section.
A Jupyter Notebook is available to illustrate the expected computational differences: they should remain orders of magnitude under visual discrimination threshold however they will likely create computational discrepancies.
With Colour 0.3.8, SciPy is now a requirement.
๐ @MichaelMauderer and I would like to thanks all the contributors for that release whether they contribute to the code or participate in discussions.
๐ Features
colour.algebra
- Implement
colour.lagrange_coefficients
definition computing Lagrange Coefficients at given point for given degree. (@KelSolaar) - Implement
colour.normalise_vector
definition performing vector normalisation. (@KelSolaar) - Implement
colour.euclidean_distance
definition computing the euclidean distance between two vector arrays. (@KelSolaar) - Implement
colour.intersect_line_segments
definition performing line segment intersections computations. (@KelSolaar)
colour.characterisation
- ๐ Implement
colour.RGB_DisplayPrimaries
class providing support for RGB displays primaries tri-spectral power distributions. (@KelSolaar)
colour.characterisation.dataset
- Add Apple Studio Display RGB display primaries tri-spectral power distributions.(@KelSolaar)
- Add Typical CRT Brainard 1997 RGB display primaries tri-spectral power distributions.(@KelSolaar)
colour.colorimetry
- Implement
colour.CIE_standard_illuminant_A_function
definition computing CIE Standard Illuminant A value at given wavelength range. (@KelSolaar) - Implement
colour.SpectralShape.boundaries
method returning the boundaries start and end values of given shape. (@KelSolaar) - Implement
colour.SpectralPowerDistribution.trim_wavelengths
andcolour.TriSpectralPowerDistribution.trim_wavelengths
methods trimming their respective classes wavelength range to given shape. (@KelSolaar, @MichaelMauderer, @Ron024) - Implement
colour.dominant_wavelength
definition computing the dominant wavelength of a given colour stimulus xy chromaticity coordinates. (@KelSolaar) - Implement
colour.complementary_wavelength
definition computing the complementary wavelength of a given colour stimulus xy chromaticity coordinates. (@KelSolaar) - Implement
colour.excitation_purity
definition computing the excitation purity of a given colour stimulus xy chromaticity coordinates. (@KelSolaar) - Implement
colour.colorimetric_purity
definition computing the colorimetric purity of a given colour stimulus xy chromaticity coordinates. (@KelSolaar) - Implement
colour.tristimulus_weighting_factors_ASTME202211
definition computing tristimulus weighting factors tables using practise ASTM E2022โ11 method. (@KelSolaar, @MichaelMauderer ) - Implement
colour.spectral_to_XYZ_integration
definition converting given spectral power distribution to CIE XYZ tristimulus values using given colour matching functions and illuminant accordingly to classical integration method. (@KelSolaar) - Implement
colour.spectral_to_XYZ_tristimulus_weighting_factors_ASTME30815
definition converting given spectral power distribution to CIE XYZ tristimulus values using given colour matching functions and illuminant accordingly to practise ASTM E308โ15 method. (@KelSolaar, @MichaelMauderer ) - Implement
colour.spectral_to_XYZ_ASTME30815
definition converting given spectral power distribution to CIE XYZ tristimulus values accordingly to practise ASTM E308โ15 method. (@KelSolaar, @MichaelMauderer ) - Implement
colour.luminous_efficiency
definition computing Luminous Efficiency of given spectral power distribution. (@KelSolaar, @canavandl)
colour.colorimetry.dataset
- Add Smith & Pokorny 1975 Normal Trichromats colour matching functions. (@KelSolaar)
- Add various HunterLab illuminants data. Please refer to the
colour.colorimetry.dataset.illuminants.hunterlab
documentation references for links to more information. (@KelSolaar, @Ron024)
colour.corresponding
- Implement
colour.corresponding_chromaticities_prediction
generic corresponding chromaticities prediction definition. (@KelSolaar)
colour.models
- Implement support for Hunter L,a,b and Hunter Rd,a,b colour scales with
colour.XYZ_to_Hunter_Lab
,colour.Hunter_Lab_to_XYZ
andcolour.XYZ_to_Hunter_Rdab
definitions. (@KelSolaar, @Ron024) - Implement support for YCbCr and YcCbcCrc colour encodings with
colour.RGB_to_YCbCr
,colour.YCbCr_to_RGB
,colour.RGB_to_YcCbcCrc
andcolour.YcCbcCrc_to_RGB
definitions. (@nick-shaw, @KelSolaar, @KevinJW) - Implement support for BT 1886 EOTF and OETF with
colour.eotf_BT1886
andcolour.eotf_BT1886
definitions. (@KelSolaar) - Implement support for ST 2084 EOTF and OETF with
colour.eotf_ST2084
andcolour.oetf_ST2084
definitions. (@KelSolaar) - Implement explicit support for REDLog log encoding curve with
colour.log_encoding_REDLog
andcolour.log_decoding_REDLog
definitions. (@nick-shaw, @KelSolaar) - Implement support for ACESproxy log encoding curve with
colour.log_encoding_ACESproxy
andcolour.log_decoding_ACESproxy
definitions. (@KelSolaar) - Implement complete support for RIMM / ROMM / ERIMM encodings with
colour.oetf_ROMMRGB
,colour.eotf_ROMMRGB
,colour.oetf_RIMMRGB
,colour.eotf_RIMMRGB
,colour.log_encoding_ERIMMRGB
andcolour.log_decoding_ERIMMRGB
definitions andcolour.ROMM_RGB_COLOURSPACE
,colour.RIMM_RGB_COLOURSPACE
,colour.ERIMM_RGB_COLOURSPACE
andcolour.PROPHOTO_RGB_COLOURSPACE
classes. (@KelSolaar) - ๐ Implement support for generic gamma encoding / decoding function with
colour.gamma_function
definition. (@KelSolaar) - ๐ Implement support for generic linear encoding / decoding function with
colour.linear_function
definition. (@KelSolaar) - Implement
colour.oetf
andcolour.eotf
definitions andcolour.OETFS
andcolour.EOTFS
attributes providing single point access to supported OETFs and EOTFs. (@KelSolaar)
colour.utilities
- Implement
colour.centroid
definition computing array centroid indexes. - Implement
colour.orient
definition performing array rotation, flip and flop. - Implement
colour.filter_kwargs
definition filtering incompatible keyword arguments with given function signature. - โ Implement
colour.filter_warnings
definition filtering API warnings.
๐ Fixes
colour.colorimetry
colour.luminous_efficiency
definition was incorrectly returning the luminous efficacy and has been renamed accordingly. The currentcolour.luminous_efficiency
definition now properly returns luminous efficiency. (@KelSolaar, @canavandl)
colour.plotting
colour.plotting.nadir_grid
had various issues and wasn't working properly since Colour 0.3.7. (@KelSolaar)
colour.io
colour.write_spds_to_csv_file
definition now correctly writes CSV files without extra line breaks on Windows. (@Ron024)
colour.models
colour.linear_to_red_log_film
andcolour.red_log_film_to_linear
definitions are now properly based on the Cineon curve. (@nick-shaw, @KelSolaar)
๐ Changes
colour.adaptation
colour.CMCCAT2000_forward
: (@KelSolaar)- Name:
colour.chromatic_adaptation_forward_CMCCAT2000
- Name:
colour.CMCCAT2000_reverse
: (@KelSolaar)- Name:
colour.chromatic_adaptation_reverse_CMCCAT2000
- Name:
colour.algebra
colour.is_identity
: (@KelSolaar)- Signature:
colour.is_identity(a, n=3)
- Signature:
colour.cartesian_to_spherical
: (@KelSolaar)- Signature:
colour.cartesian_to_spherical(a)
- Signature:
colour.spherical_to_cartesian
: (@KelSolaar)- Signature:
colour.spherical_to_cartesian(a)
- Signature:
colour.cartesian_to_cylindrical
: (@KelSolaar)- Signature:
colour.cartesian_to_cylindrical(a)
- Signature:
colour.cylindrical_to_cartesian
: (@KelSolaar)- Signature:
colour.cylindrical_to_cartesian(a)
- Signature:
colour.characterisation
colour.first_order_colour_fit
: (@KelSolaar)- Signature:
colour.first_order_colour_fit(m_1, m_2)
- Signature:
colour.colorimetry
colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D50']
: (@KelSolaar)- Value:
(0.34570, 0.35850)
- Value:
colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65']
: (@KelSolaar)- Value:
(0.31270, 0.32900)
- Value:
colour.SpectralShape.steps
: (@KelSolaar)- Name:
colour.SpectralShape.interval
- Name:
colour.SpectralPowerDistribution
andcolour.TriSpectralPowerDistribution
classes arithmetical operations such
โ as addition , subtraction , multiplication , division and exponentiation are not happening in-place anymore. This behaviour is now supported through augmented assignment operators:spd /= np.max(spd.values)
instead ofspd / np.max(spd.values)
. (@KelSolaar)colour.SpectralPowerDistribution.align
: (@KelSolaar)- Signature:
colour.SpectralPowerDistribution.align(self, shape, interpolation_method=None, extrapolation_method='Constant', extrapolation_left=None, extrapolation_right=None)
- Signature:
colour.TriSpectralPowerDistribution.align
: (@KelSolaar)- Signature:
colour.TriSpectralPowerDistribution.align(self, shape, interpolation_method=None, extrapolation_method='Constant', extrapolation_left=None, extrapolation_right=None)
- Signature:
colour.spectral_to_XYZ
: (@KelSolaar)- Behaviour:
colour.spectral_to_XYZ
definition will now use practise ASTM E308โ15 method instead of classical integration. - Signature:
colour.spectral_to_XYZ(spd, cmfs=STANDARD_OBSERVERS_CMFS.get('CIE 1931 2 Degree Standard Observer'), illuminant=ones_spd(STANDARD_OBSERVERS_CMFS.get('CIE 1931 2 Degree Standard Observer').shape), method='ASTM E308โ15', **kwargs)
- Behaviour:
colour.lightness_1976
: (@KelSolaar)- Name:
colour.lightness_CIE1976
- Name:
colour.luminance_1976
: (@KelSolaar)- Name:
colour.luminance_CIE1976
- Name:
colour.luminous_efficiency
: (@KelSolaar, @canavandl)- Name:
colour.luminous_efficacy
- Name:
colour.difference
colour.delta_E_CIE1976
: (@KelSolaar)- Signature:
colour.delta_E_CIE1976(Lab_1, Lab_2, **kwargs)
- Signature:
colour.delta_E_CIE1994
: (@KelSolaar)- Signature:
colour.delta_E_CIE1994(Lab_1, Lab_2, textiles=False, **kwargs)
- Signature:
colour.delta_E_CIE2000
: (@KelSolaar)- Signature:
colour.delta_E_CIE2000(Lab_1, Lab_2, textiles=False, **kwargs)
- Signature:
colour.delta_E_CMC
: (@KelSolaar)- Signature:
colour.delta_E_CMC(Lab_1, Lab_2, l=2, c=1)
- Signature:
colour.models
- RGB colourspace model related objects have been moved to a dedicated sub-package:
colour.models.rgb
. (@KelSolaar) - RGB colourspace model OETF / EOTF, log encoding curves have been moved have been moved to a dedicated sub-package:
colour.models.rgb.transfer_functions
. (@KelSolaar) colour.RGB_Colourspace.OECF
: (@KelSolaar)- Name:
colour.RGB_Colourspace.encoding_cctf
- Name:
colour.RGB_Colourspace.EOCF
: (@KelSolaar)- Name:
colour.RGB_Colourspace.decoding_cctf
- Name:
colour.XYZ_to_sRGB
: (@KelSolaar)- Signature:
colour.XYZ_to_sRGB(XYZ, illuminant=RGB_COLOURSPACES.get('sRGB').whitepoint, chromatic_adaptation_transform='CAT02', apply_encoding_cctf=True)
- Signature:
colour.sRGB_to_XYZ
: (@KelSolaar)- Signature:
colour.sRGB_to_XYZ(RGB, illuminant=RGB_COLOURSPACES.get('sRGB').whitepoint, chromatic_adaptation_method='CAT02', apply_decoding_cctf=True)
- Signature:
colour.linear_to_cineon
: (@KelSolaar)- Name:
colour.log_encoding_Cineon
- Name:
colour.cineon_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_Cineon
- Name:
colour.linear_to_panalog
: (@KelSolaar)- Name:
colour.log_encoding_Panalog
- Name:
colour.panalog_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_Panalog
- Name:
colour.linear_to_viper_log
: (@KelSolaar)- Name:
colour.log_encoding_ViperLog
- Name:
- ๐ฒ
colour.viper_log_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_ViperLog
- Name:
colour.linear_to_pivoted_log
: (@KelSolaar)- Name:
colour.log_encoding_PivotedLog
- Name:
- ๐ฒ
colour.pivoted_log_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_PivotedLog
- Name:
colour.linear_to_c_log
: (@KelSolaar)- Name:
colour.log_encoding_CLog
- Name:
- ๐ฒ
colour.c_log_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_CLog
- Name:
colour.linear_to_aces_cc
: (@KelSolaar)- Name:
colour.log_encoding_ACEScc
- Name:
colour.aces_cc_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_ACEScc
- Name:
colour.linear_to_alexa_log_c
: (@KelSolaar)- Name:
colour.log_encoding_ALEXALogC
- Name:
- ๐ฒ
colour.alexa_log_c_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_ALEXALogC
- Name:
colour.linear_to_red_log_film
: (@KelSolaar)- Name:
colour.log_encoding_REDLogFilm
- Name:
- ๐ฒ
colour.red_log_film_to_linear
: (@KelSolaar)- Name:
colour.log_encoding_SLog
- Name:
colour.linear_to_s_log
: (@KelSolaar)- Name:
colour.log_encoding_SLog
- Name:
- ๐ฒ
colour.s_log_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_SLog
- Name:
colour.linear_to_s_log2
: (@KelSolaar)- Name:
colour.log_encoding_SLog2
- Name:
colour.s_log2_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_SLog2
- Name:
colour.linear_to_s_log3
: (@KelSolaar)- Name:
colour.log_encoding_SLog3
- Name:
colour.s_log3_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_SLog3
- Name:
colour.linear_to_v_log
: (@KelSolaar)- Name:
colour.log_encoding_VLog
- Name:
- ๐ฒ
colour.v_log_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_VLog
- Name:
colour.LINEAR_TO_LOG_METHODS
: (@KelSolaar)- Name:
colour.LOG_ENCODING_METHODS
- Name:
colour.linear_to_log
: (@KelSolaar)- Name:
colour.log_encoding_curve
- Name:
colour.LOG_TO_LINEAR_METHODS
: (@KelSolaar)- Name:
colour.LOG_DECODING_METHODS
- Name:
colour.log_to_linear
: (@KelSolaar)- Name:
colour.log_decoding_curve
- Name:
colour.RGB_COLOURSPACES['Adobe RGB 1998']
: (@KelSolaar)- Name:
colour.RGB_COLOURSPACES['Adobe RGB (1998)']
- Name:
colour.ACES_2065_1_OECF
: (@KelSolaar)- Remove
colour.ACES_2065_1_EOCF
: (@KelSolaar)- Remove
colour.ACES_CG_OECF
: (@KelSolaar)- Remove
colour.ACES_CG_EOCF
: (@KelSolaar)- Remove
colour.ACES_CC_OECF
: (@KelSolaar)- Remove
colour.ACES_CC_EOCF
: (@KelSolaar)- Remove
colour.ACES_PROXY_OECF
: (@KelSolaar)- Remove
colour.ACES_PROXY_EOCF
: (@KelSolaar)- Remove
colour.ADOBE_RGB_1998_OECF
: (@KelSolaar)- Remove
colour.ADOBE_RGB_1998_EOCF
: (@KelSolaar)- Remove
colour.ADOBE_WIDE_GAMUT_RGB_OECF
: (@KelSolaar)- Remove
colour.ADOBE_WIDE_GAMUT_RGB_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.ALEXA_LOG_C_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.ALEXA_LOG_C_EOCF
: (@KelSolaar)- Remove
colour.APPLE_RGB_OECF
: (@KelSolaar)- Remove
colour.APPLE_RGB_EOCF
: (@KelSolaar)- Remove
colour.BEST_RGB_OECF
: (@KelSolaar)- Remove
colour.BEST_RGB_EOCF
: (@KelSolaar)- Remove
colour.BETA_RGB_OECF
: (@KelSolaar)- Remove
colour.BETA_RGB_EOCF
: (@KelSolaar)- Remove
colour.CIE_RGB_OECF
: (@KelSolaar)- Remove
colour.CIE_RGB_EOCF
: (@KelSolaar)- Remove
colour.CINEMA_GAMUT_OECF
: (@KelSolaar)- Remove
colour.CINEMA_GAMUT_EOCF
: (@KelSolaar)- Remove
colour.COLOR_MATCH_RGB_OECF
: (@KelSolaar)- Remove
colour.COLOR_MATCH_RGB_EOCF
: (@KelSolaar)- Remove
colour.DCI_P3_OECF
: (@KelSolaar)- Remove
colour.DCI_P3_EOCF
: (@KelSolaar)- Remove
colour.DCI_P3_OECF
: (@KelSolaar)- Remove
colour.DCI_P3_EOCF
: (@KelSolaar)- Remove
colour.DON_RGB_4_OECF
: (@KelSolaar)- Remove
colour.DON_RGB_4_EOCF
: (@KelSolaar)- Remove
colour.ECI_RGB_V2_OECF
: (@KelSolaar)- Remove
colour.ECI_RGB_V2_EOCF
: (@KelSolaar)- Remove
colour.EKTA_SPACE_PS_5_OECF
: (@KelSolaar)- Remove
colour.EKTA_SPACE_PS_5_EOCF
: (@KelSolaar)- Remove
colour.MAX_RGB_OECF
: (@KelSolaar)- Remove
colour.MAX_RGB_EOCF
: (@KelSolaar)- Remove
colour.NTSC_RGB_OECF
: (@KelSolaar)- Remove
colour.NTSC_RGB_EOCF
: (@KelSolaar)- Remove
colour.PAL_SECAM_RGB_OECF
: (@KelSolaar)- Remove
colour.PAL_SECAM_RGB_EOCF
: (@KelSolaar)- Remove
colour.PROPHOTO_RGB_OECF
: (@KelSolaar)- Remove
colour.PROPHOTO_RGB_EOCF
: (@KelSolaar)- Remove
colour.REC_2020_OECF
: (@KelSolaar)- Remove
colour.REC_2020_EOCF
: (@KelSolaar)- Remove
colour.REC_709_OECF
: (@KelSolaar)- Remove
colour.REC_709_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.RED_LOG_EOCF
: (@KelSolaar)- Remove
colour.RUSSELL_RGB_OECF
: (@KelSolaar)- Remove
colour.RUSSELL_RGB_EOCF
: (@KelSolaar)- Remove
colour.SMPTE_C_RGB_OECF
: (@KelSolaar)- Remove
colour.SMPTE_C_RGB_EOCF
: (@KelSolaar)- Remove
colour.S_LOG2_OECF
: (@KelSolaar)- Remove
colour.S_LOG2_EOCF
: (@KelSolaar)- Remove
colour.S_LOG3_OECF
: (@KelSolaar)- Remove
colour.S_LOG3_EOCF
: (@KelSolaar)- Remove
colour.S_LOG3_OECF
: (@KelSolaar)- Remove
colour.S_LOG3_EOCF
: (@KelSolaar)- Remove
colour.sRGB_OECF
: (@KelSolaar)- Remove
colour.sRGB_EOCF
: (@KelSolaar)- Remove
- ๐ฒ
colour.V_LOG_OECF
: (@KelSolaar)- Remove
- ๐ฒ
colour.V_LOG_EOCF
: (@KelSolaar)- Remove
colour.XTREME_RGB_OECF
: (@KelSolaar)- Remove
colour.XTREME_RGB_EOCF
: (@KelSolaar)- Remove
colour.plotting
colour.plotting.decorate
: (@KelSolaar)- Keyword Argument:
no_axes3d
renamed tono_axes
.
- Keyword Argument:
colour.plotting.camera
: (@KelSolaar)- Returns: Axes, Current axes.
colour.plotting.decorate
: (@KelSolaar)- Returns: Axes, Current axes.
colour.plotting.boundaries
: (@KelSolaar)- Returns: Axes, Current axes.
colour.plotting.display
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.CIE_1931_chromaticity_diagram_colours_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.CIE_1931_chromaticity_diagram_plot
: (@KelSolaar, @MichaelMauderer, @scooperly)- Signature:
CIE_1931_chromaticity_diagram_plot(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, **kwargs)
- Returns: Figure, Current figure or None
- Signature:
colour.plotting.CIE_1960_UCS_chromaticity_diagram_colours_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar, @MichaelMauderer, @scooperly)- Signature:
CIE_1960_UCS_chromaticity_diagram_plot(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, **kwargs)
- Returns: Figure, Current figure or None
- Signature:
colour.plotting.CIE_1976_UCS_chromaticity_diagram_colours_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar, @MichaelMauderer, @scooperly)- Signature:
CIE_1976_UCS_chromaticity_diagram_plot(cmfs='CIE 1931 2 Degree Standard Observer', show_diagram_colours=True, **kwargs)
- Returns: Figure, Current figure or None
- Signature:
colour.plotting.RGB_chromaticity_coordinates_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.RGB_chromaticity_coordinates_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.RGB_chromaticity_coordinates_CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.RGB_colourspaces_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Signature:
RGB_chromaticity_coordinates_CIE_1931_chromaticity_diagram_plot(RGB, colourspace, **kwargs)
- Returns: Figure, Current figure or None
- Signature:
colour.plotting.RGB_colourspaces_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Signature:
RGB_colourspaces_CIE_1960_UCS_chromaticity_diagram_plot(RGB, colourspace, **kwargs)
- Returns: Figure, Current figure or None
- Signature:
colour.plotting.RGB_colourspaces_CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Signature:
RGB_colourspaces_CIE_1976_UCS_chromaticity_diagram_plot(RGB, colourspace, **kwargs)
- Returns: Figure, Current figure or None
- Signature:
colour.plotting.RGB_colourspaces_gamuts_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.RGB_scatter_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.blackbody_colours_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.blackbody_spectral_radiance_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.colour_parameters_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.colour_quality_bars_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.corresponding_chromaticities_prediction_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.image_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_cmfs_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_colour_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_conversion_function_plot
: (@KelSolaar)- Name:
colour.plotting.multi_cctf_plot
- Signature:
colour.plotting.multi_cctf_plot(colourspaces=None, decoding_cctf=False, **kwargs)
- Returns: Figure, Current figure or None
- Name:
colour.plotting.multi_illuminants_relative_spd_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_lightness_function_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_munsell_value_function_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_spd_colour_quality_scale_bars_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_spd_colour_rendering_index_bars_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.multi_spd_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.planckian_locus_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.planckian_locus_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_cmfs_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_colour_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_conversion_function_plot
: (@KelSolaar)- Name:
colour.plotting.single_cctf_plot
- Signature:
colour.plotting.single_cctf_plot(colourspace=None, decoding_cctf=False, **kwargs)
- Returns: Figure, Current figure or None
- Name:
colour.plotting.single_illuminant_relative_spd_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_lightness_function_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_munsell_value_function_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_rayleigh_scattering_spd_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_spd_colour_quality_scale_bars_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_spd_colour_rendering_index_bars_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.single_spd_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.spds_CIE_1931_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.spds_CIE_1960_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.spds_CIE_1976_UCS_chromaticity_diagram_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.the_blue_sky_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.plotting.visible_spectrum_plot
: (@KelSolaar)- Returns: Figure, Current figure or None
colour.utilities
colour.as_numeric
: (@KelSolaar)- Signature:
colour.as_numeric(a, type_=np.float_)
- Signature:
colour.closest
: (@KelSolaar)- Signature:
colour.closest(a, b)
- Signature:
colour.normalise
: (@KelSolaar)- Name:
colour.normalise_maximum
- Signature:
colour.normalise_maximum(a, axis=None, factor=1, clip=True)
- Name:
colour.steps
: (@KelSolaar)- Name:
colour.interval
- Name:
colour.is_iterable
: (@KelSolaar)- Signature:
colour.is_iterable(a)
- Signature:
colour.is_string
: (@KelSolaar)- Signature:
colour.is_string(a)
- Signature:
colour.is_numeric
: (@KelSolaar)- Signature:
colour.is_numeric(a)
- Signature:
colour.is_integer
: (@KelSolaar)- Signature:
colour.is_integer(a)
- Signature:
colour.is_scipy_installed
: (@KelSolaar)- Remove
- Implement
-
v0.3.7 Changes
December 27, 2017Colour 0.3.7 - Alpha Milestone
๐ Features
API Reference
- ๐ The documentation is now hosted on Read the Docs.
Distribution
- Python 2.7 and 3.5 wheels are now available on Pypi.
colour.models
- Implement
colour.chromatically_adapted_primaries
definition performing chromatic adaptation of a given RGB colourspace primaries. (@KelSolaar) colour.REC_709_COLOURSPACE.EOCF
definition will issue a warning when used. (@KevinJW, @KelSolaar)
colour.plotting
colour.plotting.image_plot
definition can now plot single channel images. (@KelSolaar)
colour.utilities
- ๐ Implement
colour.ArbitraryPrecisionMapping
class based providing support for floating point keys by rounding them at a specific decimals count. (@KelSolaar)
๐ Fixes
colour.colorimetry.dataset
- Add missing F11 illuminant chromaticity coordinates for CIE 1931 2 Degree Standard Observer. (@henczati, @KelSolaar)
colour.models.dataset
- ACEScg colourspace was using the incorrect transfer function. (@KelSolaar)
- ACESproxy colourspace was using the incorrect primaries. (@nick-shaw, @KelSolaar)
- RED colourspaces were using the incorrect whitepoint. (@nick-shaw, @KelSolaar)
๐ Changes
colour.algebra
colour.Extrapolator1d
: (@KelSolaar)- Name:
colour.Extrapolator
- Name:
colour.models
colour.RGB_Colourspace
: (@KelSolaar)- Methods:
transfer_function
:- Name:
OECF
(Opto-electronic conversion function)
- Name:
inverse_transfer_function
:- Name:
EOCF
(Electro-optical conversion function)
- Name:
colour.XYZ_to_RGB
: (@KelSolaar)- Signature:
colour.XYZ_to_RGB(XYZ, illuminant_XYZ, illuminant_RGB, XYZ_to_RGB_matrix, chromatic_adaptation_transform='CAT02', OECF=None)
- Signature:
colour.RGB_to_XYZ
: (@KelSolaar)- Signature:
colour.RGB_to_XYZ(RGB, illuminant_RGB, illuminant_XYZ, RGB_to_XYZ_matrix, chromatic_adaptation_transform='CAT02', EOCF=None)
- Signature:
colour.XYZ_to_sRGB
: (@KelSolaar)- Signature:
colour.XYZ_to_sRGB(XYZ, illuminant=RGB_COLOURSPACES.get('sRGB').whitepoint, chromatic_adaptation_transform='CAT02', apply_OECF=True)
- Signature:
colour.sRGB_to_XYZ
: (@KelSolaar)- Signature:
colour.sRGB_to_XYZ(RGB, illuminant=RGB_COLOURSPACES.get('sRGB').whitepoint, chromatic_adaptation_method='CAT02', apply_EOCF=True)
- Signature:
colour.plotting
colour.plotting.single_transfer_function_plot
: (@KelSolaar)- Name:
colour.plotting.single_conversion_function_plot
- Signature:
colour.plotting.single_conversion_function_plot(colourspace='Rec. 709', EOCF=False, **kwargs)
- Name:
colour.plotting.multi_transfer_function_plot
: (@KelSolaar)- Name:
colour.plotting.multi_conversion_function_plot
- Signature:
colour.plotting.multi_conversion_function_plot(colourspaces, EOCF=False, **kwargs)
- Name:
colour.plotting.colour_parameter
: (@KelSolaar)- Remove
- Note:
colour.plotting.ColourParameter
class should be used instead.