International Color Consortium
Getting Started
Making color seamles between devices and documents
ICC Specifications
Technical Notes
ICC Resource Center
ICC Slide Presentation
ICC Logos
Information on Profiles
ICC White Papers
Color Management Links
Member List
ICC Working Groups
Got a question about ICC Profiles or colour management?

Spectral estimation

Spectral estimation is the process of estimating a spectral reflectance from limited information, usually colorimetry (XYZ or CIELAB) or device data (RGB, CMYK or multi-channel devices).

This page contains resources for spectral estimation in colour management workflows.

Spectral estimation is relevant in ICC.2 (iccMAX) workflows, which support a spectral PCS. When connecting spectral data to colorimetry (e.g. when the source profile has a spectral PCS and the destination profile has a colorimetric PCS) the conversion is well-defined using a colorimetric observer and illuminant. In the reverse direction (colorimetric to spectral PCS) there are many possible spectral reflectances that map to the same colorimetry, so there is no unique solution. Recent work has shown that good results can be obtained using a number of different methods, particularly when the training data has similar characteristics (for example, uses similar substrates and/or colorants).


Several methods have been evaluated by Tanzima Habib. One method is a third order polynomial regression. In this method a set of coefficients H is first calculated as:

H=St DtT(Dt DtT)-1

where St is the set of training reflectances and Dt is the polynomial expansion of the XYZ training values:

D = [1 X Y Z X2 Y2 X2 XY XZ YZ X3 Y3 Z3 X2Y X2Z XY2 XZ2 Y2Z YZ2 XYZ]T

The estimated reflectances S' can then be calculated:

S'=H D

where D is the array of XYZ values for which the spectral reflectances are required, and to which the same polynomial expansion has been applied.

ICC.2 profile to convert XYZ to spectral reflectance

This profile is trained on a Munsell Glossy dataset and predicts reflectance spectra from D50 XYZ data, using the 3rd order polynomial method above.

To apply this profile in DemoIccMax, use the following command line string:

iccApplyNamedCMM testXYZDataIn.txt 3 0 xyz2PolyEstimateRefV2.icc 3 > spectralDataOut.txt

where testXYZDataIn.txt is the name of the XYZ data file and spectralDataOut.txt is the output spectral reflectance file, and both text files are formatted according to DemoIccMax conventions. An example input XYZ data file is below.

This profile has an average round trip XYZ error of 0.027.

Spectral estimates of characterization data

Abhinav Reddy Nimma at NTNU estimated spectral reflectances of the colorimetric data in the ICC CMYK Characterization Data Registry, using a weighted pseudo-inverse method and code provided by Tanzima Habib. The data and project description can be downloaded here. It is important to note that these are estimates only, and are not expected to be a precise spectral match to the original specimens. The method used does not take into account the degree of fluorescence present in the reflectance.