Since embarking on my color science journey a year a go now, I've had a frequent nagging in the back of my mind about the perceptual difference between saturation-hammering stretches (like asinh and GHT), color "blanching" stretches (like gamma and MTF), and a color-matching CCM applied to the raw camera data. I've copped a lot of bewilderment (and occasionally criticism) over the use of a CCM—and if the measure of relevance is the ubiquity of use, then a CCM should be irrelevant to AP…right?
I was working on The Eye of God this morning when deep within my soul I felt moved to evaluate some of my outcomes with the CIE 1976 UCS chromaticity space. I've done countless CIE 1931 xy evaluations with Colour-Science for Python, but the 1931 xy space is not perceptually uniform. It turned out, plotting in UCS uv color space just took a change to one word in one command in my plotting script—too easy! And UCS is a simple way to exorcise those gremlins in the back of my mind I described above.
So here is a toggle through the various stretches on my raw Eye of God data and their effects on color in a perceptually uniform measurement space. Note that all stretch methods require positive values within the working color space (usually monitor-stretched sRGB). This drives asymptotic behavior at the boundary of each channel that distorts the hues. The CCM recognizes no such boundary because the negative values required for color matching in the sRGB gamut are permissible—but a coordinate transformation to AdobeRGB (or a color space encompassing those negative sRGB values) is needed before the stretch so the colors don't get clipped to the sRGB rail.
I hope you find that as illuminating as I did.
Edited by BQ Octantis, 24 September 2023 - 07:48 PM.