AudioLinux
HomeNovinkySeznam článkůDownloadOdkazyKontakt

GIMP - odstranění šumu

1.9.2008 (aktualizace 18.4.2009)

Spousta lidí fotí a své fotky jen archivuje bez jakýchkoli úprav. Pak je druhá skupina, ke které patřím i já, která fotografie upravuje. Pakliže nemáte zrovna digitální zrcadlovku, ale jen kompakt (za téměř jakoukoli cenu), je velmi pravděpodobné, že trpí nemocí všech digitálních kompaktních fotoaparátů, kterou je barevný digitální šum. Ten je především dán kvalitou snímače a hlavně jeho rozměry. Právě malé rozměry snímače CCD a vysoké hodnoty citlivosti ISO jsou nejčastější příčinou tohoto šumu. V tomto návodu si ukážeme, jak se elegantně tohoto šumu zbavit.

ISO noiseNejprve si ukážeme jak onen zmiňovaný šum vypadá. Po kliknutí na obrázek vpravo se vám tento zvětší do originální velikosti, kde si můžete prohlédnout jak šum vypadá a jak narůstá jeho objem ve fotografii spolu s roustoucí citlivostí ISO. Oba obrázky, jak malý tak velký, jsou převzaty z české Wikipedie. Pro úplné pochopení dodávám, že zmiňovaný šum jsou ty zelené a fialové body, přičemž nejvíce je jich vždy ve tmavých partiích fotografie.

Nezastírám, že jsem dříve pracoval v aplikaci Adobe Photoshop a můj přechod na Gimp byl poměrně nesnadný, ale nějak jsem se s tím popral a našel si cestičky. Jedna z věcí, která mně pomohla nejvíce, byla úprava rozložení oken a vynucení jejich velikosti a polohy, které popisuji v jednom z článků zde na tomto webu. Jejich výsledný mnou používaný vzhled můžete samozřejmě vidět i na snímcích obrazovky dále v textu.

Ve zmíněném Adobe Photoshopu od verze CS2 (9.0) je na odstranění nežádoucího šumu přímo vestavěný filtr s velmi snadným použitím, navíc dávající skvělé výsledky i za použití výrobcem přednastavených parametrů. Ve verzi CS (8.0) a starších tento filtr není a bylo nutno šum odstranit pomocí gausovského rozostření a následného zeslabení tohoto filtru v režimu "barva", nicméně stejně dokonale jako v novějších verzích. Tento druhý způsob poprvé uměl Gimp až ve verzi 2.4 a jak uvidíte, ne s příliš uspokojivými výsledky. To bude první příklad, který si ukážeme.

1. příklad - filtr Selektivní Gaussovské rozostření

Otevřeme si obrázek, který obsahuje barevný digitální šum (téměř jakoukoli tmavší fotografii nebo výše přiložený testovací obrázek). V nabídce Filtry přejdeme do sekce Rozostření, kde vybereme volbu Selektivní Gaussovské rozostření. Nyní budete od nuly tak dlouhy zvyšovat hodnotu Poloměru rozostření až dojde k významné redukci (rozmazání) fialových a zelených bodů (klikněte na obrázek níže pro jeho zvětšení) a poté potvrdíte tlačítkem Budiž. Samozřejmě můžete experimentovat i s hodnotou Max. delta, ale tu doporučuji nechat na hodnotě 50. Tato hodnota určuje míru tolerance rozdílu v barvě dotčených oblastí.

Gimp - Gauss 1

Bezprostředně po provedení rozostření přejdete do nabídky Upravit, kde zvolíte položku Zeslabit Selektivní Gussovské rozostření a v následném dialogu vyberete z roletky Režim: Barva, přičemž necháte parametr Krytí: 100% (opět klikněte na obrázek pro jeho zvětšení).

Gimp - Gauss 2

Celý výsledný obrázek máte zde:

ISO - Gauss - výsledek

Můžete si všimnout, že výsledek není zrovna oslnivý. Barevné nežádoucí body sice zmizely, ale velmi nám zhrublo zrno fotografie, s čímž se tedy rozhodně nespokojíme. V tomto je Adobe Photoshop daleko před Gimpem a v prvním příkladu popsanou metodou poskytuje výborné výsledky. A to i pokud použijete v Gimpu obyčejné Gaussovské rozostření opět s následným zeslabením, dostanete výsledky stejně neuspokojivé jako se selektivní metodou. Přejdeme tedy k druhému příkladu.

2. příklad - filtr Wavelet denoise - starší verze 0.2

Na stránkách http://registry.gimp.org/ je k dispozici velká spousta více či méně použitelných pluginů. Jedním z nich je ISO noise reduction, který nijak zvlášť dobře nefunguje. Stejná je situace u pluginu GREYCstoration. Teprve až filtr Wavelet denoise je vpravdě to pravé ořechové. Jedinou nevýhodou tohoto filtru je skutečnost, že není distribuován jako obvyklý plugin ve formátu *.scm, který bychom jen umístili do složky s pluginy, kterou je obvykle /home/jméno_uživatele/.gimp-2.x/plug-ins, ale musí se instalovat z příkazové řádky. Ač se nejedná tak úplně o klasickou kompilaci pomocí tzv. svaté trojice, přesto k instalaci tohoto pluginu budeme potřebovat nainstalovat balíček gimp-devel a balíčky související. Z odkazovaných stránek si stáhneme soubor wavelet-denoise-0.2.tar.gz (nebo novější, bude-li k dispozici), uložíme jej do nějaké složky a rozbalíme. Pak v konzoli ze složky kam jsme archív rozbalili (výhodně pro nalistování složky použijeme program mc - Midnight Commander) spustíme následující příkaz:

gimptool-2.0 --install wavelet-denoise.c

Návod je ostatně popsán v souboru INSTALL v archívu pluginu. To je vše, plugin se sám během okamžiku zkompiluje a zároveň se automaticky integruje do Gimpu. Stačí ho jen spustit. Najdete ho opět v nabídce Filtry v sekci Vylepšení. Základní režimy ve kterých filtr pracuje jsou dva. YCbCr a RGB. Pro nás je v tomto případě výhodnější použít režim YCbCr (luminance - modrý chrominanční komponent - červený chrominanční komponent). Režim RGB totiž při větší síle efektu slévá plochy se stejnou barvou a tak degraduje textury objektů. Přepínač v sekci Preview channel nastavte na All, zvolte v sekci Channel select kanál Cr a zvyšujte jeho hodnotu posuvníkem Amount tak dlouho, až z obrázku v náhledu zmizí fialové a zelené body. Posuvník volby Detail nechte na hodnotě 1. Výsledek stále ještě není dokonalý, dále tedy zvolte v sekci Channel select kanál Cb a zvyšujte jeho hodnotu opět posuvníkem Amount až z obrázku zmizí nově se objevivší modré a žluté body. Možná zjistíte, že jste nastavili přibližně stejnou hodnotu jako na chrominančním kanálu Cr. Teď je to dokonalé. Šum je odstraněn, zrno zůstalo nezměněno. Kanál luminance Y nechte na výchozí hodnotě 0. Zvyšováním této hodnoty by došlo pouze k rozmazání fotografie a slití textury.

Gimp - Wavelet denoise

Opět si zde můžete prohlédnout konečný výsledek.

Gimp - Wavelet denoise - výsledek

Asi jste si všimli, že pro odstranění šumu pořízeného za citlivosti ISO 1600 bylo potřeba použít větší míru odstranění. U běžných fotek za lepších světelných podmínek se i v režimu automatického nastavení citlivosti na fotoaparátu hodnota ISO nevyšplhá na tak vysokou hodnotu a tím ani šum nebude tak výrazný. U normálních fotek většinou stačí dokonce použít k odstranění šumu jen v kanál Cr, manipulace s kanálem Cb nebude viditelná, ale každopádně chybu neuděláte a kvalitu fotografie rozhodně nezhoršíte (spíš naopak) když i na kanálu Cb nastavíte stejnou hodnotu jako u kanálu Cr. Jak zřejmě víte, fialová barva je tvořena červenou a modrou barvou, je tedy vhodné oba tyto chrominanční komponenty potlačit.

Plugin (filtr) Wavelet denoise u mě překonal očekávání a je pro mě co se týká nastavení průhlednější než víceméně stejný filtr pro odstranění šumu v Adobe Photoshopu, přičemž pracuje s naprosto stejnou precizností a v ničem nezaostává.

3. příklad - filtr Wavelet denoise - verze 0.3

Novější verze pluginu z předchozího příkladu se opět stáhne a rozbalí stejně jako verze starší a platí pro ni stejné podmínky jako v předchozím případě, ovšem nyní již ke kompilaci sáhnout musíme, nicméně je ještě jednodušší než předchozí instalace a ani se nemusíte bát žádného řešení závislostí nebo imbecilních hlášek. Obejdeme se totiž zcela bez nich :-)

V tomto případě je po spuštění konzole nutné (vhodné) přihlásit se jako root příkazem su.

Pomocí příkazu mc spustíme správce souborů Midnight Commander a nalistujeme složku pluginu a Midnight Commander pak ukončíme klávesou F10, nebo přejdeme do aložky pluginu zadáním příkazu cd a zadáním cesty, například tedy:

cd /cesta/do/adresáře/pluginu

Následně spustíme příkaz:

make

... a po proběhnutí příkazu, který bude trvat několik málo vteřin, zadáme už jen příkaz:

make install

... opět proběhne během pár vteřin příkaz a máme hotovo. Pro úplnost přikládám screenshot konzole z celým průběhem kompilace (povšimněte si zvláště prvního a pak všech červených řádků):

gimp-wavelet-kompilace.png

Použití pluginu je téměř stejné jako v případě starší verze. Plugin najdete opět v nabídce Filtry v sekci Vylepšení. Základní režimy ve kterých filtr pracuje jsou nyní již tři. Opakuje se YCbCr a RGB a novým režimem je CIELAB. Pro nás je v tomto případě nejvýhodnější použít režim YCbCr (luminance - modrý chrominanční komponent - červený chrominanční komponent). Režim RGB totiž při větší síle efektu slévá plochy se stejnou barvou a tak degraduje textury objektů. Přepínač v sekci Preview channel nastavte na All, zvolte v sekci Channel select kanál Cr a zvyšujte jeho hodnotu posuvníkem Threshold tak dlouho, až z obrázku v náhledu zmizí fialové a zelené body. Posuvník volby Softness nechte na hodnotě 0, tento parametr jen "změkčuje" sílu efektu, ale tu můžete redukovat spíše snížením zmiňované hodnoty Threshold. Výsledek stále ještě není dokonalý, dále tedy zvolte v sekci Channel select kanál Cb a zvyšujte jeho hodnotu opět posuvníkem Threshold až z obrázku zmizí nově se objevivší modré a žluté body. Možná zjistíte, že jste nastavili přibližně stejnou hodnotu jako na chrominančním kanálu Cr. Teď je to dokonalé. Šum je odstraněn, zrno zůstalo nezměněno. Kanál luminance Y nechte na výchozí hodnotě 0. Zvyšováním této hodnoty by došlo pouze k rozmazání fotografie a slití textury.

Gimp - Wavelet New

Režim CIELAB, je také použitelný, dá nám totiž prakticky totožné výsledky jako režim YCbCr. Opět ale nastavujte jen kanály a* a b*, kanál L* nechte na výchozí hodnotě 0. Zvyšováním této hodnoty by došlo pouze k rozmazání fotografie a slití textury.

4. příklad - reálná fotografie

Po kliknutí na níže přiložené obrázky si můžete prohlédnout výsledek před a po použití filtru Wavelet denoise. Věnujte pozornost zvláště stěně na pozadí a špičce čenichu medvěda.

PŘED PO
Before After

NAHORU

Made with Nvu

Valid HTML 4.01 Transitional

Počet přístupů na AudioLinux od 1.5.2008:

wz.cz

WebZdarma.cz