Podczas konwersji z RGB do skali szarości mówi się, że należy zastosować określone wagi do kanałów R, G i B. Te wagi to: 0,2989, 0,5870, 0,1140.
Mówi się, że przyczyną tego jest inna percepcja / wrażliwość człowieka na te trzy kolory. Czasami mówi się również, że są to wartości używane do obliczania sygnału NTSC.
Jednak nie znalazłem dobrego odniesienia do tego w Internecie. Jakie jest źródło tych wartości?
Odpowiedzi:
Konkretne liczby w pytaniu pochodzą z CCIR 601 (patrz link do Wikipedii poniżej).
Jeśli przekonwertujesz RGB -> skalę szarości z nieco innymi liczbami / różnymi metodami, nie zobaczysz dużej różnicy na normalnym ekranie komputera w normalnych warunkach oświetleniowych - spróbuj.
Oto kilka ogólnych linków dotyczących koloru:
Wikipedia Luma
Znakomita witryna internetowa Bruce'a Lindblooma
rozdział 4 o kolorze w książce Colina Ware'a „Wizualizacja informacji”, isbn 1-55860-819-2; ten długi link do Ware w books.google.com może, ale nie musi, działać
cambridgeincolor : doskonałe, dobrze napisane „samouczki dotyczące pozyskiwania, interpretowania i przetwarzania fotografii cyfrowych przy użyciu podejścia zorientowanego wizualnie, które kładzie nacisk na koncepcję nad procedurę”
Jeśli napotkasz „liniowe” i „nieliniowe” RGB, oto część mojej starej notatki na ten temat. Powtarzam, w praktyce nie zobaczysz dużej różnicy.
RGB -> ^ gamma -> Y -> L *
W nauce o kolorach typowe wartości RGB, takie jak html rgb (10%, 20%, 30%), nazywane są „nieliniowymi” lub z korekcją gamma . Wartości „liniowe” są zdefiniowane jako
gdzie gamma wynosi 2,2 dla wielu komputerów. Zwykłe RGB jest czasami zapisywane jako R 'G' B '(R' = Rlin ^ (1 / gamma)) (purystyczne kliknięcie językiem), ale tutaj zostawię '.
Jasność na ekranie CRT jest proporcjonalna do RGBlin = RGB ^ gamma, więc 50% szarości na CRT jest dość ciemne: .5 ^ 2,2 = 22% maksymalnej jasności. (Wyświetlacze LCD są bardziej złożone; ponadto niektóre karty graficzne kompensują gamma).
Aby uzyskać miarę jasności wywołaną
L*
z RGB, najpierw podziel RGB przez 255 i obliczTo jest
Y
w przestrzeni kolorów XYZ; jest miarą „luminancji” koloru. (Prawdziwe formuły nie są dokładnie x ^ gamma, ale bliskie; trzymaj się x ^ gamma dla pierwszego przebiegu).Wreszcie,
źródło
Okazało się, że ta publikacja przywołała w odpowiedzi na poprzednie podobne pytanie. To bardzo pomocne:
http://cadik.posvete.cz/color_to_gray_evaluation/
Pokazuje mnóstwo różnych metod generowania obrazów w skali szarości z różnymi wynikami!
źródło
Oto kod w c do konwersji rgb na skalę szarości. Rzeczywista waga użyta do konwersji rgb do skali szarości to 0,3R + 0,6G + 0,11B. te wagi nie są absolutnie krytyczne, więc możesz się nimi bawić. Zrobiłem je 0,25R + 0,5G + 0,25B. Daje nieco ciemniejszy obraz.
UWAGA: W poniższym kodzie założono, że 32-bitowy format pikseli xRGB
źródło
0.11111111 * ((G + (G<<1) + R) <<1) + B)
. Jest to równoważne z(2*R+6*G+B) / 9)
lub0.222 R + 0.666 G + 0.111 B
. Przed przystąpieniem do produkcji porównaj z dokładnym wzorem dla różnych przypadków testowych.Oto artykuł o tym, jak wyprowadzono te liczby (lub podobne):
https://web.archive.org/web/20160303201512/http://www.cis.rit.edu/mcsl/research/broadbent/CIE1931_RGB.pdf
źródło
Sprawdź często zadawane pytania dotyczące kolorów, aby uzyskać informacje na ten temat. Wartości te pochodzą ze standaryzacji wartości RGB, których używamy w naszych wyświetlaczach. W rzeczywistości, zgodnie z często zadawanymi pytaniami dotyczącymi kolorów, używane wartości są nieaktualne, ponieważ są to wartości używane w oryginalnym standardzie NTSC, a nie w nowoczesnych monitorach.
źródło
„Źródłem” opublikowanych współczynników są specyfikacje NTSC, które można zobaczyć w Rec601 i „ Charakterystyka telewizji” .
„Ostatecznym źródłem” są eksperymenty CIE z około 1931 r. Dotyczące postrzegania kolorów przez ludzi. Odpowiedź spektralna ludzkiego wzroku nie jest jednolita. Eksperymenty doprowadziły do wyważenia wartości trójbodźca na podstawie percepcji. Nasze stożki L, M i S 1 są wrażliwe na długości fal światła, które identyfikujemy jako „czerwony”, „zielony” i „niebieski” (odpowiednio), z których pochodzą podstawowe kolory trójchromatyczne. 2
Wagi widmowe linear light 3 dla sRGB (i Rec709) to:
R lin * 0,2126 + G lin * 0,7152 + B lin * 0,0722 = Y
Są one specyficzne dla przestrzeni kolorów sRGB i Rec709, które mają reprezentować monitory komputerowe (sRGB) lub monitory HDTV (Rec709) i są szczegółowo opisane w dokumentach ITU dla Rec709, a także BT.2380-2 (10/2018)
PRZYPISY (1) Czopki to komórki siatkówki oka wykrywające kolor.
(2) Jednak wybrane długości fal trójchromatycznych NIE znajdują się na „szczycie” każdego typu czopków - zamiast tego wartości trójbodźców są tak dobrane, że stymulują one na konkretnym typie czopków znacznie bardziej niż inne, tj. Oddzielenie bodźca.
(3) Musisz zlinearyzować wartości sRGB przed zastosowaniem współczynników. Omawiam to w innej odpowiedzi tutaj.
źródło
Wartości te różnią się w zależności od osoby, szczególnie w przypadku osób ze ślepotą na kolory.
źródło
czy to wszystko jest naprawdę konieczne, ludzka percepcja i CRT vs LCD będą się różnić, ale intensywność RGB nie, dlaczego nie
L = (R + G + B)/3
i ustawić nowy RGB na L, L, L?źródło