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: 16 Pomógł: 0 Dołączył: 7.08.2006 Ostrzeżenie: (0%)
|
Witam i dzięki za odpowiedź.
Zacznę od tego, że sposób 2 czyli z bazą podobnych kolorów odpada na pweno. Muszę wykombinować jakiś w miarę skuteczny algorytm. Bawiłem się wczoraj z tym "moim" tyle, że przed sprawdzeniem przeliczyłem kolory do palety hsv/hsb i kolory z poprzedniego przykładu zostały wtedy wybrane tak jak oko podpowiada. Nie jestem tylko pewny czy w tym wariancie przy jakichś innych kolorach nie będzie dziwnych wyników. Prawdopodobnie przy palecie hsv/hsb trzeba by też użyć jakichś wag do poszczególnych składowych ponieważ h może mieć wartości od 0 - 359, s 0 - 100 i v/b 0 - 100 Może ktoś ma na to jakiś sprawdzony sposób? |
|
|
|
DooBLER [PHP/GD2] porównywanie kolorów 6.04.2010, 15:50:18
Piro Widzę przynajmniej 2 sposoby:
1) Porównujesz tylk... 6.04.2010, 17:38:29
aio Zależy jak bardzo jesteś zawzięty
Bo te same wart... 7.04.2010, 15:07:09 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 20:29 |