Portrait of Paul Centore
by Lynn Anderson
Portrait of Paul Centore by Lynn Anderson

Colour Theory for Painters

by Paul Centore

© March 16, 2012 (launched Oct. 20. 2010)

Introduction

This webpage is devoted to applying colour theory to everyday problems that painters face. The goal is to provide, as far as possible, a rigorous understanding of the use of colour in painting. Currently, the main result is a method by which a painter can determine the colours of an object in shadow, relative to the colours of that same object in light. A PDF file with an explanation and examples, Shadow Colours For Painters, can be downloaded; more details are available below. It is hoped that other results will follow.

Although colour science has a well-established, relevant body of knowledge, most painters are unfamiliar with it. An important facet of colour science is the Munsell colour system, devised by the painter Albert Munsell at the turn of the 20th century. The Munsell system's concepts of hue, value, and chroma, are basic to painting, and provide a convenient framework for colour decisions in painting. Despite its usefulness, the Munsell system is also not widely known among painters. The conclusions in the articles cited here draw on the data and concepts of colour science, for a firm foundation, rooted in human colour vision.

It should be emphasized that the results presented here are starting points, from which painters can and probably should deviate. While it is helpful to know how to produce a mechanically correct shadow series, it is more common to modify shadows to "incorrect" colours for expressive ends. Nevertheless, these modifications can be made intelligently only if the correct version is thoroughly understood. In a similar way, Michelangelo's distortion of human proportions are effective only because he was intimately familiar with correct proportions.

Articles

1. The article Shadow Colours For Painters is intended for artists. It gives a detailed, non-technical explanation of shadow colours.

2. The technical basis for the above article appears in a second article, Shadow Series in the Munsell System, which has been accepted for publication in the journal Color Research and Application.
Abstract: Using an inversion of the Munsell renotation, this paper calculates that a colour's shadow series is approximately a straight line in the Munsell system. The line starts at the colour's Munsell specification and ends about one value step below N0, on the neutral axis. The colour's hue in shadow shifts slightly towards the yellow part of the spectrum. The calculations suggest that ideal black belongs at about N(-1) in the Munsell system, rather than at N0, if equality of perceptual steps is to be maintained. Similarly, ideal white should be slightly lighter than N10.
Here is the set of 182 shadow series, along with approximating least squares lines, plotted in terms of their values and chromas, but disregarding hue, in the Munsell system (Fig. 4 of the article):


Value/Chroma Relations 
for Shadow Series in the Munsell System

Note that the bulk of the extrapolated shadow series cross the neutral axis between 0 and 2 value steps below N0. The data used to generate this figure is contained in the file ShadowSeriesInMunsellSystem.txt, which others are free to use for further research.

3. To perform shadow calculations, it was first necessary to invert the Munsell renotation. This task is accomplished in the article, An Open-Source Inversion Algorithm for the Munsell Renotation, which has been accepted for publication in the journal Color Research and Application.
Abstract: The 1943 Munsell renotation includes a table that converts 2,734 Munsell specifications into xyY coordinates, along with a graphical interpolation method, and a graphical inversion method, that converts xyY coordinates back into Munsell specifications. The current paper presents open-source computer code, running in Matlab or Octave, that both interpolates and inverts the Munsell renotation automatically. The steps in both algorithms are described in detail. Like previous inversion algorithms, it relies on interpolations between entries in the 1943 table. For colours near the MacAdam limits, the inversion also requires extrapolations beyond the 1943 entries. The outputs of the current implementation do not differ significantly from the outputs of other inversion algorithms. The main distinguishing feature of the current algorithm is that both the algorithm and code implementation are publicly available.
This second article is of more interest to colour scientists than to painters. An Inverse Table for the Munsell Renotation gives a table of inverse renotation values. The main routine for the code implementation is xyYtoMunsell.m, which is written in Matlab/Octave. This routine runs in the ColorLab project; supporting routines and more information are available below.

4. As a byproduct of the previous articles, a helpful description of colour space was found: A Zonohedral Approach to Optimal Colours. This article has been accepted for publication in the journal Color Research and Application.
Abstract: This paper demonstrates that the CIE XYZ colour solid is a zonoid. An approximating zonohedral colour solid is constructed explicitly from a set of generating vectors, which are integrals of colour-matching functions over narrow intervals of the visible spectrum. The zonohedral approach yields an intuitive, constructive proof of the Optimal Colour Theorem: the reflectance function of an optimal colour takes on only the values 0 or 1, with at most two transition wavelengths. In addition, zonohedral techniques can simplify computations: for example, optimal colours can be found without calculating transition wavelengths. Finally, zonohedra provide a simple, unified approach to colour space, and eliminate much of the confusion arising from chromaticity diagrams.
This third article is also of more interest to colour scientists than to painters. Here is the colour solid constructed as a zonohedron (Fig. 9 of the article):


XYZ Colour Solid as a
Zonohedron


5. The previous article led to a joint paper with Michael H. Brill, Extensible Multi-Primary Control Sequences.
Abstract: In a display with more than three primaries (called a multi-primary display), a color can be expressed as multiple combinations (called control sequences) of primaries. This paper presents an algorithm for assigning control sequences, that preserves current assignments when further primaries are added. We call these control sequences extensible. It is shown that the gamut of any number of primaries is a zonohedron, which can be dissected into parallelepipeds. Control sequences are assigned within each parallelepiped. The current parallelepipeds remain when more primaries are added, so the current assignments are preserved. Multi-primary displays can also cause unwanted metamerism, and make continuous color scales appear discontinuous. The algorithm avoids these problems. When viewed through natural filters, such as yellowed ocular lenses, multi-primary displays can sometimes make two different colors appear identical. If the primaries satisfy the Binet-Cauchy criterion, which is always the case when all primaries are monochromatic, then these spurious matches are avoided.
This article has been published in the Journal of the Society for Information Displays. The article is of more interest to display engineers than to painters. Here is a dissection of the zonohedral gamut, resulting from four primaries, into parallelepipeds (from Fig. 4 of the article):


Parallelepiped Dissection of
Zonohedral Gamut


6. A further paper (accepted for publication in the Journal of the Society for Information Displays) on metamerism in multi-primary displays: Non-Metamerism of Boundary Colours in Multi-Primary Displays.
Abstract: A control sequence gives the intensities of the primaries for a pixel of a display device. The display gamut, i.e. the set of all the colours that a display can produce, is a zonohedral subset of CIE XYZ space, and contains both boundary and interior colours. Displays with four primaries or more exhibit metamerism, in which different control sequences produce colours that appear identical to an observer. This paper shows mathematically that, provided no three primaries are linearly dependent, metamerism can only occur for interior colours. When there are four or more primaries, metamers can always be found for interior colours. A colour on the gamut boundary, by contrast, is only produced by a unique control sequence. The proof used for displays can be extended to object-colour solids, to show that optimal colours, which are on the boundary of an object-colour solid, have unique reflectance functions.

7. Further development along the same lines: Invariants Under Illuminant Transformations.
Abstract: An object colour's CIE $XYZ$ coordinates can change when it is viewed under different illuminants. The set of $XYZ$ coordinates for all object colours, which is called the object-colour solid, likewise varies under different illuminants. This paper shows that, despite these changes, some properties are invariant under illuminant transformations. In particular, as long as the illuminant is nowhere zero in the visible spectrum, optimal colours take the same Schr\"odinger form, and no two optimal colours are metameric. Furthermore, all object-colour solids have the same shape at the origin: they all fit perfectly into the convex cone (which we will call the spectrum cone) generated by the spectrum locus. The spectrum cone, itself, does not vary when the illuminant changes. The object-colour solid for one illuminant can be transformed into the solid for another illuminant, by an easily visualized sequence of expansions and contractions along irregular rings, called zones.
This article is of more interest to colour scientists than to painters. Here is an example of a zone around the object-colour solid for a simplified illuminant (from Fig. 4 of the article):


A Zone around a Simple Object-Colour
Solid

ColorLab Contributions

The ColorLab open source software project, which can be downloaded here, was used to perform calculations when needed. The ColorLab project can be run from the computational software package MATLAB, or from Octave (download here), which is a freely available open source clone of MATLAB. In the course of these investigations, 29 new ColorLab routines, as well as about a dozen data files suitable for ColorLab, were written, and contributed to the ColorLab project. The tables at the end of this page list these files, and their text can be accessed by clicking on the highlighted links. One table lists the primary computational routines, and another table lists secondary routines, which are not of much interest by themselves, but which are needed by the primary routines. There is also a table of .mat files, which contain data structures in a binary format, that MATLAB or Octave can read. All the data files and routines have been archived and compressed into the file MunsellConversions.zip, which can be downloaded and unzipped. The code in these files supersedes, and in some cases is a revision of, similar code that was posted in October 2010. Each file contains a revision date at the end of the initial comments, for comparison with earlier versions if desired. Other investigators are encouraged to check and modify the routines as needed, and use them for further research.



Primary Computational Routines for ColorLab
File Description
MunsellToxyY.m Expresses a Munsell specification in xyY coordinates, by interpolation over the 1943 renotation
xyYtoMunsell.m This inverse Munsell renotation expresses an xyY triple as a Munsell specification
MunsellValueToLuminanceFactor.m Convert between a Munsell value and a luminance factor, using the 1943 quintic, CIELAB, and ASTM D 1535-08
LuminanceFactorToMunsellValue.m
MunsellSpecToColorLabFormat.m Convert between a colour's Munsell specification and an internal ColorLab format
ColorLabFormatToMunsellSpec.m
xyY2XYZ.m Converts an xyY triple to CIE XYZ coordinates
MunsellHueToASTMHue.m Converts a Munsell hue to a number between 0 and 100 (e.g. 3.4RP becomes 93.4).
DrawMunsellHueSheet.m Draws the Munsell colours of one hue; works for nonstandard hues, such as 6.4PB, 9Y, etc.
IsWithinMacAdamLimits.m Determines whether an xyY triple is within the MacAdam limits, for a user-input illuminant
ShadowSeriesInMunsellSystem.m Calculates a shadow series in Munsell coordinates


Secondary Computational Routines for ColorLab
File Description
IlluminantCWhitePoint.m Gives xy chromaticity for Illuminant C
CIELABtoApproxMunsellSpec.m Converts CIELab coordinates into an approximate Munsell specification
XYZ2RGBapplergbD65.m Sets RGB coordinates on Apple computer for given CIE XYZ coordinates
DrawRenotationFigure.m Plots Munsell hue and chroma in chromaticity diagrams; works for non-integer Munsell values, such as 7.8, 1.3, etc.
MaxChromaForExtrapolatedRenotation.m Finds the maximum chromas for which Munsell renotations can be interpolated
MunsellHueToChromDiagHueAngle.m Fix a consistent conversion between Munsell hue and angle in the chromaticity diagram
ChromDiagHueAngleToMunsellHue.m
MunsellToxyYfromExtrapolatedRenotation.m The inverse renotation, extended beyond the MacAdam limits
MunsellToxyForIntegerMunsellValue.m The inverse renotation, restricted to integer Munsell values
FindHueOnRenotationOvoid.m Locates a particular hue on a chroma ovoid in a Munsell renotation figure.
LinearVsRadialInterpOnRenotationOvoid.m Determines how to interpolate over segments of chroma ovoids in renotation figures.
MakeMaximumChromaMatrix.m Make matrix of maximum chromas, as function of Munsell hues and values
BoundingRenotationHues.m Bound arbitrary hue between standard hues, e.g. 4.6B is between 2.5B and 5B
MaxChromaForMunsellHueAndValue.m Find maximum chroma, for input Munsell hue and value
MakeMaxExtRenChromaMatrix.m Routines to make .mat files and further data files, from current data files
MakeExtrapolatedRenotationMatrices.m
MakeRenotationMatrices.m
MakeRenotationMacAdamLimitMatrix.m


Data Files for ColorLab
File Description
InverseRenotationJan2011.txt A text file, suitable for computer programs, of the data in MunsellInverseRenotationTable.pdf
MunsellRenotation.txt The 1943 Munsell renotation data, from Newhall, Nickerson, & Judd
ExtrapolatedMunsellRenotation.txt A version of the file all.dat from the Munsell Color Science Laboratory
MacAdamLimitsFromRenotationData.txt A list of the maximum chromas in the 1943 Munsell renotation data
MaxChromaFromExtrapRenotationData.txt A listing of the maximum chromas in the file all.dat from the Munsell Color Science Laboratory
MaxChromasForStandardMunsellHuesAndValues.txt A list of maximum chromas for the Munsell system
OptimalColoursForIlluminantC.txt The list from MacAdam's 1935 paper
OptimalColoursForIlluminantD65.txt The list from Wyszecki & Stiles
MaxChromaForExtrapolatedRenotation.mat These are .mat versions of data, to be read directly by MATLAB or Octave
ExtrapolatedRenotationMatrices.mat
MaxChromasInRenotationData.mat
RenotationMatrices.mat

Conversions between Munsell and CIE (xyY or XYZ) coordinates

In addition to the Octave/Matlab code presented here, other tools are available for converting between Munsell specifications and CIE coordinates:


1. Here are some open-source C/C++ conversions routines.
2. Here is a Munsell package for R, the open source statistics program.
3. Psychtoolbox-3 is a set of open source routines that run in Matlab, so they should work in Octave as well. This toolbox is developed mainly at the University of Pennsylvania, where it is used for vision research. Currently, it has code to convert from xyY to Munsell, but not from Munsell to xyY. I submitted my routines, in MunsellConversions.zip, but have not heard back.
4. Color2drop and Drop2Color are two Matlab programs written by Zsolt Kovacs, of the University of Brescia. They are available in both English and Italian versions. They output paint mixtures (using artist's paints from several different brands) that produce an input Munsell colour, and vice versa. The source code is available upon request. I have not looked at the conversion method in detail, but the documentation mentions cubic interpolation.
5. Wallkill color produces commercial software that can be used interactively to make Munsell conversions. For $9.95 (as of Jan. 8, 2012), one can buy a one-year license for the basic Wallkill program. In the basic program, Munsell specifications can be entered manually, one at a time, and converted to xyY coordinates, and vice versa. One glitch is that the program will terminate, and must be restarted, if the entered specification is outside the MacAdam limits. The Wallkill program runs only on Windows systems.
6. BabelColor's Patch Tool is also commercial software that performs Munsell conversions.
7. Here is a helpful online discussion about the related problem of converting Munsell specifications to RGB coordinates.
8. The discussion above suggested this free software for Munsell conversions. It is very helpful for visualization, but only runs on PCs.
9. A 1990 paper (N. S. Smith, T. W. A. Whitfield, & T. J. Wiltshire, "A Colour Notation Conversion Program," COLOR Research and Application, Vol. 15, Number 6, December 1990, pp. 338-343) mentions conversion code in Pascal, that is free for non-commercial use. This code could not be located.
10. A 1987 paper (Frederick T. Simon & Judith A. Frost. "A New Method for the Conversion of CIE Colorimetric Data to Munsell Notations," COLOR Research and Application, Vol. 12, Number 5, 1987, pp. 256-260) implemented Munsell conversion code in Fortran, as part of a thesis project. This code could also not be located.


Contact Information

Comments, suggestions, and questions are welcomed. I can be reached by email at {centore ATSIGN 99main.com}.





web counter
web counter