Colour 0.3.12 and Colour - Checker Detection 0.1.0!

After over a year of work, Colour 0.3.12 is finally released. Colour - Checker Detection 0.1.0 is also available.

Colour 0.3.12

This release is another important 700+ commits step on The Road to Stable!

First and foremost, a huge thanks to all the contributors, whether they are contributing with code or through discussions.

Colour 0.3.12 was severely delayed because of the involvement of some of us in the authoring of the upcoming Cinematic Color update. Colour is used to produce an significant amount of figures in this work and it was important to improve the plotting capabilities.

The highlights of this release are:

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 the figure and axes instances. The Cinematic Color 2 - Figures Google Colab document is a good example highlighting the greatest and latest changes and capabilities.

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 the colour.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.


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.

Please refer to the releases page for complete details.

Colour - Checker Detection

Colour - Checker Detection is a Python package implementing various colour checker detection algorithms and related utilities.


Comments powered by Disqus