Aby černá byla černá a bílá byla bílá, aneb za histogramy krásnější

Povídání nejen o černé a bílé a jak se jich prostřednictvím funkce zvané úrovně dobrat, ale také o tom, co je to histogram, co se z něj dá vyčíst a o jednom z hlavních úskalí čudlíkování – dírách v histogramu.

Minulý díl serálu byl o tom, kudy při upravování jasu a kontrastu fotografií v digitální podobě cesta nevede a proč. Radila jsem vám nepoužívat primitivní funkce jas a kontrast, protože při jejich použití se z fotografií stávají šedivky bez černé a bílé a také dochází ke ztrátám detailů ve světlech a stínech. Dnes se nespokojíme s pouhým konstatováním, že vyfukováním kouře do vody zlato nevzniká, ale podíváme se na to, jak se zlata opravdu dosíci. Konkrétně, jak zařídit to, aby obrázek opravdu obsahoval čistou černou i bílou, a jak ho libovolně zesvětlovat a ztmavovat, aniž bychom o černou nebo bílou přišli a aniž bychom ztratili detaily ve světlech či stínech. Funkce, která nám pomůže zařídit, že černá bude opravdu černá a bílá bude bílá, se nazývá úrovně, anglicky levels. Je jedním ze základních a nejdůležitějších nástrojů při úpravách obrázku a vyplatí se ji naučit používat.

Okno úrovní (levels) ve Photoshopu
Obr. 1 – Okno úrovní (levels) ve Photoshopu.

Ve Photoshopu tuto funkci najdete v menu pod Image > Adjust > Levels. Když ji zvolíte, otevře se vám okno, ve kterém bude graf podobný tomu na Obr. 1. Tento graf se nazývá histogram. Nemá nic společného s vaším krevním obrazem. Ukazuje vám, jak je který tón v obrázku zastoupený. Na vodorovné ose máte škálu jasů od černé do bílé. Výška každého sloupečku je úměrná počtu pixelů obrázku, které mají danou hodnotu jasu.

Z histogramu se dá vyčíst mnoho užitečných informací. Pokud například histogram vypadá tak, jako na Obr. 2 vlevo dole, znamená to, že na obrázek obsahuje velké množství pixelů, které jsou černé nebo skoro černé. To znamená, že na obrázku jsou tmavé plochy, na kterých nejsou viditelné žádné detaily. To může být někdy i naším cílem, například pokud fotografujeme nějaký objekt, třeba květinu, na černém pozadí. Většinou to ale signalizuje nepříjemný fakt, že stíny jsou na obrázku příliš tmavé, zablokované, bez detailů. Stejně tak histogram, který vypadá jako ten na sousedním obrázku vpravo, napovídá, že na obrázku jsou bílé vypálené plochy zcela bez detailů. Všimněte si, že se může jednat i jen o jednu vysokou čáru na kraji histogramu. Zde jedno malé upozornění – pokud pracujete s obrázkem, který má černý nebo bílý okraj či rámeček, nezapomeňte, že i ten je zahrnutý v histogramu, takže velké množství bílých a černých pixelů, které histogram signalizuje, může pocházet odtud a zastírat to, kolik černých a bílých pixelů obrázek samotný opravdu obsahuje, podobně jako na Obr. 4 vpravo.

Histogramy
Obr. 2 – Histogramy problémových obrázků: a. šedé stíny, b. šedá světla, c. ztráta detailů ve stínech, d. vypálená světla.

Kromě toho, které tóny v obrázku přebývají, můžeme z histogramu vyčíst i to, které tóny naopak chybí. Pokud se kopeček histogramu začíná zvedat až dál, než hned u levého kraje, znamená to, že obrázek neobsahuje žádné opravdu černé nebo skoro černé pixely. Jinými slovy, fotografie je šedivka, bez pěkné syté černé. Podobně, pokud kopeček histogramu končí dřív, než až na úplně vpravo, tak to také znamená, že fotografie je šedivka. Tentokrát ale proto, že na fotografii není nikde čistá bílá. Ukázku takových histogramů vidíte na Obr. 2 nahoře. Nenechte se zmást tím, že na vaší fotografii třeba nejsou žádné černé ani bílé objekty. I tak tam prakticky vždy černá a bílá je. Prakticky vždy totiž na fotografii jsou nějaká místa, či jen body, které jsou buď ve stínu, nebo které se naopak lesknou. Pokud obrázek neobsahuje vůbec žádné čistě černé a bílé pixely, je na pohled šedivý a nevypadá dobře (až na zcela zanedbatelné procento výjimek, kdy šedivost je výtvarným záměrem).

Jak to tedy zařídit, aby černá byla černá a bílá byla bílá? Pod histogramem v okně úrovní najdete tři šoupátka. Černé, bílé a šedé. První dvě, jak jejich barva napovídá, slouží k nastavení černé a bílé na obrázku. Nastavíte-li tato šoupátka na nějakou hodnotu, grafický editor přetransformuje škálu hodnot pixelů tak, že hodnotu označenou černým šoupátkem namapuje na 0 a hodnotu označenou bílým šoupátkem na 255 (u osmibitových obrázků). Tzn. tato šoupátka slouží k označení toho, co má být po transformaci už čistě černé a co má být čistě bílé, čili k nastavení černého a bílého bodu.
Ve Photoshopu najdete na spodku okna úrovní ještě druhé černé a bílé šoupátko. Ta slouží k nastavení hodnoty černého a bílého bodu na výstupu. Černý bod nemusí být čistě černý, bílý nemusí být čistě bílý. Můžete zvolit jiné než defaultní hodnoty 0 a 255 a tím obrázek úmyslně zešedivět. To je ale v naší situaci přesně to, co nechceme a proto s těmito šoupátky vůbec nebudeme hýbat. Příklad správného nastavení šoupátek můžete vidět na Obr. 3.

Správné nastavení černého a bílého bodu v dialogu úrovní
Obr. 3 – Správné nastavení černého a bílého bodu v dialogu úrovní.


Vzhledem k tomu, že naším zájmem je, aby kopeček histogramu začínal hned na úrovni černé a končil až na úrovni bílé, potřebujeme černé a bílé šoupátko v dialogu úrovní přirazit zleva a zprava do míst, kde začíná a končí kopeček histogramu. Nechceme je přirazit příliš k sobě, jen opravdu na konce histogramu. Jinak namapujeme na černou a bílou příliš mnoho pixelů a bude to mít za následek černočerné stíny bez kresby a vypálená světla.

Nastavení černého a bílého bodu
Obr. 4 – Vlevo šedivý obrázek bez bílé a černé. Vpravo tentýž obrázek po správném nastavení černého a bílého bodu funkcí úrovně.

Na Obr. 4 vlevo vidíte šedivý obrázek, ve kterém chybí černá a bílá, a jeho histogram. Vpravo pak vidíte, co to s obrázkem udělá, když správně nastavíme černou a bílou.

Černý a bílý bod nemusíte vždy nastavovat sami, manuálně. Photoshop nabízí i funkci auto levels (Image > Adjust > Auto Levels), která toto provede za vás. Zde ale pozor. U barevných obrázků lze funkcí úrovně korigovat rovněž každý jednotlivý kanál zvlášť. Funkce auto levels toto provádí a někdy proto poněkud pozmění barvy obrázku. V některých případech je to užitečné, protože se tím odstraní nežádoucí barevný posun skenu, nicméně u obrázků, ve kterých silně převládá jedna barva, to často barvy posune někam úplně mimo. Novější verze Photoshopu proto mají také ještě funkci auto contrast (Image > Adjust > Auto Contrast), která také nastaví černý a bílý bod automaticky, ale vždy bez barevného posunu.

Pod histogramem máme k dispozici ještě třetí šoupátko, šedé. To nám umožňuje určit, jak se při transformaci škály tónů změní střední tóny.


Pomocí šedého šoupátka můžeme udělat střední tóny podle přání tmavší nebo světlejší tím, že ho posuneme doprava nebo doleva. Na rozdíl od funkce jas tato operace ztmavuje a zesvětluje obrázek přesně tak, jak to potřebujeme.

Nepohneme-li totiž současně černým a bílým šoupátkem, tak černá a bílá se nijak nezmění. Zůstanou černou a bílou a žádné zešednutí se nekoná. Stejně tak nám ani žádné tóny nemapují vně rozsahu 0-255 a nedochází k jejich ořezání. Transformace mění hlavně střední tóny. Tóny, které jsou blízko černé se ztmaví jen o trošku, takže k jejich slití dojde jen v minimální nutné míře. Stejně tak při zesvětlování se světlé tóny zesvětlí už jen minimálně, takže se nám zdaleka neslijí tolik, jako při použití funkce jas, kdy se všechny tóny zesvětlí rovnoměrně o stejnou hodnotu a spousta světlejších tónů tak překročí horní hranici hodnot a slijí se do bílé. Toto je prakticky demonstrováno na Obr. 5 a 6. Na Obr. 5 vidíte porovnání toho, jak funkce jas a posunutí šedého šoupátka v dialogu úrovní transformují šedotónovou škálu. Na Obr. 6 pak je ukázka toho, jak transformace vypadá na reálném obrázku.

Zesvětlení a ztmavení šedotónové škály funkcemi jas a úrovně
Obr. 5 – Porovnání zesvětlení a ztmavení funkcemi jas a úrovně na šedotónové škále. Při použití funkce úrovně nedochází k zešednutí a nadměrné ztrátě detailů ve světlech a stínech.
Porovnání zesvětlení funkcemi jas a úrovně
Obr. 6 – Porovnání zesvětlení funkcemi jas a úrovně. Vlevo příliš tmavý obrázek, uprostřed tentýž obrázek zesvětlený funkcí jas, vpravo podobně zesvětlený obrázek funkcí úrovně.

Vraťme se ještě k histogramu a tomu, co se z něj dá vyčíst. V některých případech histogram vypadá jako hřeben, případně dokonce jako hřeben s vylámanými zuby, viz Obr. 7. Takový histogram znamená to, že tóny, které jsou na obrázku zastoupené, se střídají s těmi, které nejsou. Tj. u každého tónu sousední tóny chybí – mezi tóny přítomnými v obrázku jsou skoky. Takový histogram signalizuje, že přechody tónů na obrázku nejsou tak plynulé, jak by mohly být. To může (nebo ještě nemusí) být prostým okem patrné. Pokud skoky mezi tóny v obrázku zastoupenými jsou tak velké, že je již naše oko schopné je rozlišit, mohou být na obrázku viditelné ošklivé mapy nebo textura v hladkých plochách. Pokud se nám stane, že k něčemu takovému dojde, máme problém. Spravit se to dá pouze retuší a nebývá to zrovna snadná záležitost. V případě, kdy už díry v histogramu máme, ale ještě to vidět není, se pohybujeme na tenkém ledě. S dalšími úpravami musíme opatrně. Pamatujte také, že co nevidíte vy na svém monitoru, může někdy na jiném monitoru být vidět!

Histogram vypadající jako hřeben
Obr. 7 – Na obrázku, který má děravý histogram připomínající hřeben, mohou být patrné neplynulé přechody mezi tóny.

Zubatý histogram podobný hřebenu (ne nutně celý, ale třeba jen v části rozsahu), který signalizuje nedostatečně plynulé přechody mezi tóny, je typický pro obrázky, které doznaly zásadních úprav tonality. Je tomu tak proto, že od začátku pracujeme s omezeným konečným počtem tónů. Každá úprava tonality může některé tóny pospojovat, ale žádná transformace škály tónů počet tónů nenamnoží.

Toto je naprosto principiální omezení při digitálních úpravách obrázků. Pokud bychom pracovali s nekonečnou spojitou škálou tónů, tento problém bychom neměli a škálu tónů bychom mohli transformovat zcela libovolně, bez omezení. My ale pracujeme se škálou diskrétní, kde se zaokrouhluje a ořezává a dochází tak ke slévání tónů. Je proto v našem zájmu, aby škála, se kterou pracujeme, byla alespoň co nejjemnější, abychom měli od začátku k dispozici co největší počet možných hodnot a měli tak pro úpravy co největší rezervu. Vzhledem k tomu, že obrázky chceme upravovat někdy dost razantně, potřebujeme mít počet diskrétních tónů mnohonásobně větší, než kolik je lidské oko schopné rozlišit. Proto je výhodou, můžeme-li například pracovat s 16-ti bitovými obrázky místo pouze 8-mi bitových. Také je v našem zájmu, aby zdrojový obrázek, se kterým budeme pracovat, ať už pochází ze skeneru či z digitálního fotoaparátu, sám obsahoval pokud možno co nejvíc tónů – aby škálu hodnot, kterou máme k dispozici, pokud možno maximálně využíval. S čudlíky jde provádět kouzla, ale má to své hranice. Nemůžeme si vyčarovat úplně všechno. I zde platí staré lidové rčení, že “z hovna bič neupleteš”.

Když jsem u těch děr v histogramu, tak ještě jedna poznámka. Pokud upravujete tonalitu obrázku a úprava se vám nelíbí, například se vám ji třeba podaří přehnat, použijte „undo” (nebo ve Photoshopu historii) a proveďte celou úpravu znovu. Nekompenzujte ji další úpravou v opačném směru. Tím totiž svoji chybu napravíte pouze zdánlivě. Vyrobíte u toho totiž zcela zbytečné díry v histogramu. Když nějakou škálu tónů srazíte na menší rozsah hodnot, tak se se vám některé tóny nutně slijí dohromady. Při následovném roztažení na větší rozsah se počet tónů nezvýší, pouze se rozprostřou po celém tomto rozsahu. Tj. v histogramu pak budou díry. Viz ukázka na Obr. 8.

Zbytečné díry v histogramu
Obr. 8 – Zbytečné díry v histogramu vzniklé ztmavením obrázku a vzápětovným zesvětlením. Vlevo histogram obrázku před úpravami, vpravo po úpravách.

Velmi šikovné v tomto směru jsou ve Photoshopu tzv. adjustment layers. Pomocí nich totiž můžete úpravy libovolně kombinovat, vršit, vracet se k nim a měnit je, aniž by to vedlo ke zbytečným dírám v histogramu a degradaci obrázku. Úprava v této formě se totiž na datech ve skutečnosti neprovede, pouze se uloží informace o ní jako specální „vrstva“ obrázku a její efekt se vám znázorní na displeji. K úpravě ve formě adjustment layer se můžete kdykoli vrátit a libovolně ji pozměnit. Změníte tím pouze její zaznamenané parametry – výsledek této změny se vám znázorní na displeji, ale vlastní obrazová data zůstanou i nadále stejná, beze změny. Tzn. vy v každém okamžiku vidíte, jaký budou mít vámi provedené úpravy efekt, ale ve skutečnosti se všechny takovéto úpravy provedou najednou, až když tyto speciální vrstvy sloučíte s obrázkem samotným.
Škála tónů se tak netransformuje opakovaně, tam a zpět, ale pouze jednou a zbytečné díry v histogramu tak nevznikají. Pokud proto umíte pracovat s vrstvami, používejte zejména pro komplikovanější kombinované úpravy raději Layers > New Adjustment Layer > Levels, než klasickou funkci Image > Adjust > Levels.

10 komentářů u „Aby černá byla černá a bílá byla bílá, aneb za histogramy krásnější“

  1. Kedy upravovat levels

    Niekde som cital ze levels je lepsie upravovat uz pri scanovani (mozno to bolo aj od Radky) aby tie diery nevznikali. Ak je to pravda, Radka, mohla by si to prosim rozviezt?

    Odpovědět
    • RE: Kedy upravovat levels

      Nie som Radka ale pokusim sa. Zvycajne ma vyznam nastavovat “levels” na skeneri ak pozadujeme vystup v 8bit/kanal a skener pracuje s vyssou bitovou skalou. Vtedy skener pracuje so svojim vnutornym – vyssim poctom disretnych hodnot so vsetkymi kladnymi dosledkami ako priblizila Radka. Nasledne sa hodnoty konvertuju na 8bit/kanal a zapisuju do suboru. Vtedy je riziko vzniku dier v histograme minimalne, najma ak skener ma aspon 12bit a velmi sa to s upravami neprehana. Niekedy k tomu prispieva este dalsia vyhoda skenerov a to riadenie zosilnenia z CCD znimaca na analogovej urovni. Vtedy uz pracujeme so spojitym spektrom a nami zvoleny rozsah sa roztiahne na plny vystupny rozsah prevodnika analogovo. Tam uz nam diery nevznikaju vobec, tam sa skor prejavi sum, pripadne nelinearity analogovych obvodov. Ale neviem, ktore zo skenerov podporuju prave tuto ficuriu.

      Odpovědět
  2. Histogram vs. Levels

    Mam tu jednu otazku na znalcov cudlikovania. Preco je vo fotosope uplne odlisny vhlad rozlozenia v histograme ak si ho zobrazim cez “Levels” alebo cez “Histogram” ? Pri niektorych typoch fotografii to nevyzera vuobec rovnako. V com je problem ?

    Odpovědět
    • RE: Histogram vs. Levels

      Histogram je graf zavisly na jedne promenne. Barevny obrazek ma ovsem tri kanaly. Tzn. lze sestrojit histogram pro kazdy kanal zvlast, pokud ale chceme histogram, ktery by zachycoval vsechny barvy, musime pouzit nejakou kombinaci barevnych kanalu. Histogram, ktery se ukazuje jako default v dialogu urovni je oznacen jako “RGB” kanal, u vlastni funkce histogram je default “Luminosity”. Jsou to histogramy pro jinou kombinaci tri barevnych kanalu a proto se lisi. Obe tyto kombinace kanalu ale svym zpusobem vyjadruji jas bodu, proto jsou si oba grafy vetsinou v zakladnich rysech podobne a lze je vyuzivat stejnym zpusobem.

      Odpovědět
      • histogram vs. levels

        Photoshop verse 7, režim RGB.

        Nejprve značení:
        Histogram v dialogu Úrovně pro volbu RGB značím RGB histogram.
        Histogram ve stejnojmeném dialogu pro volbu světlost (orig. Luminosity) značím L histogram.
        Jednobarevné histogramy, které jsou v obou dialozích stejné, značím R,G,B histogramy.

        Základní rozdíl:
        V L histogramu je každý pixel započítán právě jednou, zatímco v RGB histogramu je každý pixel započítán právě třikrát, a to obecně na vzájemně různých pozicích.
        Trochu jinak řečeno je v L histogramu každý pixel započítán na pozici jeho světlosti, zatímco RGB histogram je součtem jednobarevných histogramů R, G, B. (Rozumí se součet funkcí.)

        Nejlépe dokumentovat na příkladu:
        (Hodnoty jsou zjištěny na mém stroji. Nevím, zda se v jiném prostředí nemohou objevit jiná čísla.)
        Vzal jsem soubor o velikosti 1 pixel. Tento pixel jsem barvil postupně různými barvami.
        Pro [60,120,180] má L histogram jednu čáru na pozici (v dialogu se mluví o úrovni) 109. V RGB histogramu se objeví 3 čáry zhruba ve čtvrtině, polovině a třech čtvrtinách, což jsou pozice odpovídající hodnotám barevných souřadnic pixelu. Každá jedna tato čára se zároveň objevuje na stejných pozicích v jednotlivých jednobarevných histogramech – takže funkční součet.
        Pro [60,180,180] má L histogram jednu čáru na pozici 144. V RGB histogramu se objeví 2 čáry zhruba ve čtvrtině a třech čtvrtinách, přičemž čára vlevo je poloviční. Soudím, že četnost na pozici 180 je 2.
        Pro více bodů se čáry úměrně zmnoží.
        (Doporučuji popsaný experiment provést. Rozdílnost histogramů je vizuálně přesvědčivější.)

        Světlost v dialogu Histogram:
        Na mém stroji jsem dostal tyto výsledky (psáno pixel -> světlost)
        [255,0,0] -> 76
        [0,255,0] -> 150
        [0,0,255] -> 28
        Tyto základní světlosti jest vzít jako váhy. Světlost obecné barvy je váženým průměrem jejích barevných souřadnic. Je-li tedy [r,g,b] nějaká barva, pak její světlost (v dialogu Histogram) se spočítá ze vzorce
        76/254*r + 150/254*g + 28/254*b
        Kde se vzaly ony základní světlosti? Jako barevný laik samozřejmě nevím. Ostře mi připomínají subjektivní světlosti základních R,G,B, ale jak je to doopravdy je už pro někoho zasvěcenějšího. Zrovna tak mi není jasné, zda Photoshop má hodnoty natvrdo, či si je cucá někde z útrob stroje, tedy zda v jiném prostředí nebudou hodnoty jinak.

        Další experimenty:
        Histogramy L a RGB jsou tedy principiálně rozdílné. Z praxe víme, že vizuálně většinou málo, někdy více. Pokud by někdo chtěl experimentovat s více než několika pixely, mám dva náměty.
        První vychází z toho, že světlost modré je malá. Otevřít obrázek, nová vrstva, úpravy/vyplnit čistou modrou, krytí vrstvy 85. Když to dobře půjde, mohli byste vidět to co já – histogramy R,G vše vlevo, B histogram někde více vpravo, L histogram zleva odsazený celkově vlevo. Úrovně ukazují jednu čáru, anžto se chytají poslední vrstvy. Takže to chce ještě aktualizovat základní vrstvu, duplikovat, přepnout se na modrou vrstvu a sloučit dolů. Teď by horní vrstva měla obsahovat řádně zmodřelý obrázek a RGB histogram by měl obsahovat dvě hromady proti jedné v L histogramu, každou na jiné pozici.
        Druhý námět vychází z toho, že světlost sytých barev (sytost ve smyslu HSB, tj alespoň jedna r,g,b nulová) nemůže být větší než 227 (pro [255,255,0]). Takže otevřít obrázek a opakovaným použitím nástroje Odstín a sytost obrázek ztmavovat a zvětšovat sytost. Výsledek už není tak extrémní ale možná instruktivnější.

        Metodická poznámka:
        V textu používám jednoduché formulace typu R,G,B histogramy jsou stejné v obou dialozích. Jest tomu rozumět tak, že jsem si zatím nevšiml, že by se tvarově nějak lišily. Toť vše. Jsou-li opravdu stejné nemám možnost nijak přesněji ověřit. To by mohla jedině autorská firma. Její dokumentace je bohužel předpisově marketingově ořezaná. Takže neúplná indukce na základě omezených experimentů. Důvěřuj ale prověřuj!

        Odpovědět
  3. Radko, děkuji

    Radko, nic mi už dlouho nepřišlo vhod, tako Tvoje články. Jsou SUPER, i Ty jsi SUPER.
    Je mi přes padesát, nikdo mne nezačoval, jsem čistokrevný samouk přes PC i přes Photoshop. Měl jsem na Photoshop několik knih_příruček, ze kterých dokázalo slovy fotografa Sudka, akorát bolet břicho. Tvé články jsou naprosto srozumitelné, cílené na problém a dobře psané. Musíš být super holka a byla bys super učitelka, pokud náhodou profesorkou nejsi. Moc Ti děkuji, a pravidelně budu hledat, zda se od Tebe něco zase objeví.

    Odpovědět
  4. .

    Díky za dost podnětný článek. Předtím jsem experimentoval a učil se všechno ovládat sám, ale tvoje články mi toto učení značně urychlily. Můžu už rovnou testovat, co jsi napsala a můžu se vyhnout zbytečným chybám, i když se chybami člověk učí… 🙂

    Odpovědět

Napsat komentář