Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 03 Jan 2005
Offline Last Active Feb 05 2013 08:14 PM

Posts I've Made

In Topic: Comparing Pixel Values

18 December 2007 - 04:19 PM

Original post by TheAdmiral
Better colour-spaces exist for this kind of business. In particular, I'd recommend YCC. A weighted Euclidean distance-function in this space would give far better results than anything linear in RGB or even HSL.

The most important coordinate is luma. I couldn't say anything certain about the two chroma components, but I suspect the red is more significant than blue (at middling intensities). IIRC, the the eye is far more sensitive to intensities in the blue hue at very low exposure, green at typical-to-high exposure, with red being fairly constant. I don't really know how or if this translates to hue-sensitivity. I'm sure Google knows a lot more, but you'll probably want to take that into consideration if working in HDR. Otherwise you may have success with something along the lines of:

float3 ycc1 = RGBToYCrCb(rgb1);
float3 ycc2 = RGBToYCrCb(rgb3);

float3 ycc_dist = abs(ycc1 - ycc2);

const float3 WEIGHTS = float3(0.814, 0.453, 0.362);
float perceived_distance = dot(ycc_dist, WEIGHTS);

Understand that the weights there came entirely off the top of my head (I normalised 9:5:4), and that better values have almost certainly been researched, if you know where to look. The implementation of the RGB-YCC conversion is linear (a matrix multiplication); details here.

Thank you.

Which method and color-space would be most effective for comparing gray-scale colors?

In Topic: This message is from the future

22 June 2007 - 12:54 PM

If you are interested on this particular time machine, here are some interesting resources:


In Topic: Student Game Survey

23 August 2005 - 02:10 AM

Woah, that was one LONG survey!

In Topic: First Languages?

20 August 2005 - 10:04 AM

html -> ActionScript -> C++ -> Java

In Topic: Let's play with Google Earth

12 August 2005 - 05:42 AM

Its someones house ( Someone somewhat famouse ^^)... Your getting warmer...