+-----------------------+
| Předzpracování obrazu |
+-----------------------+
Než přistoupíme k vytváření palety a indexovaného obrazu, je
vhodné obraz předzpracovat. Je tím možné předejít některým jevům,
které se obvykle objevují při zpracování a ve výsledných obrazech.
Uvažujeme-li celý prostor 256^3 (přibližně 16 milionů) barev,
pro reprezentaci barvy každého pixelu potřebujeme 24 bitů. Pro
alokaci takového prostoru pro histogram (viz dále) s konstantním
časem přístupu (tj. trojrozměrného pole) bychom potřebovali příliš
mnoho paměti, proto se často provádí tzv. předkvantování
(pre-quantization). Předkvantování představuje snížení počtu bitů na
každou složku RGB barvy například o 2, a tedy snížení prostoru barev
na 64^3 (260 tisíc). Tím usnadníme většinu operací s barvami. Tento
postup je doporučován v [1] s poukazem na empirický výzkum
oprávněnosti tohoto kroku vzhledem ke kvalitě výsledných obrazů.
Lidské oko stejně nerozliší více než 64 odstínů červené a modré,
výjimkou je jen zelená barva.
Pokud obraz obsahuje větší plochy, které jsou pokryty stejnou
nebo podobnou barvou, při mapování do výsledné palety barev
vznikají pravidelné vzory, které jsou lidskému oku patrné. Proto je
vhodné na takový obraz předem aplikovat náhodný šum, tj. ke každému
bodu přičíst náhodnou hodnotu daného rozdělení. Při provádění této
operace se doporučuje generovat šum v závislosti na poloze bodu,
vážený například rozptylem okolních barev. Jeden ze způsobů, jak
aplikovat takový šum je uveden v [12] jako adaptive clustering s
aplikací na černobílé obrázky.
Mapování palety do výsledného obrazu se provádí technikami
rozptylování barev, které popíšeme později. Tyto techniky obvykle
mírně rozmažou hrany obrázku a tím způsobí mírné zkreslení. Tomu lze
předejít tím, že obrázek předem zaostříme (sharpening). V jiných
obrazech, obsahujících čárové detaily (úsečky, rámy, plot aj.),
dochází zaostřením k ještě většímu zúžení těchto detailů a ve
výsledném obraze dojde ke ztrátě tohoto detailu. V těchto případech
je vhodné naopak obraz rozostřit (smoothing). Ostření o rozostřování
obrazu se nejjednodušeji provádí pomocí diskrétní konvoluce popsané
například v [21][22]. Vstupem do diskrétní konvoluce je obraz a
konvoluční jádro určující druh operace. Některá standardní konvoluční
jádra (operátory) pro ostření a rozostřování lze najít například v
[9]. Pokročilejší techniky filtrace obrazu, například pomocí tzv.
rotující masky, lze najít v [22].
Při práci s RGB vektory barev předpokládáme lineární vnímání
barev, tj. že stejný rozdíl dvou barev v RGB prostoru je okem
vnímán v celém prostoru shodně. Dopouštíme se tím vědomě hrubé chyby,
protože je známo, že lidské oko vnímá každou barvu a její změnu
odlišně. Na tuto skutečnost je poukazováno například v [13] [4] [5]
[6] [7] [19] [9]. Dále je nutno si uvědomit, že obdobnou
nelinearitu vykazuje každý používaný displej. Přestože se předpokládá
lineární nárůst jasu obrazových bodů se změnou RGB složek barvy,
displeje mají ve skutečnosti tento převod nelineární.
Nelinearitu vnímání barev lidským okem lze respektovat
například vhodně zvoleným barevným modelem při zpracování barev, ale
zobrazování barev displejem je nutno korigovat pomocí koeficientu
gama korekce (gamma correction). Gama korekce je nelineární
transformace každé barevné složky RGB vektoru, která respektuje
nelineární zobrazování barev. Jednoduchými úvahami o způsobu
zobrazení barev současnými displeji [8][3][5][19][4] lze dospět k
funkci:
f(x) = x^Γ, kde x je R, G nebo B složka barvy.
Tento vztah obsahuje koeficient Γ, který určuje tvar převodní
křivky. Koeficient Γ je pro každý displej jiný a závisí též na
hardwarové platformě. Například běžné počítače typu IBM PC/AT mají
Γ=1 (bez korekce), počítače Macintosh, Sun, SGI uvádějí Γ=1/1.7 a pro
CTR displeje je uváděno Γ=1/2.2. Hodnota Γ se pohybuje od 1.0 do 3.0.
Ve fázi předzpracování tedy aplikujeme na originální obraz gama
korekci, potom vytvoříme paletu a tu převedeme zpět inverzní gama
transformací (použijeme převrácenou hodnotu koeficientu Γ).
Je vidět, že fáze předzpracování obrazu je závislá nejen na
použitém hardware, ale i na typu zpracovávaných obrázků.
výheň