![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 7.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciał bym zapytać, czy ktoś wie jakiego algorytmu powinno się używać żeby jak najdokładniej porównać kolory? Chodzi mi o sytuację, w której mam jeden kolor (nazwijmy go podstawowy) i muszę wybrać spośród kilku innych kolorów najbardziej podobny do tego podstawowego. W internecie znalazłem coś o geometrii Euklidesowej. Czyli potraktować kolor ( r,g,b ) jako punkt znajdujący się w sześcianie i obliczać po prostu odległość punktów w przestrzeni 3D za pomocą wzoru:
dla zmniejszenia ilości obliczeń można pominąć pierwiastek bo nie wpływa on na wartość porównania. Jednak rozwiązanie takie nie do końca się sprawdza. Poniższy przykład zaczerpnąłem z forum EP z tematu, który niestety umarł w 2006 roku: (IMG:http://img688.imageshack.us/img688/7937/koloryr.gif) według wzoru podanego wyżej bardziej podobny do podstawowego jest kolor 1, jednak "na oko" widać, że kolor 2 bardziej pasuje. Nie bardzo wiem co z tym zrobić... Ten post edytował DooBLER 6.04.2010, 15:53:33 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 4 Dołączył: 13.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zależy jak bardzo jesteś zawzięty (IMG:style_emoticons/default/winksmiley.jpg)
Bo te same wartości B w HSB mają różną jasność odczuwalną dla R,G,B. Więc jeśli Ci zależy na porównaniu w systemie HSP (P - Perceived Brightness) to ja kiedyś posiłkowałem się tym: http://alienryderflex.com/hsp.html aczkolwiek później wyciągnąłem wg mnie lepsze wagi do obliczania P z Photoshopa: Kod //Photoshop extruded $PERCEIVE = array ( RGB => array ( RED => 0.341607834, GREEN => 0.544522888, BLUE => 0.113869278 ), RYB => array ( RED => 0.281081081, YELLOW => 0.524324324, BLUE => 0.194594595 ) ); RGB, RYB - to modele mapowania hue Potrzebne to jest wtedy gdy porównujesz kolory o podobnym oddaleniu H i S wtedy porównanie wg B może być wadliwe. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 17:04 |