Fotografujeme digitálně (3) Upravujeme digitální fotografie V prvním díle seriálu o digitálním fotografování jsme se zabývali především vlastnostmi aparátů, zatímco druhý díl se zabýval skladbou digitální fotografie a technikami jejího pořizování. V posledním díle se soustředíme především na obrázky jako takové a podíváme se, jak lze již vytvořenou fotografii v počítači dodatečně upravovat. K editování digitální fotografie samozřejmě musíme mít v počítači nějaký program, jehož pomocí tyto úpravy provádíme. Existuje velké množství různých produktů, od freeware programů, které umožňují základní úpravy, přes programy dodávané s digitálními kamerami až po profesionální programy zaměřené na tisk či na publikování na webu. V tomto článku popíšeme principy úprav digitální fotografie, tedy obecně platná pravidla, nicméně pokud nějaký program budeme používat či citovat, bude to především Adobe Photoshop. Co to vlastně máme na disku? Kolik bitů a kolik barev? Obraz, který máme v počítači, se skládá z obrazových elementů (pixelů). Každý pixel má k dispozici určité množství bitů pro reprezentaci barevné informace. Základní a nejčastěji používaný barevný režim má 24 bitů pro každý pixel, tedy po osmi bitech pro červenou, zelenou a modrou složku. Tím máme k dispozici úctyhodných 16 777 216 barevných kombinací. Číslo se zdá neuvěřitelné, ale je to málo. Lidské oko dokáže rozlišit 168 milionů barev - v jednom okamžiku však jen asi deset tisíc. Z toho vyplývá, že na obrazovce počítače můžeme zobrazit poměrně velké množství obrázků s vysokou kvalitou, obrovské množství reálných scén však nikdy nezachytíme. Podívejte se přímo do slunce, zkuste ho vyfotografovat a podívejte se na obrázek na obrazovce. CCD snímač není schopen zachytit tak velké světelné intenzity a monitor počítače je nedokáže zobrazit. Stejný problém je na druhém konci dynamického rozsahu. V noci je lidské oko schopno přizpůsobit se i velmi nízkým intenzitám světla (světločivné buňky dokonce reagují na jediný foton), na digitální fotografii však uvidíme jen šum, zejména proto, že CCD snímač není schopen na tak nízké intenzity reagovat, a také proto, že monitor je nedokáže zobrazit. Obrázky, které disponují třemi bajty barevné informace pro každý pixel, se nazývají true color. Takzvané high color obrázky používají dva bajty pro jeden pixel - potom se barevná informace obvykle reprezentuje v režimu 5-6-5, tj. šest bitů pro zelenou barvu a ostatní barevné kanály po pěti. Lidské oko je na zelenou barvu nejcitlivější, proto máme k dispozici jemnější zelené ladění. Poměrně oblíbeným formátem, zejména pro zobrazování na webu, je formát GIF, který má k dispozici pouze jeden bajt pro každý pixel. Může tedy zobrazit pouze 256 barev, což se může zdát proklatě málo. Základní vlastností této reprezentace však je tzv. barevná paleta, která říká, jaké barvě jaký index odpovídá. Barevná paleta v tomto případě vybírá z 16 milionů barevných odstínů jen ty, které se právě použijí. Protože obrázek vlastně pomocí palety indexuje barevný prostor, říká se tomuto režimu také index color. GIF obyčejně vznikne konverzí z obrázku true color a způsob konverze určuje i paletu. Existují poměrně důmyslné metody pro výběr podstatných barev tak, že na první pohled ani nepoznáme, že jde o pouhých 256 barev - je to tedy málo, ale mnohdy, zejména pro různé náhledy, je toto množství barev postačující. Komprese Důležitým parametrem obrázků uložených na disku je způsob jejich komprese. Nekomprimovaný obrázek zabírá značné množství místa, a je tedy vhodné ho nějak zmenšit. Na neštěstí (z hlediska komprese) obrázek obsahuje značné množství informace a malé množství datové redundance, a tak komprese obyčejně není snadná. Jednou z možností, jak redundanci zavést, je odstranit určitou informaci neboli jednoduše smazat něco, co není z hlediska vizuálního vnímání podstatné. Tato tzv. ztrátová komprese je principem formátu JPEG. Pokud uložíme obrázek v tomto formátu, vždy ztratíme určité množství informace, vždy přijdeme o nějaké detaily. S vyšším kompresním poměrem (menší velikostí souboru) jsou tyto ztráty dramatičtější. Navíc JPEG ze své podstaty s vyšším kompresním faktorem mění barvu některých pixelů, či dokonce celých oblastí 4 x 4 pixelů. Formáty jako TIFF či PNG používají bezeztrátovou kompresi LZW. Obrázek takto uložený je podstatně větší nežli JPEG, ale odpovídá přesně tomu, co bylo na snímači CCD. Je tedy na nás rozhodnout se, co preferujeme - zda úsporu kapacity paměti a ztrátu detailů, či kvalitu. V dalším textu se budeme zabývat pouze obrázky true color. Globální změny obrazu Změny obrazu lze rozdělit do dvou základních tříd - na globální a lokální. Mezi globální změny patří zejména změna kontrastu nebo barevného tónu, zesvětlení, ostření či změna velikosti obrazu atp. Názvem lokální změny se označují zejména různé retuše, mazání detailů, lokální vyhlazení atd. Veškeré globální změny obrazu lze aplikovat i místně, pokud vybereme nějakou oblast. Podívejme se nejprve na globální změny obrazu. Histogram Jednou ze základních veličin umožňujících kvantifikaci každého digitálního obrazu je jeho histogram. Histogram je statistickou veličinou, která znázorňuje, kolik pixelů každé barvy je v obraze přítomno. Je-li například obraz dvoubarevný, bude mít jeho histogram pouze dvě hodnoty - počet pixelů jedné a druhé barvy. Protože obrázek má tři barevné kanály, je i jeho histogram složen ze tří složek. Vždy se však spolu se složkami RGB udává ještě intenzita, která odpovídá průměru všech tří kanálů. V některých programech se můžeme setkat s pojmem luminozity či luminance. Některé kvalitní digitální fotoaparáty zobrazují histogram přímo na LCD displeji. Proč je histogram tak důležitý? Podívejme se na snímek a jeho histogram (obr. 1a, b). Co z něj můžeme vyčíst? Levé části histogramu, tedy té, kde se nacházejí nízké intenzity jasu, se říká stíny (shades, viz šipka), prostřední části střední tóny (mid-tones) a pravé světla (lights). Je vidět, že tento obrázek má maximum pixelů ve spodní části histogramu, obrázek má tedy velké zastoupení tmavých intenzit. Druhou šipkou je označeno značné zastoupení vysokých intenzit jasu - zjevně jde o pixely, které odpovídají obloze. Obrázek má tedy velké množství tmavých pixelů a velké množství pixelů světlých, má tedy celkově vysoký kontrast. Toto jsme vyčetli z histogramu, aniž bychom se na obrázek byť jen podívali. Pokud máme velké množství pixelů v levé části histogramu, je obraz celkově tmavý (low-key image), pixely v pravé části naopak odpovídají obrazu světlému (high-key). Obrázky s převahou intenzit uprostřed mají obyčejně nízký kontrast (average-key). Tyto případy demonstrují obr. 2a až f. První je evidentně tmavý a tomu odpovídá i jeho histogram, druhý je celkově vyvážený. Poslední je přesvětlený, čemuž odpovídá i prázdná levá část histogramu - je typickým případem již zmíněného snímku s vysokým kontrastem. Obecně platí, že nejlepší histogram je ten, který obsahuje všechny hodnoty. Není podstatné, v jaké intenzitě jsou zastoupeny, podstatné je, že jsou přítomny všechny. Pokud některé hodnoty nejsou zastoupeny, znamená to, že z 256 možných používáme pouze jejich část. To obyčejně vede k přepáleným místům na fotografii, k jednolitým tmavým plochám či plochám jedné barvy atp. Existuje způsob, jak můžeme fotografii se špatným histogramem zachránit? Fotografie obsahuje určité množství informace a další do ní přidáme jen těžko. Můžeme ji různě modifikovat, přesouvat podstatné na různá místa, tak abychom to lépe vnímali, ale obtížně něco podstatného do již pořízeného obrazu přidáme. Je tedy nejlepší pořídit fotografii pokud možno tak, abychom ji měnit nemuseli. Pravidlo "Nějak to nacvakám a doma v teple to doladím" je zcestné. Chybějící informaci nepřidáme. Kvalitní programy umožňují editaci histogramu dvěma různými způsoby - přímým zásahem a pomocí tzv. křivek neboli pomocí vyhledávací tabulky (look-up table). Přímé změny histogramu Podívejme se na editaci tmavého obrázku pomocí Photoshopu. Na obr. 3a je originál a jeho histogram s naznačenou změnou (3b). Obrázek má špatně nastavenou intenzitu bílé, tzv. bílý bod. Posunutím ukazatele na první smysluplnou světlou barvu ji přesuneme zcela doprava, roztáhneme celý histogram a přesuneme prostřední intenzity (mid-tones) do světlejší oblasti. Je zřejmé, že histogram upraveného obrázku (3c, d) využívá celý rozsah intenzity, ale přesto je jaksi děravý. Je to proto, že původní obraz nepoužíval celou dynamickou škálu, a proto ve výsledku více intenzit prostě nemůže být a některé hodnoty jednoduše chybí. Obrázek je vizuálně lepší nežli originál, ale pokud bychom pořídili původní fotografii lépe (zde jsem při fotografování záměrně zvýšil clonové číslo), byl by i výsledek lepší. Jak ukazuje příklad na obr. 4a až d, podobným způsobem můžeme nastavit i tzv. černý bod histogramu. Všimněte si, že nápis na krabičce od čaje je kvůli chybějícím barvám značně poškozen. Prostřední manipulátor na liště s vstupními hodnotami histogramu slouží k posunu prostřední části histogramu směrem do tmavých či do světlých hodnot neboli ke změně kontrastu. Přesuňme tento ukazatel například do levé části - vše, co se nachází mezi tímto ukazatelem a maximální intenzitou, se zkomprimuje, a vše, co je mezi nejmenší intenzitou a ukazatelem, se roztáhne. Celkově se tedy obraz zjasní. Této změny lze lépe a podstatně přesněji dosáhnout pomocí křivek. Křivky Jedním z nejmocnějších nástrojů pro globální změny histogramu jsou editační křivky. Křivky popisují funkce, které určují, jak se změní výstupní hodnota pixelu v závislosti na hodnotě vstupní - slouží tedy jako filtry pro změnu intenzity barev. Osa x odpovídá intenzitě originálního pixelu a osa y hodnotě po aplikaci křivky. Křivka mající sklon 45o tedy odpovídá originálnímu obrázku, protože nedochází k žádným změnám. Podívejme se na obr. 5. Bod s hodnotou jedné poloviny, tedy intenzita 128, se přesune do jedné čtvrtiny. Dojde tedy ke snížení intenzity. Protože křivka je spojitá, dojde k přesunutí i dalších hodnot. V podstatě jediné dvě hodnoty, které zůstávají na svém místě, jsou 0 a 255. Vše, co můžeme provést pomocí přímých zásahů do histogramu, můžeme docílit i pomocí křivek. Například přesun bílého bodu o jednu čtvrtinu směrem k tmavším hodnotám odpovídá posunu maximální intenzity křivek směrem doleva (obr. 6). Všimněme si, že pokud se zvětší gradient křivky, dojde i k odpovídajícímu zvýšení intenzity ovlivněných pixelů a naopak. Na druhou stranu existují změny, kterých lze docílit pouze pomocí křivek, a ne pomocí přímých zásahů do histogramu. Nejdůležitější z nich je tzv. S-křivka a inverzní S-křivka. Pomocí S-křivky zvyšujeme kontrast obrazu a naopak (obr. 7a, b). Ostření a rozmazání Další důležitou globální změnou obrazu je jeho ostření či rozmazání. Bez použití stativu se málokdy podaří udržet fotoaparát při fotografování bez pohnutí, a tak je obraz skoro vždy malinko rozmazaný. Lidské oko je citlivé na hrany v obraze, podle hran rozpoznáváme objekty, a tak je jejich degradace i podstatnou újmou na vizuální kvalitě obrazu. Ostření obyčejně spočívá ve zvýraznění hran v obraze. Nejprve se detekují všechny hrany, a ty se do obrazu jednoduše přičtou. Poměrně mocným (i když malinko komplikovaným) nástrojem ve Photoshopu je funkce Unsharp Mask, která vyhodnocuje okolí pixelu, počítá jeho statistiku a na jejím základě mění i jeho hodnotu. Obyčejně se nevyplácí používat ostření opakovaně, neboť aplikace těchto funkcí vedou k duplikaci hran a dalším negativním změnám. Rozmazání obrazu je jednou ze základních funkcí pro odstraňování šumu. Šum a vlastně veškerá vysokofrekvenční informace v obraze (tedy i hrany) se jednoduše rozptýlí do svého okolí. Jedním z vynikajících operátorů pro odstraňování šumu je tzv. filtr medián, který opět spočívá ve statistice okolí pixelu. Rozmazání pohybem (motion blur) může odstranit některé chyby vzniklé třesoucí se rukou při dlouhé expozici. Použití těchto filtrů demonstrují obr. 8a až c. Na prvním je rozmazaný obrázek, prostřední je mírně barevně upravený originál a třetí po úpravě ostřením. Změna rozměru, digitální zoom Jednou z nejčastějších operací je změna velikosti obrazu. Pro tuto operaci je vždy zapotřebí provést tzv. převzorkování. Digitální obraz je definován jen v diskrétních hodnotách - konkrétně se přesně změří hodnota pixelu v jeho prostředku a ta se pak přiřadí celé plošce pixelu. Pokud obraz zvětšujeme či zmenšujeme, musí se nové hodnoty ve středech pixelů nějak vypočítat. Proto se obraz musí nejprve převést do spojitého popisu a musí se vzorkovat znovu. Jde o dobře známý problém z teorie vzorkování a čtenáře zajímající se o detailní pochopení této problematiky odkazuji na literaturu podle uvedeného seznamu. Nová hodnota pixelu se musí vypočítat z existujících hodnot. Pro tyto účely se použije okolí pixelu a zde vstupují v úvahu tři podstatné záležitosti - jak velké okolí se použije, jakým způsobem se nová hodnota vypočítá a jaké je uspořádání pixelů v mřížce. Zcela nejvýhodnější uspořádání je do mozaiky, podobně jako v oku hmyzu - sousední pixely jsou totiž od sebe stejně daleko. V praxi však obyčejně máme k dispozici CCD s klasickým rozložením prvků. Obecně čím více pixelů se použije, tím lepších výsledků se dosáhne. Nejčastějším případem, který dává velmi kvalitní výsledky, je bikubická interpolace (zde se interpoluje spline plochou v obou směrech stupně tři). V některých programech (ACDSee) se můžeme setkat s Lanczosovým filtrem či s Mitchelovou interpolací. Obecně jde o varianty interpolace využívající okolí šestnácti pixelů s tím, že některé z nich mohou obraz malinko ztmavit. Vždy se vyplatí aplikovat všechny tři filtry a výsledek porovnat. Obecně nejzásadnějším problémem je to, že všechny změny velikosti obraz rozmazávají. Pokud tedy chceme obraz ve velikosti 800 x 600 pixelů, je nejlepší ho tak vyfotografovat. Co je to digitální zoom, jímž se honosí tolik fotoaparátů? Nejde o nic jiného než o změnu velikosti obrazu pomocí nějaké interpolace. Tato interpolace nemůže do obrazu přinést žádnou novou informaci, a proto jde jen o trik. Obrázek se vyfotografuje v maximálním možném rozlišení a potom se uměle zvětší. Je tedy lepší zvětšit ho v nějakém programu, či raději použít firmware aparátu? CCD nesnímá pixely přímo, ale pixely se vypočítávají vždy ze čtyř (tří) sousedních buněk. Před každou buňkou CCD snímače je barevný filtr a hodnota pixelu se vypočítává jako vážený průměr těchto buněk. Pokud obraz zvětšíme v nějakém programu, provádíme vlastně úpravy dvě - převod z buněk CCD na pixely obrazu a následně zvětšení. Zvětšení přímo v aparátu aplikuje zoom přímo na buňkách CCD, jde tedy o adaptivní zoom využívající vlastnosti CCD. Zoom pomocí firmwaru aparátu bude zřejmě vždy poskytovat lepší výsledky - nejde tedy o plýtvání. Na závěr jedna poznámka: Některé lepší aparáty poskytují jako alternativní formát obrazů RAW. Jsou to data sejmutá přímo z CCD a obyčejně je dokáží zpracovávat pouze programy dodávané s fotoaparátem. To je nesmírná výhoda, protože programy v počítači jsou vlastně implementací firmwaru, kterou je možno vyměnit za novou verzi. Lokální změny Globální úpravy obrazu se aplikují vždy na obraz jako celek. V některých případech potřebujeme provést nějaké změny pouze v určitém místě - notoricky známým případem je korekce červených očí, způsobených odrazem světla blesku od sítnice. Lokální změny můžeme provádět pomocí dvou základních metod - výběrem a aplikací změny globální jen na vybranou část, nebo pomocí různých nástrojů, kterými program disponuje. Programy jako Photoshop či Corel PHOTO-PAINT disponují velkým množstvím celkem zajímavých nástrojů pro lokální úpravy obrázků. Jedním z velice užitečných je tzv. klonovací nástroj, který slouží ke kopírování oblastí obrazu z jednoho místa na jiné. Podívejme se, jak tento nástroj pracuje. Na obrázku je poškrábaná fotografie. Vzhledem k tomu, že pozadí je celkem jednoduché, je nejjednodušší možností editace této vady přenesení pixelů z blízkého okolí. Toho docílíme snadno právě klonovacím nástrojem - zvolíme klonovací nástroj a se stisknutým tlačítkem Alt klepneme na oblast, která se má přenést - poté jen aplikujeme změnu. Jinou aplikací je odstranění "nevhodné" osoby z fotografie atp. Mezi lokální operace patří především místní ostření či rozmazání, různé "šmudlání", změny barevného tónu aj. Základním rozdílem mezi aplikací globální operace na výběr a aplikací většiny zbývajících funkcí je v první řadě míra interaktivity (lokální úpravy se znásobují opakovaným klepnutím), v druhé řadě možnost nastavení slábnutí vlivu funkce na okraji oblasti. Spojování fotografií Poslední úpravou, kterou uvedeme, je spojování fotografií. Některé digitální fotoaparáty disponují funkcemi pro tvorbu panoramatických fotografií, ale v mnoha případech se neobejdeme bez ručního spojení. Příkladem mohou být skenované fotografie či skenované mapy. Fotografie se musejí v první řadě překrývat. Pokud neobsahují společné prvky, je jejich napojení velice obtížné. Obě fotografie barevně upravíme tak, aby spolu barevně ladily zejména v části, která je společná, a poté je otevřeme v nějakém programu, který disponuje prací ve vrstvách a především průhledností. Položíme do výsledku první z obou obrázků. Potom vložíme druhý, ale nastavíme jeho průhlednost tak, aby bylo vidět pozadí. Nyní se pokusíme oba obrázky umístit tak, aby na sebe pokud možno přesně navazovaly. V mnoha případech se neobejdeme bez perspektivní korekce obrazů. Pokud je vše v pořádku, nastavíme průhlednost obrázku v popředí na nulu a vše ořízneme do požadované velikosti. V některých případech jsou obrázky barevně rozladěné nebo je vidět ostrý přechod mezi vrstvami, takže se vyplatí přechod malinko rozmazat. Závěr Možnosti úprav digitálních fotografií v počítači jsou tak široké, že jsme se s nimi v tomto pokračování dokázali jen letmo seznámit. Proto se k tomuto tématu ještě vrátíme a uvedeme příklady některých pokročilejších technik. Bedřich Beneš Infotipy: www.digineff.cz www.fotografovani.cz/df www.grafika.cz/photo/ www.paladix.cz www.zive.cz/h/Fotoavideo/ Glassner, A.: Principles of Digital Image Synthesis volume I and II. Morgan Kaufman Publishers, 1995. Gonzales, R. C., Wintz, P.: Digital Image Processing, second edition. Addison-Wesley, Reading,1987.