+-----------------------+ | 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ň