2012-12-21 11 views
6

Mam dwie wartości kolorów w HSI (nasycenie i intensywność barwy) i chcę liczbę reprezentującą wizualną różnicę między dwoma kolorami. Odcień jest liczbą od 0 do 360 włącznie. Nasycenie wynosi od 0 do 1, a intensywność od 0 do 1.Obliczyć widoczną różnicę w kolorze między dwiema wartościami kolorów HSI

Rozważmy na przykład czerwony i niebieski przy nasyceniu 100% i intensywności 100%. At this website is a way to display the color by entering in the following text.

czerwony jest: HSV 0, 100%, 100%

niebieski jest: HSV 240, 100%, 100%

enter image description here

oczywiste są dwa różne kolory , więc prostym sposobem, w jaki mogłem spróbować obliczyć różnicę między kolorami, jest użycie komponentu Odcień i obliczyć różnicę bezwzględną w odcieniu, która wynosiłaby 120 (360-240), ponieważ 360 również jest równe 0 w odcieniu.

Problem pojawia się, gdy nasycenie lub intensywność jest bardzo ciemne lub lekkie, należy rozważyć bardzo ciemny czerwony i niebieski.

ciemnoczerwony jest: HSV 0, 100%, 20%

ciemny niebieski jest: HSV 240 100% 20%

enter image description here

Oczywiście wizualne różnice pomiędzy tymi dwoma kolorami jest mniejsza niż jasne czerwone i niebieskie kolory, jak określiłby to człowiek, gdyby poproszono go o porównanie różnic. Chodzi mi o to, zapytaj przyjaciela "Która para kolorów jest najbardziej różna?" najprawdopodobniej powiedzą, że góra jest jasnoczerwona na niebiesko.

Próbuję obliczyć różnicę między dwoma kolorami, tak jak zauważyłby to człowiek. Jeśli człowiek spojrzał na dwa kolory aib, a następnie dwa kolory c i d, zauważył, które z nich są najbardziej różne. Po pierwsze, jeśli kolory są jasne (ale nie zbyt jasne), różnica jest oparta na odcieniu. Jeśli kolory są zbyt jasne, na przykład białe lub zbyt ciemne, np. Czarne lub zbyt szare, różnice są mniejsze.

Powinno być możliwe posiadanie funkcji diff, gdzie x = diff (a, b) i y = diff (c, d) daje xiy, i mogę użyć x i y, aby porównać różnice, aby znaleźć najrozmaitszy kolor lub najmniej inny kolor.

+0

Wątpię nie jest dokładną odpowiedź to. Możesz wypróbować przestrzeń barw RGB, wydaje się, że łatwiej odróżnić. – xiaoyi

+0

Zrobiłem kilka wyszukiwania google i znalazłem algorytm różnica kolorów http://www.emanueleferonato.com/2009/09/08/color-difference-algorithm-part-2/, Istnieje również artykuł w Wikipedii na temat tej różnicy kolorów http : //en.wikipedia.org/wiki/Color_difference Musi istnieć wiele sposobów na wypracowanie tego. – Phil

+1

Posiadam profesjonalne przygotowanie do druku/proofingu i tradycyjny sposób obliczania różnic kolorystycznych. Istnieje Delta E. Artykuł Wikipedii tutaj: http://en.wikipedia.org/wiki/Color_difference –

Odpowiedz

2

WCAG2.0 i 1,0 wytyczne zarówno odniesienie do różnych równań na postrzeganie różnicy koloru:

  1. współczynnik kontrastu (http: //www.w3.org/TR/2008/REC-WCAG20 -20081211/overview.html # kontrastu ratiodef)

  2. różnica brigtness i 3. kolor różnica (http://www.w3.org/TR/AERT#color-contrast).

Próbowałem metody Delta-E (http: //colormine.org/delta-e-calculator/), ale jest quasimetric więc pomiar różnicy może ulec zmianie w zależności od kolejności zdać dwa kolory. Jeśli w twoim przykładzie spodziewasz się, że diff (a, b) zawsze będzie równy diff (b, a), to nie jest to, czego potrzebujesz (mogą istnieć różne algorytmy pod tą nazwą, które nie są quasymetryczne, ale nie przyjrzałem się temu przeszłości tej witryny).

Myślę, że metryka różnicy kolorów jest najbliższa spełnieniu moich oczekiwań dotyczących pomiarów różnicy kolorów. Na swoim przykładzie będzie to wydajność tego diff (A, B)> diff (c, d)

Można przetestować go dla siebie pomocą funkcji na tej stronie internetowej: http://www.dasplankton.de/ContrastA/

1

Ogólna odpowiedź wydaje się być to, co powiedział David van Driessche Aby móc korzystać Delta E. znalazłem trochę kodu Java tutaj: https://github.com/kennyliou/GAI

To jest odpowiedź na pytanie, może nie być najlepszym rozwiązaniem.

+0

Nie sądzę, że to naprawdę zła odpowiedź, biorąc pod uwagę, że próbujesz obliczyć ludzką percepcję, a także to, co dzieje się w procesie korekty. Kiedy robisz dowód, próbujesz stworzyć coś, co wygląda tak samo, jak zamierzony produkt końcowy. I "ten sam" jest oceniany przez ludzi i teoretycznie mierzony (lub przybliżany) przy użyciu tej wartości Delta E. –

+0

W zależności od tego, co robisz przy okazji, uważaj na warunki oglądania. Ludzie widzą kolory bardzo różnie w różnych warunkach oświetleniowych (na przykład światło słoneczne w porównaniu do oświetlenia fluorescencyjnego). Warunki oświetleniowe mogą bardzo znacząco wpłynąć na postrzeganie barw człowieka (a przez to postrzegać różnice kolorów). Do tego stopnia, że ​​niektóre kolory mogą wyglądać tak samo w jednym oświetleniu, a inne w innym oświetleniu (w razie zainteresowań szukaj "metameryzmu"). –

Powiązane problemy