GIMP 2.10.6 out-of-range RGB values from .CR2 file

In trying to dismantle the “ZOMFG GREEN” thing, I hammered a bit of Colour to generate the following images. The camera native primaries, as deduced from the matrix, are plotted on the chart. The grey dots are how a pure primary, or any RGB value with no complimentary channel, marches towards the camera photosites equal energy colour as equal compliments are added.

This should help to explain how when one dumps the values out through an sRGB display, the ratios look green; because the original camera filter / light ratios at equal energy produce quite a radically different colour than anything close to D50 or D65. In order to pull it towards those values, you need to add more of the “green” and “blue” channel primary, which increases the tension towards those primaries.

As you can see, pure primaries of each the “blue” and “green” aren’t even representative of real colours. How can this happen from a physical device? Because of the spectral componentry of the CMOS array. The three-light idealized matrix assumes pure primaries based in XYZ, whereas in reality there are nonlinear crosstalk elements happening in the filter arrays.

Needless to say, hopefully this diagram helps to show why the colour ratios in the camera raw file aren’t green at all; the basis filters represent an entirely different spectral composition to what you are accustomed to seeing.

I didn’t proof check the math, and apologies if there are glaring inaccuracies.

1 Like