Introduction
A color sensation is often characterized by a triplet of numbers, such as sRGB values or XYZ tristimulus values. Given an illuminant as a spectral distribution (e.g. daylight or tungsten bulb) and an object’s spectral reflectance distribution, the computation of these three color values is straightforward and unique. The reverse proposition of computing a reflectance curve from a color triplet (sRGB, XYZ, etc), however, is not unique. There are many different reflectance curves that will give rise to the same color triplet values under a given illuminant. One way to compute a reasonable and unique reflectance curve from a color triplet is to seek the one that is the “smoothest” in some sense. The following paper describes three ways to do this, each having its own domain of applicability.
Abstract
Three numerical methods are presented for finding the smoothest reflectance curve associated with a given triplet of tristimulus values. The methods differ in how “smooth” is defined, and also differ in the domain of colors over which they are applicable. The first method is very quick and applies to any tristimulus values, but sometimes can yield reflectance curves with portions that fall outside the range 0 to 1. The second method applies to colors within the spectral locus (real colors) and guarantees that the reflectances produced are positive. The third method applies to colors within the object color solid (object colors) and guarantees that the reflectances fall within the range 0 to 1. The methods are shown to create reflectances that closely resemble those of real colors (natural and synthetic). Focus is given to implementing the numerical methods in very short MATLAB/Octave functions and to understanding the numerical behavior of the methods near the limits of their respective domains of applicability in terms of matrix conditioning and discretization artifacts.
Link to PDF
The PDF of this journal article can be found here: Numerical Methods for Smoothest Reflectance Reconstruction, Burns 2020