Porównywanie dwóch kolorów - znajdowanie zbliżonych do siebie

0

Mam "pulę" np. 140 kolorów - w większości szare i czerwone, w różnych odcieniach - i chcę z nich (każdy użyty raz) odwzorować obrazek 11x11 pikseli. Sama "metodyka" jak to zrobić nie jest większym problemem, chyba najłatwiej jest do każdego piksela z wzorcowego obrazka dopasować najbardziej zbliżony kolor z tej puli 140. No i tu pojawia się sedno mojego problemu - jak znaleźć ten najbardziej zbliżony kolor?

Przez najbardziej zbliżony kolor rozumiem taki, który z wszystkich dostępnych kolorów z puli jest najbliższy barwą i jasnością do koloru docelowemu. Po prostu, żeby do czerwonego został dopasowany bardziej czerwony kolor jak szary, a nie na odwrót.

Kolory są zapisane w RGB, ale podczas szukania jakiegoś rozwiązania znalazłem podpowiedź, że lepiej takie porównania robić w HSV (ale nie do końca to pomogło), więc suma summarum mam dane i RGB i HSV.

Próbowałem szukać, ale żadnych konkretnych informacji w tym temacie znaleźć nie mogłem.

1

Ja raczej użyłbym przestrzeni CIELAB. Najprościej zastosować tam metrykę Euklidesową ale można inne, więcej na tej stronie: http://en.wikipedia.org/wiki/Color_difference

(Tak się składa, że kwantyzacja barwy jest tematem mojej pracy dyplomowej. ;-)

0

O, widzę, że trafiłem z tematem :)

Dzięki wielkie za link, bardzo dużo przydatnych informacji. W końcu (patrząc się na przykłady z linków na końcu) użyłem metody CIE94 i działa bardzo sprawnie - na oko sam bym lepiej nie dopasował tych obrazków ;) . Miałem małe problemy z poprawnym przejściem RGB -> Lab w PHP (bo w tym to ma działać), ale udało się i przez to przeskoczyć ;)

Jeszcze raz dzięki za link, pomoc i za szybką odpowiedź!

1 użytkowników online, w tym zalogowanych: 0, gości: 1