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