GK 10 modelowanie koloru


Grafika komputerowa
Grafika komputerowa
Modelowanie koloru
Światło widzialne
fiolet - niebieski - cyan - zielony - żółty - pomarańczowy - czerwony
Spektrum światła białego:
400nm 700nm
Światło widzialne stanowi wąski wycinek fal
elektromagnetycznych z zakresu 400nm ÷ 700nm.
Fale dłuższe (podczerwień) i krótsze (nadfiolet) są dla
oka ludzkiego niewidoczne.
Światło białe składa się ze wszystkich długości fal
widma.
Wrażenie koloru - czynniki
P()
Widmowy rozkład energii światła
z dominującą długością fali
e2
e1
[nm]



Barwa (ang. hue)  określana przez dominującą długość fali, czynnik
jakościowy  to co odróżnia np. zieleń od błękitu.
Nasycenie (ang. saturation)  określane jako stosunek energii dominującej
długości fali e2 do wypadkowej energii e1 pozostałych fal tworzących widmo
świetlne. Nasycenie (czystość barwy) jest tym większe, im większa jest
wartość e2 w stosunku do e1. Dla e1=0 nasycenie maksymalne, dla e2=e1
nasycenie zerowe (barwy achromatyczne).
Jasność (ang. ligthness)  określana stopniem podobieństwa barwy do bieli
(dla odcieni jasnych) czy czerni (dla odcieni ciemnych), czynnik ilościowy
proporcjonalny do całki z widmowego rozkładu energii światła.
Barwy podstawowe, barwy dopełniające
Światło białe można uzyskać mieszając w odpowiednich
proporcjach tylko kilka barw: np. barwÄ™ czerwonÄ…, zielonÄ…
i niebieskÄ… w stosunku 26:66:8.
Takie trójki czy pary barw, które w sumie dają światło
białe nazywamy barwami dopełniającymi. Dla barwy
czerwonej (656 nm) barwą dopełniającą jest cyjan (492
nm), dla żółtej (574 nm) niebieska (482 nm).
Barwy, którymi opisujemy inne nazywane są barwami
podstawowymi. Nie istnieje  najlepszy zestaw barw
podstawowych.
Prawa Grassmana
I prawo  prawo trójchromatyczności
Każda dowolna barwa może być odwzorowana za pomocą
trzech liniowo niezależnych barw.
Trzy barwy tworzą układ niezależnych liniowo jeżeli
dowolne zsumowanie dwóch z nich nie może dać trzeciej
barwy układu.
uwaga: twierdzenie odwrotne nie jest prawdziwe, tzn. z
dowolnie wybranych trzech liniowo niezależnych barw, nie
da się utworzyć wszystkich barw.
Cyan
G B
Yellow R Magenta
Model RGB Model CMY
Prawa Grassmana
II prawo  prawo ciągłości
W mieszaninie złożonej z dwóch barw, stopniowa
zmiana barwy jednego ze składników pociąga za sobą
stopniowÄ… zmianÄ™ barwy mieszaniny.
Alternatywne sformułowanie: przy ciągłej zmianie
długości fali promieniowania barwa zmienia się w
sposób ciągły.
III prawo  prawo addytywności
Barwa mieszaniny zależy jedynie od barw jej
składników, a nie od ich składu widmowego.
Modele koloru
niezależne od urządzenia  CIE XYZ, CIE La*b*
ukierunkowane na użytkownika  HLS, HSV(HSB)
ukierunkowane na sprzęt  RGB, CMY, CMYK
Model CIE XYZ
opracowany w 1931 r. przez Międzynarodową Komisję Oświetleniową (CIE)
zdefiniowany na podstawie systemu CIE RGB, w którym doświadczalnie za
pomocą kolorymetru wizualnego określono wartości składowych
trójchromatycznych r(), g(), b() widma światła widzialnego L
składowe r(), g(), b() określają względny udział barw podstawowych
R, G i B potrzebnych do wywołania takiego samego wrażenia jak barwa
widmowa
Kolorymetr wizualny
- światła wzorcowe: R[700 nm]
G[546 nm]
B[435 nm]
- L (lambda): światlo badane
- składowe r(), g(), b() wyznaczono dla
L=< 360-830 nm> z krokiem co 1nm
Przestrzeń kolorów CIE XYZ
składowe trójchromatyczne x(), y(), z() otrzymane w wyniku
przekształceń liniowych składowych r(), g(), b() systemu CIE RGB
są nieujemne w całym zakresie widma
składowa y()  informacja o strumieniu światła (luminancja, jasność)
składowe x() i z()  informacja o barwie (chromatyczność)
w przestrzeni CIE XYZ kolory widzialne są zawarte w bryle zbliżonej do
stożka o wierzchołku w początku układu współrzędnych
Składowe trójchromatyczne w układzie CIE XYZ
Diagram chromatyczności CIE
Stożek barw widzialnych Rzuty płaszczyzny X+Y+Z=1
w przestrzeni CIE XYZ w przestrzeni CIE XYZ
Diagram (wykres, trójkąt) chromatyczności CIE jest fragmentem
przestrzeni CIE XYZ wyciętej przez trójkąt ograniczony osiami XYZ
leżący na płaszczyznie X+Y+Z=1, obszar zbliżony kształtem do trójkąta,
zamknięty dwiema liniami - krzywą i prostą.
Diagram chromatyczności CIE
- krawędz części krzywoliniowej - barwy podstawowe widma światła białego
- krawędz dolna - purpury, powstałe przez zmieszanie w różnych proporcjach
skrajnych barw widma światła białego (380nm światła fioletowego i 780nm światła
czerwonego)
- barwy w pełni nasycone (czyste) na krawędziach, nienasycone wewnątrz trójkąta
- środek diagramu (C) jest punktem bieli o współrzędnych x=0,333, y=0,333
- barwa zmienia się wraz z kątem obrotu wokół punktu środkowego, nasycenie
zmienia się wzdłuż linii prostych przechodzących przez ten punkt.
Diagram CIE- wykorzystanie
1. Wyznaczanie nasycenia barwy
Nasycenie barwy A jest określone
proporcjÄ…:
s = AC / BC
2. Dodawanie barw:
Barwę A można otrzymać jako mieszaninę
barwy B i światła białego C w proporcji
określonej przez długości odcinków AC i
BC
3. Wyznaczanie barw dopełniających
Dopełniające pary barw wyznaczone są
przez końce dowolnych odcinków
przechodzących przez punkt C (światło
białe). (Np. barwy B i G lub D i E.
4. Wyznaczanie dominującej długości fali
Dominującą długością fali barwy A jest
długość fali barwy B.
Model CIE La*b*
Zawiera najszerszÄ… zdefiniowanÄ… matematycznie
przestrzeń barw, która powstała w wyniku
przekształcenia modelu CIE XYZ. Każdy inny
model koloru da się opisać we współrzędnych
La*b*, ale nie na odwrót. Model jest niezależny
od urządzeń wejścia/wyjścia. Wykorzystywany
do obliczeń na barwach i wyznaczania stopnia
podobieństwa barw w systemach zarządzania
barwami CMS (Color Management System).
Wszystkie barwy o jednakowej jasności leżą na
powierzchni kołowej wyznaczonej osiami a* i b*:
- oÅ› a* - barwy od czerwonej do zielonej
- oś b* - barwy od żółtej do niebieskiej
Jasność L zmienia się w kierunku pionowym.
Kolor wynikowy określany jest przez parametry L oraz a* i b*. Zakres zmienności
parametrów definiowany jest w programach graficznych. Np. w CorelDraw:
- a* i b*=<-60;+60>, L=<0,100>
- dostępna liczba kolorów: 121x121x101=1 478741
- różnica miÄ™dzy 2 barwami: "E = [("L)2 + ("a*)2 + ("b*)2 ]½
Model RGB
Model wykorzystywany:
w sprzęcie tworzącym obraz w wyniku emisji
światła: monitory, projektory, skanery, cyfrowe
aparaty fotograficzne
do sprzętowej reprezentacji (opisu) pikseli w
systemach komputerowych
Kolor wypadkowy powstaje w wyniku addytywnego
mieszania składowych podstawowych R, G, B.
czerwony (Red) - zielony (Green) - niebieski (Blue)
Model RGB
B
B
Kolor - punkt w przestrzeni ograniczonej
sześcianem jednostkowym, definiowany
przez trójkę (r,g,b)
1
1
Kolory podstawowe:
R = (1,0,0)
G = (0,1,0)
1
1
G
G
B = (0,0,1)
0
0
Kolory dopełniające:
C = (0,1,1)
1
1
M = (1,0,1)
Y = (1,1,0)
R
R
Kolor czarny = (0,0,0)
Kolor biały = (1,1,1)
50% szarość = (0.5, 0.5, 0.5)
Sprzętowa reprezentacja koloru
Wartość koloru - liczbowa reprezentacja barwy piksela
Głębokość bitowa - liczba bitów przeznaczona do zapisu
wartości koloru
Obraz binarny::
liczba możliwych kolorów: 2
wartość koloru: { 0, 1 }
głębokość bitowa: 1
Sprzętowa reprezentacja koloru
High Color::
×
×
×
liczba możliwych kolorów: 23 × 5 lub 2(5+6+5) = 32 768 lub 65 536
wartość koloru: { R, G, B }, gdzie R, G, B "<0, 31> lub <0, 63>
głębokość bitowa: 15 lub 16 bitów (2 bajty)
True Color::
×3
×
×
liczba możliwych kolorów: 2 8× = 16 777 216
wartość koloru: { R, G, B }, gdzie R, G, B "<0, 255>
głębokość bitowa: 24 bity (3 bajty ze składowymi R,G,B)
Paleta barw  Look-Up Table
11111111 11111111 00000000
R G B
x
ekran
255
.
.
.
y
19
111111111111000000 19
pamięć obrazu
0
o głębokości
24-bitowa tabela barw (LUT)
8 bitów/piksel
wskazywana indeksem 8-bitowym
×3
×
×
Liczba możliwych do uzyskania kolorów: 2 8× = 16 777 216.
Kolor wybierany z palety 256 kolorów.
Zawartość tabeli barw może być w sposób dynamiczny zmieniana.
Wielkość pamięci obrazu
W = K x L x Bpp
gdzie: Bpp  głębokość bitowa (bit per pixel)
K  liczba kolumn obrazu
L  liczba linii obrazu
Obraz binarny:
800×
×600x1 = 60000B = 60000/1024 KB = 58,6KB
×
×
Obraz True Color:
800× ×24 = 14400000B = 14400000/1024/1024 MB = 1,373MB
×600×
× ×
× ×
1280× ×24 = 3932160B = 3,75MB
×1024×
× ×
× ×
Model CMY
Model wykorzystywany w sprzęcie tworzącym obraz w wyniku
nakładania na nośnik barw podstawowych: drukarki, plotery
Kolor wypadkowy powstaje w wyniku substraktywnego mieszania
światła odbitego od podłoża.
Pigment farby/atramentu pochłania określone długości fal, a odbija
pozostałe. Np. fiolet (M) pochłania ze światła białego składową G,
odbija składowe R i B.
Model CMY
Kolor - punkt w przestrzeni ograniczonej
sześcianem jednostkowym, definiowany
Y
Y
przez trójkę (c,m,y)
Kolory podstawowe:
1
1
C = (1,0,0) cyan
M = (0,1,0) magenta
Y = (0,0,1) yellow
Kolory dopełniające:
R = (0,1,1)
1
1
M
M
G = (1,0,1)
0
0
B = (1,1,0)
1
1
Kolor czarny = (1,1,1)
Kolor biały = (0,0,0)
C
C
50% szarość = (0.5, 0.5, 0.5)
Model CMYK
W modelu CMY równe ilości trzech barw podstawowych (c=m=y) tworzą
neutralną szarość, która w modelu CMYK jest generowana przez czwartą barwę
podstawowÄ… K (blacK - czarny).
C M Y C M Y K
( 0.2 0.5 ) ( 0.2 0.5 )
+ +
( 0.4 0.4 0.4 ) ( 0.4 )
( 0.4 0.6 0.9 ) ( 0.2 0.5 0.4 )
CMY = (c, m, y) CMYK = (c - k, m - k, y - k, k)
Wartość składowej K:
k = min {c, m, y}
Procedury generowania czerni
W celu poprawy jakości druku (kolorystyka, kontrast)
barwa czarna K zastępuje (całkowicie lub częściowo) tą
część barw modelu CMY, które tworzą neutralne odcienie
szarości.
Procedury generowania czerni:
UCR (Under Color Removal) - usuwanie koloru
neutralnego
GCR (Gray Component Replacement) - zamiana
szarego składnika
UCR (Under Color Removal)
UCR - odtwarza neutralną szarość jedynie przy pomocy
czarnego atramentu. Zamiana CMY na CMYK:
(c,m,y,k) = (c-kmax, m-kmax, y-kmax, kmax)
CMY=(0.4, 0.6, 0.9)
kmax= min {0.4, 0.6, 0.9} = 0.4
CMYK=(0.0, 0.2, 0.5, 0.4)
ilość atramentu:
CMY=40%+60%+90%=190%
CMYK=0%+20%+50%+40%=110%
Aby czarny atrament nie powodował
 brudnego wyglÄ…du odcieni jasnych
(świateł), UCR stosuje się od
określonego poziomu neutralnej szarości
CMY CMYK
(od 0.5÷0.6).
GCR (Gray Component Replacement)
GCR - odtwarza tylko część neutralnej szarości przy pomocy
czarnego atramentu: Zamiana CMY na CMYK:
(c,m,y,k) = (c-g, m-g, y-g, g)
gdzie: g = s% kmax
s - zadany stopień zastępowania neutralnej szarości.
Przykład:
CMY = (0.4, 0.6, 0.9), s=50%, kmax= 0.4
g = 50% kmax= 0.2
CMYK = (0.2, 0.4, 0.7, 0.2)
ilość atramentu: CMY=40%+60%+90%=190%
CMYK=20%+40%+70%+20%=150%
Uwagi
druk CMYK zawsze obniża łączne zużycie
atramentu/farby w porównaniu z drukiem CMY
drukarki stosują własne procedury generowania
czerni, a więc nie mamy kontroli nad tym procesem
przy wyznaczaniu wartości neutralnych odcieni
szarości urządzenia drukujące posługują się
krzywymi mieszania atramentów (tonerów)
uwzględniającymi ich wpływ na  brudzenie odcieni
jasnych
Model HLS
Definiowanie koloru
Znaczenie i zakresy współrzędnych:
H: hue - barwa o wartościach z przedziału: od 0 do 360 stopni
L: ligthness  jasność z przedziału 0...1 albo 0...100%
S: saturation - nasycenie koloru z przedziału 0...1 albo 0...100%
Model HSV (HSB)
Znaczenie i zakresy współrzędnych:
H: hue - barwa o wartościach z przedziału: od 0 do 360 stopni
S: saturation - nasycenie koloru z przedziału 0...1 albo 0...100%
V(B): value (brigthness)  wartość (jaskrawość) z przedziału 0...1 albo
0...100%
Algorytm przejścia od RGB do HLS
// konwersja RGB -> HLS (wg Travisa)
// zakresy zmiennych: r[0,1], g[0,1], b[0,1], h[0,360], l[0,1], s[0,1]
void rgb2hls (double r, double g, double b, double &h, double &l, double &s)
{
double max = max (max (r,g),b);
double min = min (min (r,g),b);
l = (max + min) / 2 // wyznaczenie jasności l
if (max = min) {
s = 0; h = 0; } // wartość niezdefiniowana  kolory achromatyczne
else
{
if (l <= 0.5) s = (max - min)/(max + min); // wyznaczenie nasycenia s
else s = (max -min) / (2 - max - min); //
if (r = max) h = (g - b) / (max - min); // wyznaczenie barwy h
else if (g = max) h = 2 + (b - r) / (max - min); //
else if (b = max) h = 4 + (r - g) / (max - min); //
h = h * 60; // konwersja h na stopnie
if (h < 0.0) h += 360;
}
}
Algorytm przejścia od HLS do RGB
// konwersja: HLS -> RGB (wgTravisa)
// zakresy zmiennych: h[0,360], l[0,1], s[0,1], r[0,1], g[0,1], b[0,1]
// funkcja pomocnicza: value
#include
inline double value (double nl, double n2, double h)
{
if (h > 360) h -= 360;
else if (h < 0) h += 360;
if (h < 60) return nl + (n2 - nl) * h / 60.0;
if (h < 180) return n2;
if (h < 240) return nl + (n2 - nl) * (240 - h) / 60.0;
return nl; // (h < 360)
}
Algorytm przejścia od HLS do RGB  cd.
void hls2rgb (double h, double l, double s, double &r, double &g,
double &b)
{
double m1, m2;
if (l <= 0.5)
m2 = l * (1.0 + s);
else
m2 = l + s - l * s;
m1 = 2.0 * l - m2;
if (s == 0)
r = g = b = l;
else
{
r = value (m1,m2,h + 120); //wyznaczenie wartości r,g,b
g = value (m1,m2,h);
b = value (m1,m2,h - 120);
}
}
Obliczenia w przestrzeni kolorów  modele liniowe
RGB, CMY, CIE XYZ
C1=[r1, g1, b1]; C2=[r2, g2 ,b2]; gdzie: rn, gn, bn Ź
<0;1>;
1. Operacje bezpośrednie
dodawanie kolorów
C1+C2=[r1+r2, g1+g2, b1+b2]
mnożenie przez skalar
ąC=[ąr, ąg, ąb] ą Ź <0;1>;
2. Operacje pośrednie
Obliczenia w przestrzeni kolorów  modele liniowe
RGB, CMY, CIE XYZ
3. Nakładanie kolorów
wspólna krawędz
C=Ä…1C1+Ä…2 C2
C2
gdzie: ą1,ą2 Ź <0;1>  współczynnik pokrycia obszaru
C1
obszary rozłączne
C=Ä…1C1+Ä…2 C2
C2
gdzie: ą1,ą2 Ź <0;1>  współczynnik pokrycia obszaru
C1
obszary pokrywajÄ…ce siÄ™
C=F1C1+F2C2
C2
gdzie: F1,F2  udział obszarów C1,C2
C1 w wypadkowym pokryciu obszaru
Cieniowanie - porównanie
a) model nieoświetlony
b) cieniowanie stałą barwą wielokąta
c) cieniowanie metodÄ… Gourauda
d) cieniowanie metodÄ… Phonga
Cieniowanie Gourauda
1. Wyznaczenie barwy w wierzchołkach trójkąta:
- wyznaczenie wektorów normalnych do wszystkich wierzchołków
jako średniej arytmetycznej wektorów normalnych wszystkich ścian,
do których ten wierzchołek należy.
- na podstawie wektora normalnego wyznaczenie barwy wierzchołka
korzystając z wybranego modelu oświetlenia
2. Liniowa interpolacja barwy dla wszystkich punktów wielokąta zgodnie
z zaprezentowanymi wzorami.
Cieniowanie Phonga
Cieniowanie metodÄ… Phonga polega na interpolacji wektora normalnego dla
każdego punktu wielokąta, a następnie wyznaczenie na tej podstawie
intensywności barwy.
Etapy:
1. Wyznaczenie wektorów normalnych do wszystkich wierzchołków wielokąta
jako średniej arytmetycznej wektorów normalnych wszystkich ścian, do
których ten wierzchołek należy.
2. Liniowa interpolacja wartości wektorów normalnych dla wszystkich punktów
wielokÄ…ta (dla wszystkich pikseli):
2.1. Interpolacja wzdłuż krawędzi;
2.2. Interpolacja wzdłuż linii horyzontalnych.
3. Na podstawie wartości wektorów normalnych wyznaczenie barwy dla
wszystkich punktów wielokąta zgodnie z przyjętym modelem oświetlenia


Wyszukiwarka

Podobne podstrony:
GM 5 modelowanie koloru [tryb zgodności](1)
GK 8 Modelowanie krzywych i powierzchni(1)
GK Modelowanie efektów oświetlenia
,Modelowanie i symulacja systemów, Model dynamiczny
Baum Wajszczuk Wawrzynowicz Modelowe rozwiazanie logistyczne
Metody modelowania procesow 12 cz I (1)
Elementy modelowania matematycznego
TUTORIALE Modelowanie Poprawianie błędów funkcji BOOLEAN w 3ds max
24 10 qba gk
Modelowanie powierzchniowe
Modelowanie udarów
Modelowanie i rekonstrukcja elementów SCIĄGA

więcej podobnych podstron