Dithering obrazu – applet

Dithering obrazu je metoda, při níž záměrně zmenšujeme počet barev v obraze neboli omezujeme barevný prostor. Můžeme tak například zajistit věrnost barev při tisku apod.

Ovládání apletu

V appletu si zvolte jeden z testovacích obrázků. Poté si zvolte typ palety (stupně šedi, barevná škála). Na posuvníku nastavte rozsah pro požadovaný počet barev a nakonec zvolte samotný algoritmus ditheringu.

Číslo u výběru palety určuje základní počet barev pro novou paletu. Pokud budeme mít paletu definovanou ve stupních šedi, pak číslo odpovídá přímo počtu barev v paletě. Pokud však budeme mít barevnou paletu, kde máme 3 základní barvy, pak počet barev v paletě bude vždy třetí mocnina od námi zvoleného čísla.

Teorie

Dithering obrazu využívá nedokonalosti lidského zraku. Lidského oko nedokáže z dostatečně velké vzdálenosti rozeznat jednotlivé body v obraze, vnímá jej jako celek. Základním principem ditheringu je nahrazení blízkého okolí bodů, který není v paletě různě barevnými body, které v celku pak vedou k požadované barvě. V appletu jsou implementovány čtyři metody:

Bez rozkladu

Při této metodě jde pouze o jednoduché prahování. Všechny body obrazu jsou rozděleny do tříd podle velikosti nové palety. Každé třídě je pak přiřazena jedna barva z nové palety.

Šum

Při této metodě se využívá náhodných čísel pro určení výsledné barvy. Algoritmus vždy na začátku přídělí výstupnímu pixelu nulu (černou barvu) a pokud hodnota vstupního pixelu je větší než náhodně vygenerované číslo, přepíše hodnotu výstupního pixelu na jedničku (bílou barvu). Pokud chceme mít větší paletu než pouze dvě barvy pak tento algoritmus aplikujeme na každý pixel tolikrát, kolik je barev v paletě. V každém cyklu se podle náhodného čísla přičte jednička, která označuje výslednou barvu.

Vzorek

Metoda vzorek je založena na maticovém rozptylu, kdy se používá maticová šablona, podkle které se pixely převádí. Vstupní hodnota barvy, podkle které se určuje vzor převáděcí matice se zprůměruje z více pixelů vstupního obrazu. Při této metodě právě velmi záleži na daném vzoru (převáděcí matici).

Floyd-Steinberg

Floyd-Steinberg je metoda založená na distribuci zaokrouhlovací chyby. Podle tabulky definované algoritmem se mění pravděpodobnost přiřazení barvy okolních pixelů od aktuálního. V případě vzniku chyby se chyba přenese na sousední pixely s poměrem uvedeným právě v tabulce. Chyba, která se má přenést na pixel přesahující hranici obrázku, se zahazuje.


(c) 2012–2013 Zdeněk Průša, Pavel Rajmic, Jan Špiřík, Ústav telekomunikací, FEKT, VUT v Brně