In the last few days, I tried out three renowned color difference functions. My expectations were very high as it was a function that reflected human perception.


ITP (also called ICtCp or BT.2124)


According to those who developed these functions,
with these functions, one can converts RGB values to another triple values,
after that, to calculate the perceptual difference between two colors,
just calculate euclidean distance of the two triple values.
(euclidean distance = usual distance between two points in 3 dimension)

All three functions judged that there was a large difference between the two dark colors, which I didn't notice much of a difference.

To elaborate, with my perception and for my PC monitor,
I assert that
the distance between the light blue and the pink
should be greater then
the distance between the dark gray and navy.

for dark(near black)

(I used a program called mathematica. And the picture is a part of screenshot for OKlab. Similar result for CIE2000 and ITP.
I'm skipping it because it would be too long to write all the details and attach screenshots.)

Such examples are not hard to find. They are very common and easy to find. (for all three functions.)
Just take two suitably different dark colors and calculate the distance.
It turns out to be considerably larger than the value obtained when comparing two bright colors.

In short, for two dark colors that are virtually not easy to distinguish, if we apply these functions to calculate the color distance, we get a fairly large value.(large color difference)

What went wrong?

2 Answers 2


It seems the problem you are having is mathematical contrast versus perceptual contrast.

With brighter colors we can perceive more color contrast than with darker colors. So, while your different color model 3d graph plottings show more "difference" between the darker colors, we perceive more color difference between the brighter colors.

I do not have an interest to get into the science of the programs you are using to evaluate the color differences and I do not know what these programs purpose or use is.

To get the results you want or expect, the 3d space your programs are mapping these colors into would need to have an entirely different and dynamic mapping space depending upon which 2 colors were being compared. It would be a "wider" space for brighter colors and a much "narrower" space with darker colors. This would then change the mathematic results to more of what you are perceiving.


(I just refreshed what I know about color difference with this article on Wikipedia, so please correct me if I say something wrong here.)

It seems that only CIE1976 uses pure Euclidian distance to calculate Delta E. The formula had shortcomings and later, in 1984 and 2000, further complexity was added.

I found the JavaScript library Color.js which claims to be able to calculate Delta E using several different methods.

If I color pick your colors and calculate Delta E using the CIE1976 method, I get an unsatisfactory result similar to yours:

But with both CIE2000 and OKLab, as expected the light colors have a higher Delta E than the dark colors:

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.