Histogram a úpravy kontrastu

V předchozím článku jsem nastínil některé základní poznatky o histogramu. V dnešním volném pokračování se zabývám zejména metodami úprav kontrastu.

Tento článek je z roku 2004, informace v něm uvedené jsou sice stále platné (alespoň myslím), ale můžou působit už poněkud zastarale.

Barva a histogram

Než se dostanu ke slíbenému tématu, na chvíli odbočím. K minulému článku jsem dostal několik reakcí, z nichž vícero se týkalo barvy a histogramu. Přestože jsem se chtěl původně zabývat čistě černobílou fotografií, nebude od věci poznamenat, jak funguje histogram u barevných snímků. Je to poměrně prosté. Zatímco u ČB snímku je pro každý bod zaznamenána pouze jedna hodnota udávající stupeň šedi (jasovou úroveň), u barevného snímku je to trojice hodnot (vektor) udávající poměrné zastoupení jednotlivých barevných složek RGB – červená, zelená a modrá). Proto i histogram musí obsahovat pro každý bod tři hodnoty. Jinými slovy máme tři histogramy, pro každou barevnou složku jeden.

histogram-rgb.png, 8 kB

Pozn.: stejně jako v minulém článku, i nyní pocházejí všechny zde uvedené screenshoty z programu Paint Shop Pro 8, ve většině ostatních programů však vypadají víceméně podobně.

Protože je poněkud nešikovné pracovat se třemi různými histogramy, často se pro lepší představu o tonální charekteristice obrázku používá i u barevných snímků jeden histogram jasový. Hodnota jasu (I) se určí buď jako prostý aritmetický průměr ze všech tří barevných složek:

I = 1/3(R + G + B),

nebo sofistikovaněji (častější případ), kdy se jednotlivým barevným složkám přiřadí různý vliv na jasovou hodnotu. Následující součinitele jsou zjištěné empiricky podle citlivosti lidského oka na barevné složky:

I = 0,299R + 0,587G + 0,114B

Tento vzorec se mimochodem často používá i pro převod barevného obrázku do stupní šedi. Je samozřejmě pohodlnější pracovat pouze s jedním (jasovým) histogramem, který taky dává lepší představu o tonálním průběhu. Potud vše v pořádku. Ovšem je důležité kontrolovat i průběhy jednotlivých barevných složek! Pokud bychom tak neučinili, snadno se může stát, že dojde k přepálení pouze v jedné či dvou barevných složkách, a na jasovém histogramu to nemusí být poznat. Tento případ nastává nejčastěji u snímků, na kterých převládá jedna výrazná barva (např. snímky květin apod.) Při přepálení jedné barevné složky pak dochází k posunu barev a ztrátě sytosti ve světlech. Tato bolístka se projevuje i přímo při focení. Pokud váš přístroj zobrazuje histogram, jedná se v drtivé většině právě o histogram jasové složky. Jestliže tedy fotíte scénu s výraznějším zastoupením jedné barvy, je vhodné poněkud podexponovat (tj. nefotit „nadoraz“ a ponechat v pravé části histogramu rezervu).

Úprava kontrastu

Úprava kontrastu patří k základním operacím při práci s fotografiemi. Kontrast se dá ovlivňovat mnoha různými způsoby. Základní nástroje jako je Jas/Kontrast (Brightness/Contrast), Úrovně (Levels) a Křivky (Curves) jsem popsal v přechozím článku, proto už je nebudu opakovat. Jen ve zkratce připomenu, že Jas/Kontrast je nejjednodušší a nejméně vhodný způsob, Úrovně jsou pokročilejší a Křivky nabízejí nevětší volnost a prakticky neomezenou kontrolu nad tonálním rozložením snímku.

Mohlo by se zdát, že už není moc co dodávat, protože zejména Křivky jsou všeobecně považovány za nejvhodnější funkci pro tyto účely. Všechny tři uvedené funkce mají také nevýhody. Především pracují s jednotlivými body bez ohledu na jejich okolí. Takže každý bod určité tonální úrovně je namapován na jinou hodnotu. Často je vhodné upravit některé části fotografie různě, např. když je určitá větší část obrazu ve stínu a jiná část je naopak přesvětlená. V tomto případě by bylo vhodné mírně zesvětlit stíny a ztmavit světla, ovšem bez vlivu na lokální kontrast. Podobnou techniku, jakou je tzv. nadržování v klasické černobílé fotografii, můžeme použít i při počítačovém zpracování. Jiné alternativní postupy (Kontrast pomocí Unsharp Mask) již berou v úvahu okolí bodu automaticky.

Protože se zabývám ČB snímky, vyvstává otázka, zda nejprve obrázek převést do ČB a následně upravovat kontrast, nebo naopak. Tento bod považuji za natolik důležitý, že si neodpusím odpověď zdůraznit:

Všechny úpravy kontrastu a tonality provádíme na barevném snímku, který až na konci procesu převedeme na černobílý.

A vysvětlení? Kdybychom totiž nejprve převedli snímek do stupní šedi a teprve následně prováděli úpravy, připravili bychom se zcela zbytečně o část informací, které nesou rozdíly mezi jednotlivými barevnými kanály (RGB). Jasový kanál se získává kombinací ze tří hodnot, proto úpravou barevného snímku dosáhneme vyšší přesnost a lepší rozlišení mezi tonálními stupni (potlačíme tak i nežádoucí posterizaci). Nehledě na to, že můžeme úpravou sytosti barev v kombinaci s různými metodami převodu do ČB získat zajímavé efekty, podobné použití barevných filtrů v klasické ČB fotografii.

Doporučuji postupovat následnovně:

  • V hladině background necháme umístěn zdrojový snímek.

  • Tuto hladinu zduplikujeme a na ní budeme provádět úpravy. V případě složitějších úprav můžeme vrstvit dál dle libosti.

  • Úplně nahoru vložíme hladinu úprav (Adjustment Layer) typu Channel Mixer, kterou zajistíme pomocí vhodného nastavení (na obrázku je pouze příklad z mnoha různých možností nastavení) převod do ČB:

    chmixer.png, 12 kB

Panel s hladinami pak bude vypadat nějak takto:

layers1.png, 7 kB

Můžeme tudíž už při úpravách mezilehlé vrstvy vidět, jak bude vypadat ČB verze, aniž bychom museli snímek převádět „natvrdo“. A můžeme se vrhnout na úpravy…

A. Kontrast pomocí Unsharp Mask

Funkce Unsharp Mask (Maskování Neostrosti) se používá na softwarové doostřování. Pracuje tak, že zvyšuje kontrast na hranách a v jemných detailech, čímž se navozuje iluze ostrosti. Dá se však využít i poněkud netradičně, při úpravách celkového kontrastu snímku. Jen musíme nastavit parametry poněkud jinak než při doostřování.

Účinek Unsharp Mask se nastavuje těmito třemi parametry:

  • Radius (Poloměr) určuje, jak velké okolí bodu bude ovlivněno. Závisí na velikosti snímku a výstupním rozlišení. Při doostřování se pohybuje cca od 0,4 do 2,0. Při úpravě kontrastu použijeme mnohem větší hodnoty, od 50 do 100.
  • Strength (Síla) udává míru ovlivnění okolí. Obvykle platí, že čím menší poloměr, tím větší síla. Při doostřování se pohybujeme v hodnotách kolem 150 až 500. Při úpravě kontrastu musíme použít mnohem menší čísla, cca od 10 do 100.
  • Clipping (Práh) určuje, jak velký rozdíl mezi body musí být, aby se efekt projevil. Při doostřování je přibližně 1 až 10. U nastavení kontrastu doporučuji vždy ponechat na nule.

Je čas to vyzkoušet na praktickém příkladě. Tato metoda je vhodná, zejména pokud je naším cílem vysoce kontrastní černobílá fotografie.

Začnu s tímto výchozím snímkem (po převodu do ČB pomocí Channel Mixer: R = 70 %, G = 30 %, B = 0 %):

th_img_5978-base.jpg, 29 kB th_img_5978-base-bw.jpg, 27 kB

Vidíme, že výsledkem je fotka šedivka. Zkusme zduplikovat originální vrstvu a aplikovat na ni USM:

usm-kontrast.png, 7 kB

Protože při tomto procesu často vzniknou přepaly, je vhodné znížit míru krytí vrstvy. Zde je výsledek s krytím 88 %:

th_img_5978-usm-kontrast.jpg, 33 kB usm-histogram.png, 1 kB

Z histogramu je patrný vysoký podíl stínů. Kontrast se výrazně zvýšil, ale přesto nedošlo k přepálení světel a je zachován dostatek středních tónů. Také nedošlo k posterizaci, což je dáno i tím, že veškeré úpravy byly provedeny na barevném materiálu. Míru kontrastu lze nyní upravovat krytím vrstvy USM kontrast. Dále je možné experimentovat s jinými režimy prolnutí, zejména Soft Light (pro „roztažení“ středních tónů a kompresi světel a stínů; při tomto režimu nedojde k přepalu), Overlay či Hard Light.

B. Kontrast pomocí Soft Light

Jak jsem již naznačil v předchozím odstavci, kontrast lze též ovlivňovat nastavením režimu prolínání vrstvy. Funguje to jednoduše – zduplikujeme originální vrstvu a kopii nastavíme režim Soft Light, případně ještě snížíme krytí. Zde jsem použil krytí 100 %:

th_img_5978-soft-kontrast.jpg, 30 kB soft-histogram.png, 1 kB

Je vidět, že výsledkem jsou mnohem měkčí stíny i světla, zvýšení kontrastu se dosáhlo zejména ve středních tónech. Obě metody lze dobře kombinovat a mít tak plnou kontrolu nad množstvím kontrastu ve středních tónech, stínech a světlech.

Tato metoda má ještě jeden efekt, a tím je zvýšení sytosti barev. Při převodu do stupní šedi pomocí Channel Mixer lze pak výrazněji ovlivnit převod jednotlivých barevných kanálů. Lze to dobře použít i pro barevné snímky, kde se tímto způsobem dá zdůraznit kontrast a zároveň nasycení barev, ale pak je nutné více snížit krytí prostřední vrstvy.

Zatím jsem se zabýval pouze zvyšování kontrastu, nicméně pomocí Soft Light vrstvy lze kontrast rovněž jednoduše snižovat. Stačí vrstvu invertovat (udělat negativní snímek) a rázem se bude chovat obráceně – zvyšováním krytí vrstvy se bude kontrast snižovat.

Další zajímavou aplikací je úprava kontrastu ve větším měřítku. Například když je větší část snímku tmavá a jiná část světlá, je možné snížit rozdíly jasu se zachováním kontrastu na menších plochách. Postup bude stejný jako v předcházejícím odstavci, jen na Soft Light vrstvu aplikujeme Gaussovské rozostření s dostatečně velkým poloměrem (cca 70) a vhodným nastavením krytí dosáhneme požadovaného efektu. Na následujícím příkladě byla spodní část břehu utopená ve stínu (řešil by to i přechodový filtr). Bylo by vhodné ji zesvětlit, ale zároveň je žádoucí zachovat lokální kontrast a dramatickou oblohu (ztmavenou polarizačním filtrem). K tomu se hodí výše popsaná metoda. První obrázek je před úpravou, druhý po úpravě.

th_img_6676.jpg, 17 kB th_img_6676-soft.jpg, 18 kB

Závěr

V článku jsem nastínil ne zcela běžné metody úpravy kontrastu, které jsou alternativou k standardním funkcím typu Křivky. Kombinací obou uvedených metod lze dosáhnout (zejména při současném převodu do stupní šedi) velmi zajímavých výsledků. Připomínky rád uvítám v komentářích pod článkem.