In preparation for some work that I’ll be doing about observer metameric errors in digital cameras, I’ve built a program that, given a target color and a set of sample reflectance spectra, will:
- Using principal component analysis, find a set of basis functions for the sample set
- Assuming the set is lit with a particular illuminant (I used D50 for the data I’m presenting here), find as many spectra as you specify by combining the basis functions.
- All of the spectra will resolve to the same color for a CIE 1931 2-degre observer. They are therefore metamers.
- I set the boundary conditions to exclude spectra with over 100% or less than 0% reflectance.
Some examples using 6 basis functions plus a flat-spectrum one, starting with a neutral gray:
A blueish green:
A red with a shift in the magenta direction: