najpierw trzeba wybrać th odpowiedniej przestrzeni barw chcesz porównania kolor występuje w (RGB, HSV, HSL, CMYK itp.).
Zakładając, że chcesz wiedzieć, jak blisko dwa punkty w 3-dimenionsal przestrzeni RGB są do siebie, można obliczyć Pitagorasa odległość między nimi, czyli
d2 = (r1 - r2)**2 + (g1 - g2)**2 + (b1 - b2)**2;
To rzeczywiście daje kwadrat odległość. (Pobieranie pierwiastka kwadratowego nie jest konieczne, jeśli porównujesz tylko wartości kwadratów).
Zakłada się, że chcesz traktować wartości R, G i B jednakowo. Jeśli wolisz wagi poszczególnych składników barwnych, takich jak to, co dzieje się podczas konwersji RGB do skali szarości, trzeba dodać do każdego terminu współczynnik odległości, tj
d2 = 30*(r1-r2)**2 + 59*(g1-g2)**2 + 11*(b1-b2)**2;
ten zakłada konwersję z popularną RGB do skali szarości 30% czerwony + 59% zielony + 11% niebieski.
Aktualizacja
To ostatnie równanie powinno prawdopodobnie
d2 = (30*(r1-r2))**2 + (59*(g1-g2))**2 + (11*(b1-b2))**2;
Podobne pytanie: http://stackoverflow.com/questions/1313/followup-finding-an-accurate-distance-between-colors – Kai