Hi,
Redirecting from GEM-dev as it's not about GEM development...
Mathieu Bouchard wrote:
if you do a polar transform on YUV, you have something easier, faster and more correct all at once. I usually just skip the polar transform: if you apply rotations directly on YUV values, you can make very believable hue shifts.
Interesting, I'm in the process of experimenting a bit with different colour spaces, got in a real headache with XYZ and CIE L*a*b and so on, but YUV's simplicity may win.
HSV is dubious in part because the apparent brightness at maximum so-called value is very variable and seems to peak high or low at secondaries or primaries: compare yellow (brightness 89%) and blue (brightness 11%). this really makes HSV suck sometimes. YUV does not have this problem.
I tried a hybrid approach:
"$1 1 1" | [hsv2rgb] | [rgb2yuv] | "0.5 $2 $3" | [yuv2rgb]
and that seems to eliminate the bad brightness mismatches, at the cost of some colours seeming a bit washed out (blue) or muddy (yellow).
Attached image demonstrates the difference.
Wondering if there's some set of "perceptual brightness curves" similar to the "isophonic curves" [1] there are for perceived loudness of different frequencies and levels led me to [2], which seems very complicated again.
[1] http://lists.puredata.info/pipermail/pd-list/2007-01/046213.html [2] http://www.fourmilab.ch/documents/specrend/