Laboratorium rafiki Komputerowej Przekształcenia na modelach barw mgr inż. Piotr Stera Politechnika Śląska liwice 2004 Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi modelami barw stosowanymi w grafice komputerowej i konwersją danych pomiędzy nimi 2 Wprowadzenie Istnieje bardzo wiele modeli barw. W zależności od potrzeb konkretnego zastosowania należy wybrać odpowiednią metodę reprezentacji barwy. Tu zostanie przedstawionych tylko kilka. 2. Model W grafice komputerowej najczęściej stosowanym modelem jest model. Wywodzi się on z trójchromatycznej teorii widzenia. Jego geometrycznym odwzorowaniem jest sześcian o boku o długości, jeśli przyjmie się że każda z wartości, i będzie z zakresu 0.. (rys. ). Wszystkie możliwe do uzyskania w tym modelu kolory znajdują się wewnątrz tego sześcianu. C W K M ysunek : Model Jego wierzchołkami są punkty odpowiadające podstawowym barwom w tym modelu (czerwona, zielona i niebieska ) przy maksymalnej ich wartości oraz ich kombinacjom przy takim samym warunku (magneta M, żółta, cyjan C oraz biały W). Ostatnim wierzchołkiem jest punkt odpowiadający brakowi wszystkich składowych (czerń K). Na głównej przekątnej sześcianu (KW) znajdują się poziomy szarości. Niestety model ten nie odzwierciedla całego zbioru barw widzialnych, w szczególności ograniczona jest odwzorowywana maksymalna jasność. Przestrzeń wyznaczana przez ten model nie jest jednorodna pod względem percepcji barw, co oznacza, że jednakowe przesunięcia wewnątrz sześcianu w różnych jego miejscach nie powodują jednakowych zmian w odbiorze barwy przez człowieka. Zaletą jest to iż można
w prosty sposób zrealizować fizyczny pomiar wartości, i. Dla addytywnego mieszania barw (gdy jest to mieszanina świateł barw podstawowych) ten model nadaje się bardzo dobrze. 2.2 Model CM Model CM, podobnie jak model, tworzy przestrzeń barw w kształcie sześcianu (rys. 2). óżnicę stanowią barwy podstawowe w tym modelu: C cyjan (zielono-niebieska), M magenta (purpurowa) i żółta oraz zamienione miejscami barwa biała (W) i czarna (K). W modelu tym, w przeciwieństwie do modelu, mieszanie barw odbywa się substraktywnie (składowe barw podstawowych w świetle odbitym od kolorowego obiektu; czyli ze światła białego odfiltrowane są składowe, które nie występują w badanym kolorze). Z takim efektem mamy do czynienia w przypadku materiałów drukowanych, dlatego przy ich tworzeniu często wykorzystuje się ten model przestrzeni barw. arwę czarną w tym modelu tworzą wszystkie trzy składowe przyjmujące wartości maksymalne. Dla uproszczenia procesu drukowania i polepszenia jakości wydruków najczęściej podstawowe składowe uzupełnia się barwą czarną i jest to tzw. model CMK (zob 2.). K M W C ysunek 2: Model CM Zależności pomiędzy parametrami modelu CM i : 2. Model CMK C M = = C M () (2) Model CMK bazuje na modelu CM i powstał z myślą o stosowaniu go przy reprodukcji barw na trwałych nośnikach, np. papierze. Prócz składowych występujących w modelu CM dodano jeszcze jedną oznaczającą kolor czarny (K). Wynika to z tego, że teoretycznie złożenie składowych C, M i o maksymalnej wartości powinno dać w efekcie kolor czarny, a w przypadku rzeczywistych barwników często nie jest to prawdą. W literaturze można spotkać dwie metody przeliczania składowych CM na model CMK. Pierwsza z nich ([4]) bazuje na bezwzględnym obliczaniu różnic przy wyliczaniu składowych C, M i. Dla regulacji kontrastu stosuje się dodatkowy współczynnik kɛ < 0; >, przy czym najczęściej k =. Konwersję tę przedstawiają wzory ([4]): C = C k min(c, M, ) M = M k min(c, M, ) ()
= k min(c, M, ) K = k min(c, M, ) zaś konwersję z modelu CMK na model CM można dokonać następująco: C = C + K M = M + K (4) = + K a konwersję bezpośrednio z modelu można obliczyć: C = ( ) k min(,, ) M = ( ) k min(,, ) (5) = ( ) k min(,, ) K = k min(,, ) i w z powrotem: = C + K = M + K (6) = + K W drugim przypadku składowe obliczane są w sposób względny ([]): C = (C min(c, M, ))/( min(c, M, )) M = (M min(c, M, ))/( min(c, M, )) (7) = ( min(c, M, ))/( min(c, M, )) K = min(c, M, ) oraz w drugim kierunku: C = min(, C ( K) + K) M = min(, M ( K) + K) (8) = min(, ( K) + K) lub bezpośrednio z modelu ([]): C = ( min(,, ))/( min(,, )) M = ( min(,, ))/( min(,, )) (9) = ( min(,, ))/( min(,, )) K = min(,, ) oraz z powrotem: = min(, C ( K) + K) = min(, M ( K) + K) (0) = min(, ( K) + K)
2.4 Model HSV Model HSV opracował w 978 roku Alvey ay Smith. arwa w tym modelu opisana jest poprzez trzy parametry: odcień (Hue H), nasycenie (Saturation S) oraz wartość (Value V). Pewną odmianą modelu HSV jest model HSI, w którym ostatni parametr nazywany jest intensywnością (Intensity I) oraz model HS, w którym jest on jasnością (rightness ). eometrycznym odwzorowaniem tego modelu jest ostrosłup o podstawie sześciokąta foremnego rys.. Odcień barwy jest reprezentowany jako wartość kąta, przy czym za kąt zerowy przyjęto kąt odpowiadający barwie czerwonej. Nasycenie jest interpretowane jako odległość od osi ostrosłupa, zaś parametrowi intensywności odpowiada odległość od wierzchołka bryły. W tak utworzonej bryle podstawowym kolorom nasyconym odpowiadają: czerwonemu, żółtemu, zielonemu, cyjanowi, niebieskiemu i magnecie odpowiednio wierzchołki podstawy, które są przesunięte względem punktu zerowego (kolor czerwony) o 0Π, Π, 2Π, Π, 4Π, 5Π i 2Π. arwie białej odpowiada środek środek podstawy, barwie czarnej wierzchołek bryły, a na osi bryły znajdują się punkty reprezentujące poszczególne stopnie szarości. Każdy przekrój prostopadły do osi bryły odpowiada odpowiedniemu podsześcianowi w modelu. Przy tym modelu odcień przyjmuje wartości 0..2Π ( 60 ), a parametry nasycenia i wartości są z zakresu 0... ysunek : Model HSV Konwersja danych z modelu do modelu HSV odbywa się przy zastosowaniu wzorów (opracowane wg [4], [] i [2]): v = max(r, g, b) s = h = 0 dla v = 0 max(r,g,b) min(r,g,b) max(r,g,b) dla v 0 UNDEF dla v = min(r, g, b) g b dla v = r r min(r,g,b) 2 + b r dla v = g g min(r,g,b) 4 + r g dla v = b b min(r,g,b) ()
a z powrotem: (r, g, b) = (v, v, v) dla h = UNDEF (v, v ( (s ( h))), v ( s)) dla 0 h < (v ( (s ( h ))), v, v ( s)) dla h < 2 (v ( s), v, v ( (s ( h)))) dla 2 h < (v ( s), v ( (s ( h ))), v) dla h < 4 (v ( (s (5 h))), v ( s), v) dla 4 h < 5 (v, v ( s), v ( (s ( h 5)))) dla 5 h < 2 (2) 2.5 Model HLS W modelu HLS opracowanym przez firmę Tektronix barwa jest opisana trzema parametrami: odcieniem (H Hue), jasność (L Luminance) i nasyceniem (S Saturation). Jego przestrzeń reprezentują dwa stożki stykające się ze sobą podstawami. Na obwodzie stykających się podstaw stożków są rozmieszczone barwy nasycone na takiej samej zasadzie jak w modelu HSV. Osie brył tworzą oś L przy czym na wierzchołku jednego stożka parametr ten przyjmuje wartość 0 (i punkt ten reprezentuje barwę czarną), a na wierzchołku drugiego stożka wartość (punkt ten reprezentuje barwę białą). Zasadniczą różnicą w porównaniu z modelem HSV jest wartość jasności, dla której barwy przyjmują maksymalne nasycenie: w modelu HSV przyjmuje ona wartość, a w tym modelu wynosi 0,5. Konwersji z modelu można dokonać wg wzorów: l = max(r,g,b)+min(r,g,b) 2 s = h = max(r,g,b) min(r,g,b) max(r,g,b)+min(r,g,b) dla l < 0.5 max(r,g,b) min(r,g,b) 2 max(r,g,b) min(r,g,b) dla l 0.5 UNDEF dla r = g = b g b dla max(r, g, b) = r r min(r,g,b) 2 + b r dla max(r, g, b) = g g min(r,g,b) 4 + r g dla max(r, g, b) = b b min(r,g,b) () oraz w drugą stronę: (r, g, b) = { (l, l, l) dla h = UNDEF (val(h + 2 ), val(h), val(h 2 )) dla 0 h < 2 (4) gdzie: zaś val(x) = n + (n2 n) h dla 0 h < n2 dla h < n + (n2 n) ( 4 h) dla h < 4 n dla 4 h < 2 n2 = { l + l s dla 0 l 0.5 l + s l s dla 0.5 < l n = 2 l n2 (5) (6)
Program ćwiczenia. Zapoznać się z programem do konwersji formatów graficznych oraz dostępnymi kompilatorami. 2. Napisać funkcje konwersji pomiędzy zadanymi przez prowadzącego modelami barw.. Wykorzystując napisane funkcje konwersji modeli barw napisać program generujący następujące obrazki dla zadanej przez prowadzącego barwy: prostokąt o jednolitej barwie dla każdej współrzędnej przestrzeni barw prostokąt, którego barwa będzie się zmieniać w poziomie lub w pionie w całym dostępnym zakresie tej współrzędnej i zawierać zadaną barwę Np. dla zadanej barwy czerwonej o współrzędnych =(,0,0) i dla przestrzeni HSV powinny powstać następujące obrazy: czerwony prostokąt o barwie =(,0,0) zmiana parametru H: zmiana odcieni od czerwonego poprzez całe koło odcieni do czerwonego zmiana parametru S: zmiana nasycenia od barwy achromatycznej do pełnego nasycenia czerwieni zmiana parametru V: zmiana jasności od ciemnej do jasnej czerwieni, przy stałym nasyceniu wynikającym z konwersji parametrów do przestrzeni HSV 4. W sprawozdaniu zamieścić: stronę tytułową treść zadania Literatura wydruk napisanych funkcji i programu (z komentarzami!!!) uwagi i wnioski [] D. ourgin. Color spaces faq. http://www.scarse.org/docs/color_faq.html. [2] J. urkardt. Colors color conversion. http://www.csit.fsu.edu/~burkardt/f_src/ colors/colors.html, 200. [] M. Jankowski. Elementy grafiki komputerowej. Wydawnictwa Naukowo-Techniczne, Warszawa, 990. [4] J. Zabrodzki, editor. rafika komputerowa. Wydawnictwa Naukowo-Techniczne, Warszawa, 994.