Poznámky z 5. prezentace z UPG

This commit is contained in:
Filip Znachor 2023-05-24 21:14:43 +02:00
parent 60c4fa93ae
commit 8e774fefd0
1 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,120 @@
# Pokročilá bitmapová grafika
## Změna měřítka
- změna velikosti = změna počtu pixelů
- obvykle změna na ose x a y
**Princip**
- stanovit hodnoty v nových bodech
- výsledek by měl být stejný, jako bychom původní signál vzorkovali s tímto rozlišením
- zvětšení 4x metodou nejbližšího souseda
- nejjednodušší, nejrychlejší
- obvykle nevhodné
- zvětšení 4x metodou (bi)lineární interpolace
- jednoduché a rychlé
- stardardní volba pro většinu grafických knihoven
- vhodné jen pro malá zvětšení
- zvětšení 4x metodou (bi)kubické interpolace
- pro každou dvojici sousedních pixelů najít kubickou funkci $f(t)$ takovou, že $f(0)$ = první pixel, $f(1)$ = druhý
- stanovit hodnoty $f(0.25), f(0.5)$ a $f(0.75)$
- vhodné zejména pro větší zvětšení
- lépe zachovává hrany
- podstatně pomalejší
**Zvětšení kx**
- k je reálné číslo > 1
**Zmenšení kx**
- k je reálné číslo z (1, 2)
- k je reálné číslo >= 2 - problém s kvalitou všech tří metod
Zmenšení 2x metodou nejbližšího souseda
- jedná se o princip vzorkování
- každý druhý pixel vynechá
- nejjednodušší možné
- použitelné v praxi pro velmi rychlé náhledy
**Aliasing**
- vzniká při vzorkování obrazu s opakujícím se vzorem, pokud vzorkovací frekvence $f_{s}$ je srovnatelná s frekvencí $f_{p}$ opakování vzoru
- $f_{s} = 1 /$ vzdálenost středů sousedních pixelů
- $f_{p} = 1 /$ vzdálenost začátků opakovaného vzoru
- $f_{s} > 2f_{p} \to$ frekvence již nejsou srovnatelné
+ úplné odstranění prakticky nemožné
+ potlačení (anti-aliasing)
+ nebude tolik rušivý
+ metoda tzv. super-samplingu
+ relativně rychlé
+ ClearType
+ využívá znalostí rozložení R, G, B prvků displeje
+ mění barvu krajních pixelů pro dosažení průměrování
**Mip-maping**
- technika pro zobrazování velkých obrázků na různé úrovni přiblížení
- obrázek bývá rozřezán na rozumně velké bloky (např. 256x256 px)
- bloky jsou zmenšeny na různé rozměry
- lze použít náročné metody díky využití pre-procesingu
- při zobrazení je možno
- vybrat nejvhodnější vygenerované rozlišení a jeho výřez zobrazit
- vybrat nejvhodnější vyšší rozlišení a změnit jeho měřítko tak, aby to vyhovovalo požadavkům
**Konvoluční filtrování**
- používá se např. pro
- rozmazání obrázku pro eliminaci šumu (Gaussovský filtr)
- detekce hran v obrázku
- vytvoření vrženého stínu
- obdoba bilineární filtrace
- žádné pixely nezahazujeme
## Kreslení do bitmapy
- doplnění popisků, anotace, ...
**Manuální**
- programátor mění obsah jednotlivých pixelů bitmapy
- např. rozpoznání obrazu či přebarvení obrázku
**Automatické**
- nad bitmapou se vytvoří grafický kontext
- kreslí se do grafického kontextu voláním obvyklých metod
- např. doplnění vektorové grafiky do obrázku (popisky, křivky silnic, šipky, ...)
- klíčové pro tzv. double-buffering
**Double buffering**
- místo kreslení rovnou na obrazovku kreslíme do bitmapy o stejné velikosti
- výsledek se poté zobrazí na obrazovku (1:1)
- pomalejší, ale nezbytné pro animace
**Vodoznak**
- nejčastěji pro účely copyrightu
- může být viditelný (neměl by jít snadno retušovat)
- může být neviditelný
- obrázek není viditelně poškozen
- data vodoznaku skryta (modifikují se barvy pixelů)
- používají se různé algoritmy
- autor může dokázat, že se jedná o jeho obrázek
- možno použít i pro ověření pravosti dat
**Alfa kanál**
- doplňuje barevnou informaci (např. RGB) o to, zda pixel je průhledný (0) či nikoliv (1)
- částečná průhlednost = hodnota z intervalu 0.0 - 1.0
- v praxi nejčastěji ukládán do 8 bitů (256 úrovní)
- umožňuje snazší spojení dvou bitmap do sebe
**Vrstvy**
- výsledný obraz vznikne složením obrázků přes sebe
- vrstvy lze ukládat/načítat oddělené
**Alfa kompozice**
- vrstvy se skládají na základě informace o průhlednosti (tzv. alfa)
- může být specifikována pro celý obrázek nebo zvlášť pro jednotlivé pixely
**Maximum (lighten)**
- černá = pozadí
- bílá = to, co má být vidět
**Minimum (darken)**
- opak maxima
**Multiply**
- lokální ztmavení obrázku X a Y určuje míru ztmavení