Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 63 Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 65 Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 67 Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 69 Notice: Undefined variable: base in /home/misc/mst/public_html/lecture.php on line 36 Grafika komputerowa I – 12. Przestrzeń barw i jej układy współrzędnych – MIM UW

Zagadnienia

12. Przestrzeń barw i jej układy współrzędnych

12.1. Podstawy kolorymetrii

Światło jest promieniowaniem elektromagnetycznym o długości fali 380780nm. Barwa światła jest określona przez jego widmo, czyli funkcję opisującą rozkład energii niesionej przez światło w zależności od długości fali.

Natura wyposażyła ludzi w receptory światła (tzw. czopki) trzech różnych rodzajów. Każdy z nich ma maksimum czułości odpowiadające innej długości fali światła12Oprócz czopków mamy też tzw. pręciki, które są czulsze od czopków, ale nie rozróżniają barw. Wskutek tego w słabym oświetleniu (np. o zmroku) oglądane przedmioty są bezbarwne.. Dlatego przestrzeń wrażeń wywoływanych u ludzi przez światło (tj. sygnałów przesyłanych przez receptory do mózgu) jest trójwymiarowa13U innych gatunków bywa inaczej, np. przestrzeń wrażeń barwnych rozróżnianych przez krowę jest tylko dwuwymiarowa, natomiast morskie skorupiaki z gatunku rawka wieszcza (Squilla mantis) mają dziesięć różnych typów receptorów światła (w tym receptory czułe na polaryzację).. Inaczej mówiąc, można otrzymać dowolne wrażenie barwne przez zmieszanie światła w trzech tzw. barwach podstawowych (z zastrzeżeniem, o którym dalej).

Rys. 12.1. Wykres czułości czopków na światło.

Dla poszczególnych rodzajów czopków można znaleźć wykresy ich czułości na światło zależnie od długości fali. Energia światła zaabsorbowanego przez receptor (czyli ,,intensywność wrażenia wzrokowego”) jest całką z iloczynu widma padającego nań światła i jego funkcji czułości. Mając źródła światła o znanych widmach (np. czerwony, zielony i niebieski luminofor w ekranie monitora) możemy, dobierając odpowiednio moc ich świecenia, tak pobudzać receptory, aby ich reakcja była taka sama jak na światło pochodzące z danego źródła.

Jeśli ustalimy moc (intensywność) światła i będziemy zmieniać widmo, to dla ustalonych trzech barw podstawowych możemy wykonać rysunek dwuwymiarowy. Barwy podstawowe znajdą się w wierzchołkach trójkąta; ich intensywności (o stałej sumie, unormowanej do 1) są współrzędnymi barycentrycznymi punktu odpowiedającego danemu światłu. Wypełniając trójkąt barwami (wykonując cieniowanie metodą Gourauda), otrzymamy obrazek zawierający wszystkie barwy możliwe do otrzymania przez zmieszanie barw podstawowych. Barwy reprezentowane przez punkty na zewnątrz trójkąta mają określone współrzędne, ale otrzymanie ich przez zmieszanie barw podstawowych jest fizycznie niewykonalne.

Rys. 12.2. Zasada działania kolorymetru.

Pomiar współrzędnych barwy danego światła przeprowadza się za pomocą kolorymetru. Zawiera on trzy źrodła światła wzorcowego; lampę czerwoną, czyli żarówkę z filtrem, oraz dwie lampy rtęciowe, wytwarzające światło zielone i niebieskie. Osoba dokonująca pomiaru tak ustawia przysłony źródeł światła wzorcowego, aby ściany białego klina były (jej zdaniem) identycznie oświetlone przez światło badane i wzorcowe. Współrzędne barwy odczytuje się z podziałek na przysłonach. Aby umożliwić pomiar ujemnych współrzędnych barwy (dla światła, którego nie można otrzymać, mieszając światła wzorcowe), kolorymetr jest wyposażony w źródła światła wzorcowego z przysłonami także od strony okienka, przez które wpada światło badane.

12.2. Diagram CIE

Dla danego widma może istnieć tzw. dominująca długość fali. Gdyby światło obserwowane przez oko było mieszaniną (w odpowiednich proporcjach) światła o tej długości fali ze światłem białym14Określenie ,,światło białe” jest niejednoznaczne, przez co jest źródłem wielu nieporozumień. Można umawiać się, że jest to światło o stałym widmie w całym zakresie długości fali albo światło wysyłane przez ,,ciało doskonale czarne” o ustalonej temperaturze. Chwilowo stosuję pierwszą umowę., to wrażenia byłyby identyczne jak wrażenia wywołane przez światło o danym widmie. Światło białe jest rozszczepiane przez pryzmat na tęczę. Poszczególne barwy tęczy odpowiadają różnym dominującym długościom fali.

Jedną z podstaw postępu technicznego jest standaryzacja. W zastosowaniach technicznych podstawą do opracowywania standardów jest powszechnie używany diagram CIE, ustalony w 1931r. przez Międzynarodową Komisję Oświetleniową (Commision Internationale de l'Eclairage), przedstawiony na rysunku 12.3. Układ współrzędnych barw, w którym jest przedstawiany ten diagram, będący także podstawą do określania innych układów współrzędnych w przestrzeni barw, nazywa się układem XYZ. Obszar płaszczyzny, który reprezentuje barwy widzialne, ma kształt podkowy15Z moich obserwacji wynika, że końska podkowa ma inny kształt, ale wszystkie opisy diagramu CIE, a więc i ten, zawierają wzmiankę o podkowie. wpisanej w trójkąt, którego wierzchołki stanowią układ odniesienia. Dzięki temu współrzędne wszystkich widzialnych barw w układzie XYZ są nieujemne.

Punkty na krzywej ograniczającej diagram od góry odpowiadają barwom światła monochromatycznego (w którym występują tylko fale o jednej długości). Na krzywej tej leżą kolejne barwy tęczy. Odcinek ograniczający diagram od dołu to tzw. linia purpury. Światło reprezentowane przez punkty tego odcinka jest mieszaniną światła fioletowego i czerwonego i nie można dla niego wskazać dominującej długości fali. Punkty wewnątrz diagramu reprezentują światło ,,złamane”, z domieszką bieli.

Rys. 12.3. Diagram CIE (przybliżony).

Uwaga: Światło o barwie reprezentowanej przez punkty spoza obszaru ograniczonego krzywą tęczy i linią purpury nie istnieje. Także barwy określające układ odniesienia są tylko umowne, wbrew temu, co można przeczytać w niektórych publikacjach. Ponieważ obszar reprezentujący barwy światła widzialnego nie jest wielokątem, więc nie istnieje żaden skończony zbiór źródeł światła, którego mieszanie pozwoliłoby otrzymać wszystkie widzialne barwy (ale jest oczywiste, dlaczego obszar ten jest wypukły).

Płaski obrazek umożliwia przedstawienie pewnego przekroju trójwymiarowego zbioru wrażeń rozróżnianych przez ludzki narząd wzroku; diagram CIE przedstawia światło o stałej mocy. Bryła, której punkty reprezentują światło widzialne o ograniczonej mocy całkowitej, przedstawiona w układzie XYZ, jest pokazana na rysunku 12.4.

Rys. 12.4. Bryła barw widzialnych w układzie CIE XYZ.

Pojęcie bieli jest umowne, ponieważ oko przyzwyczaja się do różnych warunków oświetlenia i odbiera jako ,,białe” światło o różnych barwach. Na ogół za białe przyjmuje się światło wysyłane przez ciało doskonale czarne (np. pogrzebacz, żarówka, Słońce), ogrzane do odpowiedniej temperatury (np. pogrzebacz — 700K, żarówka — 3000K, Słońce — 6000K, oświetlenie przez promienie słoneczne rozproszone w atmosferze — 9000K). Na diagramie CIE barwy światła białego o różnych temperaturach leżą na pewnej krzywej (uwidocznionej na rysunku 12.3).

Rys. 12.5. Barwy dopełniające na diagramie CIE.

Mając ustaloną barwę białą można wprowadzić pojęcia nasycenia barwybarwy dopełniającej. Barwa jest nasycona wtedy, gdy reprezentujący ją punkt leży na brzegu obszaru barw widzialnych. Nasycenie jest równe 0 wtedy, gdy światło jest białe i 1 jeśli odpowiedni punkt znajduje się na brzegu obszaru barw widzialnych. Dla ustalonej barwy można narysować prostą przechodzącą przez reprezentujący ją punkt i punkt bieli. Nasycenie można odczytać mierząc proporcję podziału odcinka łączącego punkt bieli z brzegiem obszaru, przez punkt reprezentujący barwę daną. Barwa dopełniająca jest reprezentowana przez pewien punkt na rozpatrywanej prostej po przeciwnej stronie punktu bieli. Ma ona to samo nasycenie i moc, co barwa przez nią dopełniana.

Rys. 12.6. Barwy możliwe do zrealizowania na ekranie monitora.

Różne urządzenia mają różne zbiory barw, które mogą reprodukować. Na przykład telewizory i monitory komputerowe z lampą kineskopową mają trzy rodzaje luminoforów, które świecąc z różną intensywnością, zawsze nieujemną, odwzorowują barwy reprezentowane przez punkty należące do trójkąta, którego wierzchołki odpowiadają barwom światła wysyłanego przez poszczególne luminofory. Drukarki kolorowe mają co najmniej trzy różne atramenty, co teoretycznie umożliwia reprodukcję barwy o dowolnym odcieniu. Częściej jednak atramentów jest więcej (np. sześć), ponieważ dla otrzymania wydruku o dobrej jakości potrzebne jest uzyskanie barw o wysokim nasyceniu, a to jest trudne dla barw otrzymanych przez zmieszanie różnych atramentów, których barwy są odległe od barw reprodukowanych. Zwykle zbiór barw możliwych do wydrukowania nie zawiera, ani nie jest zawarty w zbiorze barw możliwych do otrzymania na monitorze. Oczywiście, zadrukowany papier nie jest źródłem światła, tylko obiektem odbijającym światło, a zatem reprodukcja barw przez urządzenia drukujące jest zależna od światła, w jakim obraz oglądamy. Zwróćmy jednak uwagę, że wzrok osoby oglądającej wydrukowany obrazek przyzwyczaja się do światła w otoczeniu (przez co uważamy, że ,,biała” kartka papieru wygląda tak samo w świetle dziennym i sztucznym).

Tworzenie i przesyłanie obrazu wiąże się z błędami reprezentacji barw. Konieczne jest zatem zbadanie następującego problemu: na jakie zniekształcenia barw ludzki wzrok jest najbardziej i najmniej wyczulony?

Odpowiedź na to pytanie ma znaczenie dla opracowania metod transmisji (w tym kompresji) obrazów i dla reprodukcji obrazu na urządzeniu, które nie może oddać wszystkich barw obecnych w obrazie danym. W dużym uproszczeniu można stwierdzić, że najmniej dostrzegalne są zmiany nasycenia i jasności całego obrazu, a najbardziej widoczne są różne zmiany odcienia (czyli długości fali dominującej) oraz różne zmiany jasności sąsiednich obszarów. Z tego powodu, aby wydrukować obraz na drukarce, która nie odtwarza takich barw jak monitor, trzeba dokonać tzw. desaturacji obrazu — wszystkie punkty reprezentujące barwy na obrazie będą ,,przesunięte” w stronę bieli.

12.3. Współrzędne RGB i YIQ

W praktyce (telewizyjno-komputerowej) zamiast współrzędnych XYZ stosuje się współrzędne RGB, które mają związek z barwami światła emitowanego przez luminofory w kineskopach. W tabeli niżej są współrzędne X, Y punktów odniesienia układu RGB w standardach NTSC i CIE, a także barwy luminoforów w typowym monitorze.

NTSC CIE monitor
R 0.67,0.33 0.735,0.265 0.628,0.346
G 0.21,0.71 0.274,0.717 0.268,0.588
B 0.14,0.08 0.167,0.009 0.15,0.07

Do transmisji obrazów (w telewizji) stosuje się układ YIQ, w którym podaje się wartość tzw. luminancji Y i dwie wartości chrominancji, I, Q. Sygnał luminancji wystarczy do utworzenia obrazu na ekranie telewizora czarno-białego.

Aby obliczyć współrzędne YIQ znając RGB i odwrotnie, stosuje się następujące wzory (tu jest NTSC RGB):

\displaystyle\left[\begin{array}[]{c}Y\\
I\\
Q\end{array}\right] \displaystyle=\left[\begin{array}[]{ccc}0.299&0.587&0.144\\
0.596&-0.275&0.321\\
0.212&-0.528&0.311\end{array}\right]\left[\begin{array}[]{c}R\\
G\\
B\end{array}\right]
\displaystyle\left[\begin{array}[]{c}R\\
G\\
B\end{array}\right] \displaystyle=\left[\begin{array}[]{ccc}1&0.956&0.62\\
1&-0.272&-0.647\\
1&-1.108&1.705\end{array}\right]\left[\begin{array}[]{c}Y\\
I\\
Q\end{array}\right].

Okazuje się, że w obrazach telewizyjnych do przesyłania sygnału Y wystarczy pasmo o szerokości 4MHz, a dla sygnałów I oraz Q odpowiednio 1.5MHz i 0.6MHz. Wynikające stąd zniekształcenia obrazów są dostatecznie małe w telewizji16Ale utworzenie obrazu na ekranie monitora komputerowego o wysokiej rozdzielczości wymaga wyświetlania pikseli w tempie od 100 do 250MHz; w przeciwnym razie małe literki byłyby nieczytelne. Także tzw. telewizja HDTV wymaga przesyłania sygnałów o znacznie szerszych pasmach. W tym celu sygnał w postaci cyfrowej poddaje się kompresji stratnej, dzięki czemu nie trzeba wykorzystywać aż tak szerokich pasm, niedostępnych z powodów technicznych.. Również wiele algorytmów stratnej kompresji obrazu (np. JPEG) reprezentuje obraz we współrzędnych YIQ i koduje każdą składową osobno, dopuszczając większe zniekształcenia dla składowych chrominancji i osiągając dzięki temu większy współczynnik kompresji przy zachowaniu subiektywnie dobrej jakości obrazu.

12.4. Współrzędne CMY i CMYK

Współrzędne XYZ, a także YIQRGB, są związane z modelem addytywnego mieszania światła. W drukarstwie i fotografii ma zastosowanie też model subtraktywny, z którym związane są układy współrzędnych CMYCMYK. Symbole współrzędnych pochodzą od angielskich nazw barw podstawowych (Cyan — niebieskozielony, Magenta — purpurowy, Yellow — żółty). Zasada subtraktywnego mieszania barw jest taka, że światło białe przechodzi przez barwne filtry, które je tłumią. Jeśli więc C=M=Y=0, to mamy światło białe, jeśli C=M=0, Y=1 to światło żółte (żółty filtr, Y, nie przepuszcza światła niebieskiego), C=0, M=Y=1 opisuje światło czerwone (filtr purpurowy, M, zatrzymuje światło zielone) i dla C=M=Y=1 otrzymujemy czerń.

Ponieważ barwniki, którymi drukuje się obrazy, nie są idealnymi filtrami, więc nawet przy ich maksymalnym stężeniu w danym miejscu pewna ilość światła przechodzi przez warstwę farby lub atramentu (dwukrotnie, w międzyczasie odbijając się od białego papieru) i nie otrzymujemy idealnej czerni (tylko jakiś bury kolor). Dlatego stosuje się model CMYK, w którym czwarta współrzędna, K (ang. blacK) opisuje stężenie czarnej farby. Teoretycznie, mając współrzędne R, G, B, obliczamy

\displaystyle K \displaystyle{}=1-\min\{ R,G,B\},
\displaystyle C \displaystyle{}=1-R-K,\qquad M=1-G-K,\qquad Y=1-B-K.

Jedna ze współrzędnych C, M, Y otrzyma wartość 0.

W praktyce często przyjmuje się mniejszą wartość K, co poprawia końcowy efekt, ponieważ m.in. domieszanie niewielkiej ilości czarnej farby do pozostałych ,,zabrudziłoby” barwę wydrukowanego obrazu. Ponadto, z uwagi na nieuniknione przesunięcia wydruków w poszczególnych barwach, czarny nadruk na kolorowym tle może ,,nie trafić” w odpowedni biały obszar otoczony tłem i widać białą ,,obwódkę” dookoła czarnego obszaru. Aby temu przeciwdziałać należy tło wydrukować bez ,,otworu” na czarną farbę, której naniesienie nieco obok właściwego miejsca będzie dzięki temu niedostrzegalne. Z tego przykładu wynika, że przejście od współrzędnych RGB do CMYK w celu otrzymania wyciągów barwnych do drukowania jest trywialne tylko pozornie.

Warto pamiętać, że zagadnienia związane z mieszaniem farb drukarskich lub atramentów na papierze są bardzo skomplikowane i dlatego przygotowanie obrazu do druku w celu otrzymania takiej jak trzeba ilości farby na papierze jest sztuką trudną. Stanowi ona przedmiot intensywnych badań firm produkujących maszyny drukarskie i drukarki. Firmy te starannie chronią swoje tajemnice przemysłowe. Ponieważ współrzędne CMYK są ściśle związane z określoną technologią (tj. na przykład z przygotowaniem filmów do naświetlania form drukarskich), więc ich praktyczna przydatność dla użytkowników grafiki (z wyjątkiem osób przygotowujących ilustracje do druku) jest raczej niewielka (ale warto wiedzieć, o co może chodzić pracownikowi firmy poligraficznej, z którym będziemy współpracować).

12.5. Współrzędne HSV i HLS

Współrzędne RGB są wygodne w technice (w konstrukcji monitorów), ale dla potrzeb interakcyjnego dobierania barw są one mało intuicyjne. Dla użytkowników programów graficznych (zwłaszcza dla osób, których wykształcenie techniczne nie dorównuje plastycznemu) znacznie wygodniejszy jest układ współrzędnych HSV (nazwy współrzędnych są wzięte z angielskiego: Hue oznacza odcień, Saturation — nasycenie17Nasycenie w tym układzie jest określone względem bryły barw fizycznie realizowalnych. Wartość 1 nasycenia odpowiada więc barwom o maksymalnym nasyceniu możliwym do uzyskania na danym urządzeniu, mimo że te barwy leżą wewnątrz obszaru barw widzialnych przedstawionego za pomocą diagramu CIE., Value — wartość).

Zbiór barw możliwych do osiągnięcia na monitorze można przedstawić jako sześcian; współrzędne R, G, B zmieniają się od 0 do 1 wzdłuż jego krawędzi. Tę bryłę barw można poddać nieliniowemu przekształceniu, w wyniku którego powstaje stożek. Czasem też przedstawia się tę bryłę jako ostrosłup sześciokątny, być może dlatego, że łatwiej jest go narysować.

Rys. 12.7. Układ współrzędnych i bryła HSV.

Wierzchołek stożka ma współrzędną V=0 i reprezentuje barwę czarną (R=G=B=0). Współrzędne S i H są w tym punkcie nieokreślone.

Środek podstawy stożka ma współrzędne V=1, S=0 i reprezentuje barwę białą. Punkty na osi stożka reprezentują różne poziomy szarości; z wyjątkiem wierzchołka stożka współrzędna S jest równa 0, a H jest nieokreślona. Oddalając się od osi stożka zwiększamy nasycenie S do maksymalnej wartości 1 na powierzchni bocznej stożka. Współrzędna H odpowiada kątowi obrotu wokół osi stożka. Rysunek 12.7 przedstawia rozmieszczenie barw o poszczególnych odcieniach.

Do przejścia między układami RGB i HSV służą poniższe procedury, napisane przy założeniu, że wszystkie współrzędne przebiegają przedział [0,1]. Czasem współrzędną H podaje się w stopniach, od 0 do 360.

procedure RGBtoHSV ( rgbhsv );
begin
  max := \max(r,g,b);
  min := \min(r,g,b);
  delta := max-min;
  v := max;
  if max \neq 0 then s := delta/max else s := 0;
  if s\neq 0 then begin
    if r=max then h := (g-b)/delta
    else if g=max then h := 2+(b-r)/delta
    else h := 4+(r-g)/delta;
    if h<0 then h := h+6;
    h := h/6
  end
end {RGBtoHSV};
procedure HSVtoRGB ( hsvrgb );
begin
  if s=0 then begin r := vg := vb := v end
  else begin
    if h=1 then h := 0;
    h := 6h; i := \lfloor h\rfloor; f := h-i;
    a := v(1-s); b := v(1-s*f); c := v(1-s(1-f$));caseiof0:beginr$ := v;  g := c;  b := a end;
   1: begin r := b;  g := v;  b := a end;
   2: begin r := a;  g := v;  b := c end;
   3: begin r := a;  g := b;  b := v end;
   4: begin r := c;  g := a;  b := v end;
   5: begin r := v;  g := a;  b := b end
    end
  end
end {HSVtoRGB};

Współrzędna V w układzie HSV jest taka sama dla np. najjaśniejszej barwy niebieskiej, jak i dla białej. Ponieważ w tym drugim przypadku barwa jest związana z większą mocą światła, więc bardziej intuicyjny może wydawać się układ HLS, w którym bryła barw składa się z dwóch stożków zetkniętych podstawami. Współrzędna L (ang. Light), która zastępuje współrzędną V w tym układzie, dla światła białego ma wartość 2, natomiast barwy ,,czyste” o maksymalnym nasyceniu (które w bryle barw HSV leżą na brzegu podstawy stożka) mają współrzędną L=1. Wprawdzie światło żółte (R=G=1, B=0) wydaje się znacznie jaśniejsze niż np. niebieskie (R=G=0, B=1; luminancja światła żółtego jest równa 0{.}866, a niebieskiego 0{.}144, czyli jest 6 razy mniejsza), ale takie rozwiązanie okazało się użyteczne.

Rys. 12.8. Bryła barw HLS.

Wybór układu współrzędnych i związanej z nim bryły barw jest ważny nie tylko ze względu na wygodę wybierania pojedynczych punktów (tj. barw). Znacznie istotniejsze jest mieszanie barw oraz interpolacja między wskazanymi punktami. Mieszanie barw podczas filtrowania (zmiany rozdzielczości, antyaliasing) i interpolacja w cieniowaniu Gourauda najczęściej wiążą się z addytywnymi układami współrzędnych, natomiast w interakcyjnym dobieraniu barw często celem jest otrzymanie barw reprezentowanych przez punkty wskazanego odcinka. Zauważmy, że interpolacja w bryle barw RGB polega na interpolacji współrzędnych, natomiast interpolacja w bryłach HSVHLS wymaga przejścia do pomocniczego układu współrzędnych kartezjańskich i interpolacji tych współrzędnych.

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.

Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.