Grafika Komputerowa (GRK)
Wykład III

Barwa w grafice komputerowej

Otaczający nas świat jest światem barwnym. Stąd, również obrazy, które chcemy generować, korzystając z komputera, powinny być obrazami barwnymi. Okazuje się jednak, że sposób opisu barwy odpowiedni dla zastosowań komputerowych nie jest prosty. Wynika to już stąd, że samo pojęcie barwy nie jest oczywiste. W trakcie wykładu zostanie wyjaśnione pojęcie barwy oraz przedstawione zostaną różne modele barw wykorzystywane w grafice komputerowej. Zwrócimy również uwagę na problem związany z przenośnością obrazów barwnych i na metody jego rozwiązywania.

Pojęcie barwy

Pojęcie barwy (koloru) jest powszechnie stosowane. Warto jednak zwrócić uwagę na fakt, że barwa nie jest właściwością żadnego obiektu fizycznego. Jest to wrażenie percepcyjne człowieka, będące skutkiem pobudzenia systemu wzrokowego przez fale elektromagnetyczne z zakresu widzialnego. Wrażenia wzrokowe rozumiane pod pojęciem barwy są wynikiem interakcji wielu czynników takich jak rodzaj źródła światła, właściwości odbijania światła przez obserwowane obiekty, czułość obserwatora na poszczególne długości fal widmowych. W mózgu następuje ostateczna interpretacja docierającej informacji i identyfikacja postrzeganego koloru obiektu. Barwa jest więc atrybutem wrażeń wzrokowych i stąd wszelkie próby opisania i specyfikowania barwy napotykają wiele trudności. Od dawna są prowadzone prace w tym kierunku. Opracowano wiele modeli, które są wykorzystywane w praktyce, jednak wciąż trwają prace nad jeszcze lepszymi sposobami opisu barwy.

Teoria barwy jest bardzo obszerna i obejmuje wiele dziedzin wiedzy, przy czym każda z tych dziedzin rozwija tę teorię na swoje potrzeby i często stosuje swoje słownictwo. Stąd nie ma jednolitego nazewnictwa. W szczególności, dotyczy to pojęć kolor, barwa czy odcień barwy. Tutaj przyjmiemy, że podobnie jak w mowie potocznej kolor i barwa są synonimami. Odcień barwy będzie jednoznacznie określał barwy widmowe, z tym że niejednokrotnie, jeżeli nie będzie to budziło wątpliwości, zamiast używać określenia odcień barwy będziemy używali określenia barwa. Niżej ograniczymy się do podania wybranych zagadnień związanych z barwą, kierując się ich przydatnością z punktu widzenia potrzeb grafiki komputerowej.

Percepcja barwy

Zakres spektrum widzialnego obejmuje fale o długości od 380 nm do 780 nm (są to wartości przybliżone). Z punktu widzenia fizycznego barwa jest tym pojęciem, które odpowiada długości fali świetlnej - różnym długościom fali świetlnej w widmie widzialnym odpowiadają różne barwy. Barwy związane tylko z jedną długością fali są określane jako monochromatyczne. Są jednak również barwy, które nie mogą być przypisane określonym pojedynczym długościom fali. Na przykład purpury są określane przez kombinację dwóch fal z przeciwległych końców spektrum, odpowiadających barwom niebieskiej i czerwonej. Na rysunku III.1 pokazano rozmieszczenie wybranych barw w widmie widzialnym.

Rysunek III.1

Rys. III.1. Widmo widzialne

Określona barwa może być wywołana przez różne kombinacje składowych widmowych tzw. metamery. Na przykład kombinacja fal 610 nm i 540 nm o określonych natężeniach wytwarza taką samą barwę jak pojedyncza fala 575 nm.

Z punktu widzenia fizycznego nie ma różnicy między falami o różnych długościach, czy częstotliwościach. Fakt, że postrzegamy fale o różnych długościach jako różne barwy wynika jedynie ze sposobu interpretacji przez mózg pobudzeń odbieranych przez elementy światłoczułe znajdujące się w oczach. Te elementy to czopki i pręciki znajdujące się o obrębie siatkówek.

Pręciki generalnie są czułe na światło w całym zakresie widma widzialnego. Są one przede wszystkim receptorami „luminancji” i zapewniają widzenie przy słabym oświetleniu (widzenie zmierzchowe). Natomiast czopki mają mniejszą czułość i wymagają większego poziomu oświetlenia. Czopki umożliwiają percepcję zjawisk barwnych. Każdy z trzech występujących typów czopków (L, M, S) jest czuły w określonym zakresie widma. Największe czułości czopków występują w okolicach długości fal odpowiednio dla barw niebieskiej, zielonej i czerwonej.

Ponieważ są trzy typy receptorów odpowiedzialne za rozpoznawanie barwy, to można się spodziewać, że dobierając odpowiednie trzy źródła światła i ich procentowy udział, można uzyskać percepcję pożądanej barwy. Spostrzeżenie to leży u podstaw generowania obrazów barwnych w urządzeniach wyświetlających, gdzie wykorzystuje się źródła trzech podstawowych barw R, G i B. Barwę uzyskuje się na zasadzie mieszania addytywnego polegającego na dodawaniu składowych.

W przypadku druku gdzie ma miejsce absorbcja światła przez pigmenty, mamy do czynienia z metodą subtraktywną (różnicową). W tym przypadku typowy zestaw barw podstawowych obejmuje barwy C (cyjan), M (magenta) i Y (żółty). Warto jednak dodać, że bazowanie na trzech barwach podstawowych jest pewnym uproszczeniem z punktu widzenia rzeczywistej percepcji kolorów przez system wzrokowy człowieka. Rzeczywistość jest bardziej złożona i w praktyce nie jest możliwe dobranie takich trzech barw podstawowych, które pozwalałyby reprodukować dowolne barwy.

Metody opisu barwy

Jak wspomniano wcześniej, fakt iż barwa jest pojęciem percepcyjnym a nie fizycznym, komplikuje sposób opisywania barwy. Często korzysta się z następujących trzech sposobów charakteryzowania barwy.

  • Teoria trójchromatyczna bazująca na prawie Grassmana, zgodnie z którym każda dowolnie wybrana barwa percepcyjna może być określona za pomocą trzech liniowo niezależnych barw, które nie są możliwe do otrzymania z barw pozostałych. Odpowiednio ważone kombinacje barw podstawowych tworzą metamery dla barw percepcyjnych.
  • Teoria barw przeciwstawnych - kodowanie barw za pomocą trzech przeciwstawnych składowych: R-G, B-Y, K-W (jeden wymiar odpowiada jasności a pozostałe dwa specyfikują chrominancję i nie są intuicyjne).
  • Opis wynikający z obserwacji wskazującej, że są trzy właściwości mające wpływ na percepcję barwy: odcień barwy, jasność oraz nasycenie (rys. III.2).
Rysunek III.2

Rys. III.2 Ilustracja pojęć charakteryzujących barwę

Modele barw

Skala szarości

Przed omówieniem różnych modeli barw zwróćmy uwagę na skalę szarości, obejmującą odcienie szarości zawarte między czernią a bielą. Najczęściej dla opisania określonego odcienia szarości wykorzystuje się słowo ośmiobitowe. Wtedy możemy operować 256. odcieniami szarości. Jest to dostatecznie duża liczba odcieni jeżeli weźmiemy pod uwagę fakt, że przeciętny obserwator jest w stanie rozróżnić około 100 odcieni szarości.

Na rysunku III.3 pokazano przykładową skalę szarości.

Rysunek III.3

Rys. III.3. Skala szarości

Model RGB

Model RGB bazuje na założeniu, że dostępne są trzy barwy podstawowe R, G i B. Wszystkie barwy, które można uzyskać za pomocą mieszania tych składowych są reprezentowane przez punkty należące do sześcianu jednostkowego zdefiniowanego w układzie współrzędnych R, G, B. Model jest pokazany na rysunku III.4. W wierzchołkach sześcianu są reprezentowane barwy R,G,B,C,M,Y oraz czarna K (blacK) i biała W (White). Na przekątnej łączącej wierzchołki K i W znajdują się odcienie szarości.

Rysunek III.4a
Rysunek III.4b

Rys. III.4. Model barw RGB. W wersji kolorowej widoczne są tylko barwy znajdujące się na powierzchni sześcianu

Z punktu widzenia zastosowań grafiki komputerowej model RGB jest modelem dyskretnym. Każda ze składowych może być reprezentowana za pomocą słów o pewnej długości. W szczególności, jeżeli każda składowa jest reprezentowana przez słowo 8. bitowe, to barwny punkt jest reprezentowany przez 24 bity. Oznacza to, że liczba różnych barw, które można uzyskać w takim systemie wynosi 224, czyli w przybliżeniu 16,7 milionów. Jest to duża liczba barw, zwłaszcza w kontekście tego, że przeciętny obserwator rozróżnia około 10 milionów barw. A ponadto, trzeba pamiętać, że są to jedynie te barwy, które można uzyskać metodą mieszania addytywnego trzech składowych podstawowych R,G,B. Poza tym są barwy, których nie można uzyskać w ten sposób i których model RGB nie obejmuje.

Model CMY

Model CMY ma podobne cechy jak model RGB. Jest on również reprezentowany za pomocą jednostkowej kostki sześciennej, z tym że w układzie współrzędnych C,M,Y. Model ten pokazano na rysunku III.5. Jest to model dyskretny i nie reprezentuje wszystkich barw widzialnych.

Rysunek III.5

Rys. III.5. Model barw CMY

Model CMY jest modelem subtraktywnym i jest wykorzystywany głównie w drukarstwie. Barwa wydrukowana na przykład na papierze i obserwowana przez człowieka powstaje w wyniku odjęcia od światła białego części widma pochłanianej przez naniesione farby (rys. III.6).

Rysunek III.6

Rys. III.6 Odbicie światła od papieru z naniesioną farbą

W praktyce stosowany jest model CMYK, w którym ze względów praktycznych dodatkowo uwzględnia się barwę czarną - dzięki temu uzyskuje się lepszą czerń niż w przypadku uzyskiwania czerni ze składowych C, M i Y.

Model HSV

W mowie potocznej, dla intuicyjnego opisu kolorów, używa się takich określeń jak odcień barwy (barwa), nasycenie i jasność (por. rys. III.2). Odcień barwy określa się za pomocą nazw. I tak mówi się o barwie czerwonej, niebieskiej itd.

Nasycenie określa gdzie dany odcień barwy znajduje się między czystą barwą monochromatyczną (o nasyceniu 100%) a barwą białą (nasycenie 0%).

Jasność (wartość) koloru intuicyjnie określa postrzeganą intensywność światła o danej barwie. Określenie to pozwala rozróżniać barwy jasne od ciemnych, na przykład jasnoróżową od ciemnoróżowej.

Na bazie takiego intuicyjnego opisu kolorów został skonstruowany model HSV pokazany na rysunku III.7 (czasami model ten jest reprezentowany w postaci walca). W modelu tym parametr H (od. ang. Hue) określa odcień barwy wyrażany w stopniach od 0º do 360º, parametr S (od ang. Saturation) określa nasycenie wyrażane w skali od 0 do 1 albo w procentach od 0% do 100%. Parametr V (od ang. Value) określa jasność (wartość) w skali od 0 (dla czerni) do 1 (dla bieli).

W modelu HSV na obwodzie dowolnego przekroju poziomego leżą barwy nasycone, wewnątrz przekroju znajdują się barwy nienasycone a o jasności barw decyduje odległość przekroju od punktu K reprezentującego barwę czarną. Na osi V znajdują się odcienie szarości.

Rysunek III.7

Rys. III.7 Model HSV

Korzystając z modelu HSV można stosunkowo łatwo dobierać składowe H, S i V określające pożądany kolor. W tym celu można najpierw określić odcień barwy H a następnie dobrać wartości nasycenia S i jasności H. W tym sensie model HSV jest uważany za model intuicyjny. Wiele pakietów graficznych umożliwia określanie kolorów właśnie w tym modelu albo w pochodnym modelu HLS pokazanym na rysunku III.8. W modelu HLS składowa L oznacza jasność (od ang. Lightness).

Rysunek III.8

Rys. III.8 Model HLS

Oczywiście, ostatecznie na monitorze wyświetlany jest kolor uzyskany w wyniku konwersji do modelu RGB.

Model CIE XYZ

Żaden z przedstawionych wyżej modeli barw nie reprezentuje wszystkich barw widzialnych. W trakcie przeprowadzonych badań stwierdzono, że w widmie widzialnym nie ma takich trzech barw podstawowych na bazie których można było by skonstruować model reprezentujący wszystkie barwy widzialne.

W 1931 roku Międzynarodowa Komisja Oświetleniowa (Commission Internationale de l’Eclairage, w skrócie CIE) opracowała model CIE XYZ, w którym za punkt wyjścia przyjęto trzy teoretyczne barwy podstawowe X, Y i Z (nie mające rzeczywistych odpowiedników). Z założenia, model ten pozwala reprezentować wszystkie barwy widzialne. Poglądowy wygląd modelu pokazany jest na rysunku III.9.

Rysunek III.9

Rys. III.9 Model XYZ

Ponieważ okazało się, że model ten jest niezbyt wygodny w praktyce, Komisja CIE zdefiniowała bardziej użyteczny sposób opisywania barw. Każda współrzędna X, Y, Z została podzielona przez sumaryczną energię światła (X+Y+Z)

Wzory CIE XYZ

W efekcie powstały trzy współrzędne x, y, z, których suma jest równa 1. Z warunku tego wynika, że do reprezentowania barwy wystarczą dwie współrzędne x i y. Trzecią współrzędną można w razie potrzeby wyznaczyć. Teraz barwę można reprezentować w modelu x,y,Y gdzie Y reprezentuje luminancję.

We współrzędnych x, y został skonstruowany wykres chromatyczności pokazany na rysunku III.10.

Rysunek III.10

Rys. III.10. Wykres chromatyczności

W wykresie chromatyczności na części krzywoliniowej obwodu rozmieszczone są wszystkie barwy widmowe nasycone. Na odcinku w dolnej części wykresu znajdują się purpury. W środkowej części wykresu znajduje się punkt W reprezentujący barwę białą. We wnętrzu wykresu znajdują się barwy nienasycone. W efekcie wykres reprezentuje wszystkie barwy widzialne (z dokładnością do wartości luminancji).

Zwróćmy uwagę na niejednoznaczność potocznego pojęcia barwy białej. W istocie istnieje wiele różnych bieli i ich definicji. Niektóre z nich bazują na koncepcji ciała doskonale czarnego analizowanego w fizyce. Przykładowo, tak zwana biel 6500 jest to kolor ciała doskonale czarnego ogrzanego do temperatury 6500 K. Biel ta odpowiada światłu dziennemu (x = 0,3127, y = 0,3297). Biel równoenergetyczna E ma współrzędne x = y = 0,333. Biel C reprezentuje światło słoneczne obserwowane w południe (x = 0,3101, y = 0,3162).

Wykres chromatyczności ma następującą właściwość. Jeżeli na wykresie zaznaczymy położenie dwóch barw (na przykład A i C na rysunku III.11), to barwa, którą uzyskamy po zmieszaniu barw początkowych będzie leżała na odcinku łączącym te barwy (na przykład barwa B na rysunku III.11). W konsekwencji, jeżeli zmieszamy trzy barwy, to barwa wypadkowa będzie leżała wewnątrz trójkąta, w którego wierzchołkach będą barwy pierwotne. Ilustruje to rysunek III.11.

Rysunek III.11

Rys. III.11. Punkt reprezentujący barwę B powstałą w wyniku zmieszania barw A i C leży na odcinku łączącym punkty reprezentujące barwy A i C. Punkty reprezentujące barwę uzyskaną w wyniku zmieszania trzech barw początkowych leżą we wnętrzu trójkąta, którego wierzchołki reprezentują barwy pierwotne.

Na wykresie chromatyczności można zobrazować różne modele barw bazujących na barwach podstawowych. W szczególności można przedstawić model RGB tak jak to pokazuje rysunek III.12. Wszystkie barwy jakie są reprezentowane w modelu RGB znajdują się we wnętrzu trójkąta, w którego wierzchołkach znajdują się barwy R, G, B. Jak nietrudno zauważyć, poza trójkątem barw RGB znajduje się wiele innych barw widzialnych. Oznacza to, że jeżeli utożsamimy barwy wierzchołkowe z barwami RGB rzeczywistego monitora, to na danym monitorze nigdy nie pojawią się barwy leżące poza trójkątem barw. Można również zauważyć, że żaden inny zestaw trzech barw widzialnych nie umożliwia uzyskania wszystkich barw widzialnych.

Rysunek III.12

Rys. III.12. Model RGB na tle wykresu chromatyczności

Przestrzeń xyY obok swych zalet ma też ograniczenie a mianowicie nie jest percepcyjnie równomierna. Oznacza to, że jednakowym zmianom wartości parametrów nie odpowiadają jednakowe zmiany postrzeganych kolorów. W celu usunięcia tej wady komisja CIE w 1976 r. przekształciła parametry xy w parametry u’v', zdefiniowane następujący sposób:

Wzory u' v'

Na rysunku III.13 przedstawiono zmodyfikowany wykres chromatyczności

Rysunek III.13

Rys. III.13. Wykres CIEu’,v’

Model L*a*b*

CIE w 1976 r. opracowała również model bazujący na teorii barw przeciwstawnych, której geneza wywodzi się ze spostrzeżenia, że nie spotyka się określeń takich barw jak czerwono-zielona czy żółto-niebieska, natomiast postrzegane są barwy będące kombinacją czerwonej i niebieskiej, zielonej i żółtej.

Rysunek III.14

Rys. III.14. Model L*a*b*

Model L*a*b* pokazany jest na rysunku III.14. Poszczególne składowe reprezentują odpowiednio: L* - jasność (0 - 100), a* - położenie między barwami czerwoną a zieloną (-128 ÷ 128), b* - położenie na odcinku między barwami niebieską a żółtą (-128 ÷ 128).

Zaletą modelu jest łatwość porównywania barw. Różnice pomiędzy dwoma barwami wyznacza się podobnie jak odległość między punktami w przestrzeni euklidesowej 3D.

Dodajmy, że modele CIE XYZ oraz CIE L*a*b* są modelami niezależnymi od urządzenia.

Systemy zarządzania kolorem

W grafice komputerowej mamy do czynienia z różnymi urządzeniami, które umożliwiają pozyskiwanie obrazów w postaci cyfrowej (skanery, fotograficzne aparaty cyfrowe) bądź ich reprodukcję (monitory, drukarki). Każde z nich może mieć inną gamę (gamut) kolorów (zestaw dostępnych kolorów) (por. rysunek III.15). W takiej sytuacji może stać się niemożliwe wierne reprodukowanie barw na dwóch urządzeniach.

Rysunek III.15

Rys. III.15. Wykres chromatyczności z przykładowymi różnymi gamami kolorów dwóch urządzeń

Możliwym rozwiązaniem jest ograniczenie gam kolorów dwóch urządzeń do wspólnego obszaru gam tych urządzeń i korzystanie tylko z barw należących do tego ograniczonego zbioru barw.

Inne rozwiązania wykorzystują koncepcje standaryzacji modelu barw, która zakłada, że wszyscy zainteresowani będą korzystali z przyjętego modelu barw. Na rysunku III.16 przedstawiona dwa tego typu standardy: model sRGB (firmy HP i Microsoft) oraz Adobe RGB. (Biel D65 odpowiada barwie ciała doskonale czarnego ogrzanego do temperatury 6500 K).

a)
Rysunek III.16a
b)
Rysunek III.16b

Rys.III.16. Modele barw: a) sRGB, b) Adobe RGB

Znane i wykorzystywane w praktyce są również Systemy Zarządzania Barwą (CMS). W systemach tych wykorzystuje się zasadę, że każdy obraz jest przechowywany w jednej wspólnej przestrzeni barw niezależnej od wykorzystywanych urządzeń. Przestrzenią taką może być jedna z przestrzeni zdefiniowanych przez Komisję CIE (XYZ albo L*a*b*). Z kolei dla każdego urządzenia określa się tak zwany profil urządzenia, który umożliwia odwzorowanie między modelem barw danego urządzenia a przyjętą wspólną przestrzenią. System działa w następujący sposób. Obraz wygenerowany na urządzeniu jest przesyłany wraz z profilem urządzenia do systemu gdzie jest konwertowany do wspólnego modelu barw i w tej postaci jest przechowywany. Z kolei urządzenie na którym obraz ma być reprodukowany przesyła do systemu informację o swoim profilu, co umożliwia systemowi wykonanie konwersji pamiętanego obrazu do modelu barw urządzenia reprodukującego obraz.

W wykładzie przedstawione zostały problemy związane z definicja i opisem barwy w kontekście grafiki komputerowej. Pokazany został również problem pojawiający się przy wyświetlaniu bądź reprodukcji obrazów barwnych na różnych urządzeniach. Wyjaśniono także do czego służą systemy zarządzania kolorem.

Przykładowe pytania i problemy do rozwiązania.
  1. Co to są barwy monochromatyczne?
  2. Co kryje się za pojęciem „metamery”?
  3. Proszę uzasadnić stwierdzenie: ”model RGB wykorzystywany w grafice komputerowej ma budowę dyskretną”.
  4. Czy za pomocą trzech barw podstawowych R, G i B można uzyskać dowolną barwę widzialną?
  5. Proszę omówić wykres chromatyczności.
  6. Proszę wyjaśnić przeznaczenie Systemów Zarządzania Barwą.