I'd like to build a color difference metric that will be invariant to small changes in lighting conditions. In other words, I should be able to tell that a red shirt is not the same as a blue shirt, even if one image is lit differently (brighter / darker, outdoors / incandescent).

Moving to YUV space and ignoring the luminance component I can deal with changing brightness conditions by considering the metric: $$d = \sqrt{\Delta U^2 + \Delta V^2}$$ But this metric still gives large "distances" when different light sources are used, due to the change in chrominance along the Planckian locus.

My question is:

Is there a color difference metric that is invariant to temperature differences? in a sense, I'm looking for a color space in which one of the three axes is temperature. Does such a space exist?

  • 1
    $\begingroup$ The following may be related: stackoverflow.com/questions/10922467/… But a canonical answer would still be appreciated. $\endgroup$ Jun 21, 2013 at 3:47
  • $\begingroup$ Interesting question. I guess this is what auto white balance on a camera does. I think you would apply some kind of auto-white balance, then convert to YUV? Like camera auto white balance I think there would be issues with scenes where the range of colours is not-typical. $\endgroup$ Jun 22, 2013 at 10:47

1 Answer 1


Other than searching for a color space, why don't you just first apply a color correction and then get the hue space?

If illumination is an issue, you might consider an illumination invariant color correction: http://citeseerx.ist.psu.edu/viewdoc/download?doi=

Then simple convert your image to HSV and get H channel.

Additionally, if you have some clue about what you are looking at (such as roads, football fields etc) then you might use that too. Such an algorithm is mentioned here: https://stackoverflow.com/questions/10922467/illumination-invariant-image


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.