This is an old revision of the document!
Table of Contents
Vnímání barev a barevné modely. Rastrová grafika, základní rastrové formáty souborů. Vektorová grafika, reprezentace 2D a 3D objektů, základní formáty souborů pro 2D a 3D data. Principy 3D modelování a mapování textur.
B4B39VGO Webové stránky předmětu
- Vnímání barev – tvorba barevného vjemu v lidském oku, kolorimetrický experiment, srovnávací funkce (CIE RGB), barevné prostory CIE XYZ a CIE xyY, chromatický diagram.
- Barevné modely – aditivní a subtraktivní skládání barev. Barevné modely založené na primárních barvách RGB a CMY(K). Abstraktní barevné modely HSV a HSL.
- Rastrová grafika – obraz jako signál, vzorkování, alias a antialisaing. Kvantizace barev, polotónování a dithering. Přímá reprezentace barev (direct color) a indexovaná reprezentace barev. Transformace rastrového obrazu. Komprese rastrového obrazu. Základní formáty GIF, PNG a JPEG a jejich vlastnosti.
- Vektorová grafika a reprezentace 2D objektů – reprezentace 2D objektů pomocí parametrických polynomiálních křivek - Bézierovy křivky a B-spline křivky, formát SVG.
- Reprezentace 3D objektů a principy 3D modelování – polygonální reprezentace 3D objektů a datové struktury pro jejich reprezentaci, formát OBJ. Bézierovy a B-Spline plochy. Základní modelovací operace s použitím polygonální a polynomiální reprezentace 3D objektů: blokování, bridge, extrude, loft, rotační plochy, volné modelování. Dělené plochy (subdivision surfaces), jejich reprezentace a výhody při modelování oproti B-spline plochám. Implicitní plochy a jejich reprezentace a využití při modelování. Sochání (sculpting).
- Principy mapování textur – zobrazení textury na 3D objektu s použitím UV mapování. Různé způsoby vytvoření UV mapování a k čemu jsou vhodné.
1. Vnímání barev
Lidské oko vnímá světlo jako elektromagnetické vlnění v rozsahu přibližně 380 až 720 nm. Každá vlnová délka odpovídá určité vnímané barvě – např. modrá (krátké vlny), zelená (střední), červená (dlouhé). Vjem barvy vzniká v mozku kombinací signálů ze tří typů světločivných buněk – čípků.
1. Tvorba barevného vjemu v lidském oku
Struktura oka a sítnice
- Sítnice (retina) pokrývá ~2/3 vnitřního povrchu oka a obsahuje dva typy fotoreceptorů:
- Tyčinky (~120 milionů) – velmi citlivé na jas (světlo/tma), ale nerozlišují barvy.
- Čípky (~8 milionů) – rozlišují barvy, existují ve třech typech:
- Citlivé na červenou (~560 nm),
- zelenou (~530 nm),
- a modrou (~420 nm).
- Největší koncentrace čípků je v oblasti zvané žlutá skvrna (makula) – zajišťuje nejostřejší vidění.
- Slepá skvrna – místo, kde z oka vystupuje optický nerv; bez fotoreceptorů, mozek chybějící obraz doplní.
- Rozlišení oka odpovídá přibližně 1 megapixelu.
- Každá vnímaná barva je výsledkem kombinace signálů ze tří typů čípků ⇒ barevný vjem lze popsat jako 3D vektor (např. RGB).
Světlo a barva
- Monochromatické světlo – má jednu konkrétní vlnovou délku (např. laser).
- Polychromatické světlo – směs více vlnových délek (běžné světlo).
- Barva – není fyzikální vlastností objektu, ale vjem vznikající v mozku jako reakce na složení dopadajícího světla.
- Oko je nejcitlivější na zelené světlo, pak červené, nejméně na modré.
Metamerismus
- Metamery – dvě různá spektra světla, která vyvolají stejný barevný vjem, protože produkují stejnou odpověď čípků.
- To je důvod, proč je možné barvy reprezentovat v trojrozměrném barevném prostoru (např. RGB), i když spektrum světla je spojité.
2. Kolorimetrický experiment
- Provádí se s:
- Referenčním polem – monochromatické světlo s danou vlnovou délkou \( \lambda \),
- Testovacím polem – kombinace tří monochromatických světel (červená, zelená, modrá).
- Účastník upravuje intenzity světel v testovacím poli, aby se výsledek opticky shodoval s referenční barvou.
- Ne každá barva je dosažitelná kombinací RGB – některé vyžadují záporné intenzity, které nelze fyzicky realizovat.
3. Barevné prostory podle CIE
CIE RGB
- Vznikl z kolorimetrického experimentu.
- Definuje tři srovnávací funkce \( \bar{r}(\lambda), \bar{g}(\lambda), \bar{b}(\lambda) \), které popisují vnímání jednotlivých RGB složek pro danou vlnovou délku \( \lambda \).
- Některé barvy mohou vyžadovat záporné hodnoty, což je nepraktické pro fyzickou reprezentaci.
CIE XYZ
- Transformace z CIE RGB za účelem odstranění záporných hodnot.
- Vlastnosti:
- Všechny srovnávací funkce jsou kladné.
- Funkce Y odpovídá vnímání jasu (svítivosti) – tzv. fotopická citlivost \( V(\lambda) \).
- Slouží k výpočtu barevného vjemu i pro spektra, která nejsou fyzikálně realizovatelná.
CIE xyY
- Normalizovaná verze XYZ – pro eliminaci vlivu jasu.
- Definováno takto:
\[ x = \frac{X}{X + Y + Z},\quad y = \frac{Y}{X + Y + Z},\quad z = \frac{Z}{X + Y + Z} \]
- .
\[ x + y + z = 1 \]
- Pro daný jas \( Y \) lze z \( x \) a \( y \) zrekonstruovat celou barvu.
- Umožňuje znázornění barev v 2D diagramu – chromatickém diagramu.
4. Chromatický diagram (CIE 1931)
- Zobrazuje všechny barvy, které může lidské oko vnímat.
- Okraj křivky reprezentuje monochromatická světla (čisté vlnové délky).
- Přímka mezi dvěma body A a B značí všechny barvy, které lze získat směsí těchto světel.
- Trojúhelník ABC – barvy dosažitelné kombinací tří světel.
- Bod bílého světla (white point) – neutrální barva vnímána jako bílá.
- Diagram se často používá pro analýzu a porovnání barevných gamutů zobrazovacích zařízení.
2. Barevné modely
Barevné modely slouží k reprezentaci barev v digitálních zařízeních (displeje, tiskárny) i při práci s barvami v softwaru. Liší se tím, jakým způsobem skládají barvy (aditivně/subtraktivně) a jak jsou pro uživatele intuitivní.
1. Aditivní a subtraktivní skládání
- Aditivní skládání (RGB) – barvy vznikají sčítáním světla. Používá se např. u displejů, projektorů. Kombinací všech tří barev (R, G, B) v maximální intenzitě vzniká bílá.
- Subtraktivní skládání (CMY(K)) – barvy vznikají odčítáním (absorpce světla pigmenty). Používá se v tisku. Kombinací všech tří složek CMY vzniká tmavě šedá, proto se přidává černá složka K (black).
2. Modely založené na primárních barvách
RGB model
- Tvořen třemi složkami: Red, Green, Blue.
- Reprezentován jako jednotková krychle – každý kanál má rozsah 0–1 nebo 0–255 (8bitová reprezentace).
- Běžné varianty: sRGB, Adobe RGB, které se liší rozsahem (gamutem) zobrazitelných barev.
- Gamut RGB lze znázornit jako trojúhelník v chromatickém diagramu (pro danou svítivost).
CMY(K) model
- Barvy: Cyan, Magenta, Yellow, doplněné o Black (K).
- Používá se v tisku, kde barvy vznikají absorpčním mícháním pigmentů.
- Přidání černé (K) zlepšuje kvalitu tisku a snižuje spotřebu barev.
- Gamut CMY(K) je menší než RGB, nelze s ním tisknout jasné odstíny, protože pigmenty omezují svítivost.
3. Problémy modelů RGB a CMY(K) pro uživatele
- Složité nastavování neprimárních barev – změna jedné složky ovlivní i odstín.
- Nelze snadno měnit pouze sytost nebo jas bez ovlivnění odstínu.
- Neodpovídají lidskému vnímání – změna v hodnotách nemusí odpovídat očekávanému vizuálnímu výsledku.
4. Abstraktní modely: HSV a HSL
Modely HSV a HSL byly navrženy pro intuitivnější práci s barvami – například při výběru barvy v grafických editorech.
HSV (Hue, Saturation, Value)
- Hue (odstín) – úhel v barevném kruhu (0–360°)
- Saturation (sytost) – čistota barvy (0 = šedá, 1 = čistá barva)
- Value (jas) – celkový jas barvy
- Model má tvar kužele.
- Přidání černé snižuje Value, ale přidání bílé zároveň mění i Saturation ⇒ nekonzistentní chování.
HSL (Hue, Saturation, Lightness)
- Hue (odstín) – stejné jako u HSV
- Saturation (sytost) – rozsah čistoty barvy
- Lightness (světlost) – 0 = černá, 1 = bílá, 0.5 = plná barva
- Model má tvar dvojitého kužele (bikónu).
- Přidání černé/bílé mění pouze Lightness ⇒ konzistentní chování při úpravách.
5. Kvantizace barev
- Při digitálním zpracování jsou barvy diskretizovány (kvantizovány) na konečný počet hodnot.
- Například:
- 8bit RGB – 256 hodnot na kanál ⇒ \( 256^3 = 16.7 \) milionů barev
- 16bit RGB – 65536 hodnot na kanál
- 32bit RGBA – navíc průhlednost (alpha channel)
- Kvantizace může být:
- Uniformní – rovnoměrné rozdělení rozsahu
- Neuniformní – přizpůsobené lidskému vnímání (např. s větším důrazem na zelené odstíny)
3. Rastrová grafika
Rastrová grafika reprezentuje obraz jako mřížku pixelů, kde každý pixel nese informaci o barvě. Vzniká digitalizací spojité obrazové funkce pomocí vzorkování a kvantizace.
1. Digitalizace obrazu
Obraz jako signál
- Spojitá obrazová funkce: \( z = f(x, y) \)
- Digitalizace znamená:
- Vzorkování – rozdělení na pixely (diskretizace definičního oboru).
- Kvantizace – převod hodnot do omezené množiny (diskretizace oboru hodnot).
PPI a DPI
- PPI (pixels per inch) – udává hustotu pixelů pro zobrazovací zařízení (vliv na velikost obrazu).
- DPI (dots per inch) – počet tiskových bodů na palec (vliv na kvalitu tisku).
2. Vzorkování, aliasing a anti-aliasing
Vzorkování
- Vzorkování s frekvencí \( f_s \) musí být alespoň 2× vyšší než maximální frekvence signálu – tzv. Shannonův teorém.
- Nedostatečné vzorkování ⇒ aliasing – falešné vzory, zubaté hrany, moaré efekt.
Antialiasing
- Supersampling – každý pixel se vypočítá jako průměr více vzorků.
- Low-pass filtr – odstranění vysokofrekvenčních složek před vzorkováním.
3. Kvantizace, polotónování a dithering
Kvantizace barev
- Rozdělení barevného prostoru na diskrétní intervaly.
- Příklady:
- 8bit RGB: \( 2^8 = 256 \) barev
- 24bit RGB: \( 2^{24} = 16{,}7 \) milionu barev
Polotónování
- Nahrazení pixelu mřížkou bodů různé hustoty tak, aby se z dálky jevily jako jiná barva.
- Používá se např. v tisku novin.
Dithering
- Simuluje více odstínů pomocí rozložení chyb kvantizace na okolní pixely.
- Typy:
- Náhodný dithering – náhodné šumové body.
- S maticí (dithering matrix) – pravidelný vzor.
- Floyd–Steinberg – distribuce chyby na okolní pixely.
4. Reprezentace barev
Přímá reprezentace (Direct color)
- Každý pixel obsahuje své RGB (příp. RGBA) hodnoty.
- Bitová hloubka:
- 24bit RGB – 8 bitů na kanál
- 32bit RGBA – přidán kanál průhlednosti (alpha)
Indexovaná reprezentace
- Pixel nese pouze index do palety barev.
- Paleta obsahuje např. 256 barev (8bit index).
- Typy palet:
- Master palette – 3R-3G-2B
- Adaptive palette – optimalizace podle obrazu
5. Transformace rastrového obrazu
Problém transformací
- Při transformacích (např. rotace, změna velikosti, zkosení) dochází ke změně souřadnic pixelů, které nemusí odpovídat celým číslům.
- To může způsobit:
- Díry – některé pixely ve výsledku nejsou vyplněny.
- Překryvy – více původních pixelů se promítne do stejné cílové pozice.
Metody transformace
- Forward mapping – každý pixel původního obrázku je promítnut do nových souřadnic pomocí transformační matice.
- Nevýhoda: výsledný obrázek může mít díry nebo přepisy.
- Inverse mapping – pro každý pixel výsledného obrázku hledáme odpovídající pozici v původním obrázku.
- Vhodnější metoda, ale vyžaduje interpolaci kvůli necelým souřadnicím.
Interpolace při transformaci
- Nearest neighbor – použije nejbližší pixel, rychlé, ale hrubé.
- Lineární interpolace (LERP) – využívá dvě hodnoty, lineárně je spojí.
- Bilineární interpolace – vážený průměr ze čtyř okolních pixelů.
- Kubická interpolace – plynulejší přechody, využívá více sousedů.
6. Komprese rastrových obrázků
Typy komprese
- Bezeztrátová (lossless) – zachována všechna původní data, obraz lze přesně rekonstruovat.
- Ztrátová (lossy) – část dat se ztrácí, využívá se limitace lidského vnímání.
Bezeztrátové metody
- RLE (Run-Length Encoding) – opakující se hodnoty zapsány jako počet + hodnota. Vhodné pro jednoduché obrázky s opakujícími se barvami.
- Huffmanovo kódování – podle četnosti symbolů se vytvoří binární strom; časté symboly mají kratší kód.
- LZW (Lempel-Ziv-Welch) – dynamické slovníkové kódování; využívá se např. v GIF a PNG.
Ztrátová metoda – JPEG
- Optimalizovaná pro fotografie – účinně snižuje velikost souboru tím, že odstraňuje pro oko méně podstatné informace. Nevhodná pro technické nebo vektorové obrázky, kompresní poměr je nastavitelný.
Postup JPEG komprese
- Převod RGB → YCbCr
- Jasová složka (Y) se oddělí od barevných složek (Cb, Cr), protože oko je citlivější na jas než na barvu.
- Downsampling (podvzorkování)
- Barevné složky Cb a Cr se zmenší (např. 4:2:0), čímž se ušetří místo – detailní barvy nejsou pro vnímání zásadní.
- Rozdělení obrazu na bloky 8×8 pixelů
- Obraz je segmentován na malé čtverce, což umožňuje lokální frekvenční analýzu.
- Diskrétní kosinová transformace (DCT)
- Každý blok je převeden do frekvenční domény – oddělí se nízkofrekvenční složky (struktura) od vysokofrekvenčních (detaily, šum).
- Kvantizace DCT koeficientů
- Koeficienty se zaokrouhlují podle kvantizační matice – tím se odstraní jemné detaily, které nejsou výrazné pro lidské oko.
- Entropické kódování
- Zbylá data se lineárně uspořádají a dále komprimují kombinací RLE a Huffmanova kódování, čímž se ještě sníží velikost.
7. Formáty rastrových obrázků
GIF (Graphics Interchange Format)
- Indexované barvy – max. 256 barev v paletě (8bitová hloubka).
- Barvy mohou být 24bitové (RGB), průhlednost pouze zcela průhledná / zcela neprůhledná.
- Komprese: bezeztrátová LZW.
- Podporuje:
- Jednoduché animace
- Interlacing (postupné vykreslování)
- Vhodné pro loga, diagramy, skici – nevhodné pro fotografie.
PNG (Portable Network Graphics)
- Podporuje:
- Indexované i přímé RGB/RGBA barvy.
- Průhlednost i poloprůhlednost (alfa kanál).
- Stupně šedi.
- Komprese: bezeztrátová (dvoustupňová: příprava + LZW).
- Vhodné pro loga, technické výkresy, skici i obrázky s průhledností.
- Nevýhoda: větší soubory než JPEG u fotek.
JPEG (Joint Photographic Experts Group)
- Používá ztrátovou kompresi (viz výše).
- Barvy: přímé 24bitové RGB (bez alfa kanálu).
- Nepodporuje průhlednost.
- Vhodné pro fotografie – nevhodné pro obrázky s ostrými hranami (loga, texty), průhledností nebo nízkým počtem barev.