In questo articolo si descrive in profondità l'istogramma di una foto digitale. E' molto importante capire come funziona, per utilizzare al meglio strumenti come curve e livelli. E anche per esporre correttamente al momento dello scatto, guardando l'istogramma della fotocamera digitale. Gran parte di questo articolo proviene da "L'esposizione", con parti rivedute, corrette e integrate.
Come sempre, buona lettura.
L'istogramma é un grafico che viene mostrato nelle fotocamere digitali (se la fotocamera lo permette addirittura in tempo reale mentre si sta' componendo la scena, più spesso quando si rivede la foto appena scattata) e in tutti i programmi di fotoritocco, ed esprima la distribuzione statistica della luminosità della foto.
Istogramma, con la suddivisione in luci, mezzi toni e ombre |
Se guardiamo l'asse orizzontale, vediamo che verso sinistra si va verso il nero, verso destra si va verso il bianco. E' possibile quindi dividere spannometricamente l'istogramma in tre parti: le luci (highlights), i mezzi toni (midtones) e le ombre (shadows). Questa classificazione è intuitiva, non ha confini precisi, serve solo ad individuare queste importanti aree del grafico per poi poterle interpretare pensando all'immagine reale. L'istogramma è infatti di un grafico che viene ricavato matematicamente dall'immagine e che riporta in modo comprensibile alcune importanti informazioni, alcune delle quali non visibili facilmente ad occhio nudo.
Nell'immagine qui sotto si può vedere un'immagine e il relativo istogramma. E' abbastanza facile capire in questo caso la relazione tra i picchi dell'istogramma e le aree relativamente uniformi dell'immagine.
E' facile capire in questo caso i picchi nell'istogramma a quali aree dell'immagine corrispondano! |
Abbiamo tre picchi: il più a destra, il più alto è relativo sicuramente alla parte più chiara dell'immagine, e quindi al cielo chiaro indicato con 1. Il picco centrale è relativo al cielo scuro, indicato con 2 e l'erba della collina è la parte più scura dell'immagine e corrisponde al picco 3, il più largo visto che l'erba ha varie tonalità. Per verificare questa corrispondenza, basta selezionare un'area dell'immagine e osservare l'istogramma (che normalmente è legato alla selezione, se qualcosa è selezionato). Qui sotto, selezionando una parte dell'area n. 2, si vede il relativo picco nell'istogramma.
Istogramma della sola selezione di un'area quasi uniforme: ecco il picco n. 2! |
Ecco quindi un concetto fondamentale: l'istogramma ci fa vedere con immediatezza le caratteristiche di luminosità dell'immagine. Si tratta di uno strumento importante, che ci permetterà, quando utilizzeremo i livelli (levels), le curve e tutti gli strumenti che modificano luminosità e contrasto di intervenire con precisione.
Per capire ancora meglio come venga costruito l'istogramma, supponiamo di entrare nella... testa di un programma di fotoritocco che deve calcolare l'istogramma di un'immagine (per comodità a 8 bit per colore). Per ogni pixel dell'immagine, il programma calcola il suo "valore" (poi vedremo il distinguo tra due modi di calcolarlo), ottenendo un numero da 0 (nero perfetto) a 255 (bianco perfetto). In pratica, è come se convertisse l'immagine a colori (con tre "numeri" per ognuno dei tre canali RGB) in scala di grigi (dove basta un solo "numero"). Poi comincia a costruire un grafico, una specie di istogramma a 256 (dalla 0 alla 255) colonne da "riempire": per ogni pixel calcola il suo "valore" e aggiunge "1" alla colonna relativa a quel valore. Ad esempio, se il primo pixel ha un "valore" pari a 123, aggiunge "1" alla colonna 123. Alla fine, se l'immagine é composta da varie tonalità di grigio, si forma un grafico di cui non ci interessano i valori assoluti, ma piuttosto l'andamento.
Esistono vari modi per calcolare il "valore" di un pixel, e di conseguenza vari tipi di istogramma, ognuno con le proprie caratteristiche.
Istogramma RGB: considera come "valore" di un pixel tutti e tre i valori RGB, cioè sovrappone i tre istogrammi dei tre canali RGB. In GIMP e in Photoshop è la scelta "RGB". E' possibile anche visualizzare un solo canale alla volta, oppure tutti e tre contemporaneamente sullo stesso grafico (GIMP) o su tre grafici diversi (Photoshop).
Istogramma della luminosità: considera come "valore" di un pixel una media pesata dei canali R, G e B allo scopo di calcolare una sorta di "luminosità percepita". Questa è la strada seguita Photoshop quando si seleziona "Luminosity" e in "GIMP" (nelle ultime versioni) quando si seleziona "Value", e da tutte le fotocamere digitali quando si consulta l'istogramma di una foto appena scattata.
Le differenza sono fondamentali: proviamo con un'immagine con un arancio (200,125,50) quasi uniforme e vediamo come i due tipi di calcolo producano grafici molto differenti.
Immagine originale |
Calcolo valore RGB: si vedono i tre picchi corrispondenti ai tre valori dei canali RGB dell'arancio (200,125,50) |
Calcolo luminosità pesata: un solo picco, corrispondente alla "luminosità percepita" dell'immagine |
Entrambe i tipi di calcolo di cui sopra hanno un loro perché: la prima è una descrizione più matematica e astratta ma evidenzia meglio clipping e posterizzazioni, la seconda è più aderente alla sensazione umana di luminosità ma potrebbe ingannare (si veda il paragrafo "Istogramma RGB e istogramma della luminosità"). A livello pratico basta essere a conoscenza dell'esistenza di questi due modi di calcolo, poi l'interpretazione dell'istogramma è sempre la stessa.
Da notare che comunque ogni programma interpreta alla sua maniera il grafico dell'istogramma, effettuando ad esempio una compressione verticale quando capita che ci siano dei picchi troppo alti (ad esempio una riga, indicante la presenza di molti pixel con lo stesso valore di luminosità) che farebbero scomparire il resto del grafico. Se provate infatti ad aprire la stessa immagine in Photoshop e in GIMP, scoprirete che gli istogrammi non sono esattamente gli stessi.
Qui sotto si vede la finestra dell'istogramma di GIMP (versione 2.3.18, in inglese):
Istogramma di GIMP |
Come si nota, oltre al grafico dell'istogramma vero e proprio, sotto ci sono altre informazioni statistiche di solito poco interessanti per le nostre applicazioni. In alto invece c'è la combobox "Channel" per la selezione tra istogramma della luminosità ("Value") o istogramma RGB ("RGB") oppure uno dei canali RGB separatamente ("Red", "Green" e "Blu"), oltre ai due pulsantini per la scelta tra la consueta visualizzazione lineare o logaritmica per l'asse verticale.
Sua maestà Photoshop (versione CS3 in questo caso) propone un istogramma molto completo, eventualmente espandibile con i tre istogrammi RGB separati. La scelta "RGB" propone un istogramma di tipo "Luminosità RGB", mentre "Luminosity" indica un calcolo pesato tipo "Luminosità pesata".
Istogramma di Adobe Photoshop CS3 |
Interessante l'istogramma (canali RGB nei rispettivi colori più luminosità in bianco) di UFRaw, un RAW converter open source e quindi libero da ogni gabella:
Istogramma di UFRaw, con le percentuali di pixel interessati dal clipping |
Le informazioni statistiche ora sono più interessanti per noi fotografi: vengono indicate le percentuali di immagine sovra e sottoesposta, addirittura per ogni canale. Nell'esempio riportato, solo il canale rosso è sovraesposto dello 0.9%, mentre tutti e tre i canali RGB sono sottoesposti con percentuali simili. Le checkbox e i pulsanti a destra permettono di evidenziare nell'immagine quali siano effettivamente le aree sovra e sottoesposte.
Attenzione! Se nell'immagine su cui state lavorando avete creato una selezione, l'istogramma è relativo solo a quella parte e non all'intera immagine. Se non esiste nessuna selezione, allora l'istogramma ritorna ad essere calcolato dall'intera immagine.
L'immagine e il suo istogramma sono quindi legati da un intenso legame, e praticamente qualsiasi operazione che compiamo per ritoccare l'immagine ha qualche effetto sull'istogramma. Se osserviamo attentamente immagine (che è quella che ci interessa!) e istogramma per ogni operazione che compiamo, avremo la certezza di non incorrere in errori grossolani come clipping e posterizzazione.
Come abbiamo detto sopra, l'istogramma presenta alcune importanti informazioni sull'immagine: l'istogramma RGB ci parla dell'andamento dei valori dei canali RGB, l'istogramma della luminosità ci parla appunto delle caratteristiche di luminosità percepita. Vediamo ora alcuni esempi di quest'ultimo, il più diffuso nelle fotocamere digitali e il più intuitivo.
Com'é l'istogramma della luminosità di un'immagine... completamente bianca? Il programma trova tutti i pixel con valore di luminosità 255 (bianco puro), quindi l'istogramma é composto da tutte le colonne a zero tranne l'ultima (la colonna 255) che ha un'altezza pari al numero di pixel dell'immagine. Come abbiamo già detto, non ci interessa sapere l'altezza della riga, ma solo l'importantissima informazione che l'istogramma é una riga sul bianco puro. Potrebbe essere il caso estremo di una sovraesposizione stratosferica. Se le vostre foto sono così, lasciate perdere la fotografia :-)
Istogramma una sola riga all'estrema destra, per un'immagine completamente bianca |
Com'é l'istogramma di un'immagine... completamente nera? Caso opposto del precedente: il programma trova tutti i pixel con valore di luminosità 0 (nero puro), quindi l'istogramma é composto da tutte le colonne a zero tranne la prima (la colonna 0) che ha un'altezza pari al numero di pixel dell'immagine. Potrebbe essere il caso estremo di una sottoesposizione stratosferica.
Istogramma una sola riga all'estrema sinistra, per un'immagine completamente nera |
Com'é l'istogramma di un'immagine... completamente grigia al 50%? Caso opposto del precedente: il programma trova tutti i pixel con valore di luminosità 128 (grigia al 50%), quindi l'istogramma é composto da tutte le colonne a zero tranne la colonna centrale (la colonna 128) che presenta la famosa riga.
Istogramma una sola riga centrale, per un'immagine completamente grigia al 50% |
Abbiamo capito come funzionano gli istogrammi delle immagini composte da un solo tono di luminosità (bianco, nero o grigio). Proviamo ad analizzare dei casi un po' più simpatici.
Com'é l'istogramma di un'immagine composta da blocchi con gradazioni di grigio, dal nero al bianco? Questa é la tipica immagine per la calibrazione dei monitor. Il programma trova un numero di pixel con una gradazione, poi lo stesso numero con un altro valore di luminosità e così via. L'istogramma é composto da poche righe, corrispondenti alle gradazioni di grigio rappresentate, e dal resto delle colonne a zero perché nell'immagine non ci sono le luminosità corrispondenti.
Istogramma a righe equidistanti, per un'immagine artificiale di passi equidistanti dal nero al bianco |
Com'é l'istogramma di un'immagine che sfuma gradualmente dal nero al bianco? Il programma trova lo stesso numero di pixel per ognuna delle possibili luminosità, dal nero al bianco. L'istogramma é "pieno" e piatto, ed indica una distribuzione uniforma delle luminosità.
Istogramma piatto, per un'immagine artificiale di toni continui dal nero al bianco |
Da questi due ultimi esempio possiamo già imparare una cosa importante: le immagini con variazioni graduali e continue della luminosità hanno istogrammi "continui", magari con picchi e valli ma sempre con la sommità delimitata da una linea curva continua. Le immagini con variazioni brusche della luminosità (come il primo esempio) invece hanno istogrammi composti da righe e buchi, indice di discontinuità nelle gradazioni. Quest'ultimo caso potrebbe essere quello di immagini a 8 bit pesantemente elaborate: la causa sono le successive e pesanti elaborazioni (curve, livelli, saturazioni, filtri vari, ...), l'effetto é che certe zone dell'immagine hanno perso le variazioni continue di tonalità e si sono "posterizzate".
Com'é l'istogramma di un'immagine molto chiara? Questo tipo di immagini viene anche indicato col termine inglese "high key". Il programma trova tutti i pixel con valori alti della luminosità, quindi l'istogramma ha le prime colonne (quelle corrispondenti ai bassi valori di luminosità dal nero ai grigi intermedi) quasi completamente vuote, mentre le colonne a sinistra (dai grigi intermedi) verso il bianco si alzano, perché ci sono molti pixel con luminosità elevata. Il caso estremo é quello di un'immagine completamente bianca: tutte i pixel hanno aumentato al massimo le rispettive luminosità, spostando tutti i valori nell'ultima colonna: la riga vista in precedenza.
Immagine high-key, con istogramma spostato verso destra |
Com'é l'istogramma di un'immagine molto scura? Questo tipo di immagini viene anche indicato col termine inglese "low key". E' il caso opposto al precedente: colonne di sinistra piene, colonne di destra vuote. Anche qui si può arrivare al caso estremo di immagine completamente nera, con istogramma composto dalla sola riga a sinistra.
Immagine low-key, con istogramma spostato verso sinistra |
Gli ultimi due esempi del paragrafo precedente sono molto importanti, perché spiegano come capire dall'istogramma che stiamo sovraesponendo fino a bruciare i bianchi e/o i neri. Quello che succede infatti quando sovraesponiamo al di là dei limiti della fotocamera, é che i pixel raggiungono il limite massimo di luminosità (che nei nostri esempi era 255) e non possono superarlo, quindi rimangono incollati a questo valore massimo, creando una riga sull'ultimissima colonna! Più sovraesponiamo, più aumenta il numero di pixel a luminosità massima e più aumenta l'altezza dell'ultima colonna, tanto che il programma di fotoritocco (o il firmware della fotocamera digitale, se stiamo osservando l'istogramma sul campo) é costretto a rimpicciolire il resto dell'istogramma. Nell'immagine, questo corrisponde al fatto che le zone più chiare perdono qualsiasi dettaglio e gradazione e diventano completamente bianche, di un bianco che più bianco non si può :-))).
Clipping delle luci (highlights) a causa di una forte sovraesposizione, evidenziato dall'istogramma che sfora a destra |
Per inciso, vorrei farvi notare che per avere un istogramma "leggibile" sia nel clipping sia nel "panettone" relativo alla rimanente parte dell'immagine, ho dovuto attivare la scala logaritmica (pulsantino in alto a destra). Ho notato che Photoshop non richiede questo e presenta subito un istogramma comprensibile, probabilmente effettua una riduzione dei picchi troppo alti.
Ovviamente succede lo stesso per la sottoesposizione: alcune zone dell'immagine si scuriscono a tal punto di diventare completamente nere (che più nere non si può...), quindi perdendo tutti i dettagli e le gradazioni: nell'istogramma si crea una riga nella primissima colonna a sinistra.
Clipping delle ombre (shadows) a causa di una forte sottoesposizione, evidenziato dall'istogramma che sfora a sinistra |
Questo fenomeno in elettronica si indica con il termine "clipping", e ha analogie con l'omologo nell'alta fedeltà audio, quando alzando il volume tentiamo di superare i limiti dell'amplificatore, ma questo non può erogare più del su massimo e "tosa" le onde del segnale in uscita: si ha una pesante distorsione.
Gli esempi di clipping del paragrafo precedente sono molto estremi, corrispondenti a errori grossolani di esposizione o di fotoritocco: si tratta infatti di clipping verso il nero perfetto o verso il bianco perfetto. Può succedere che l'istogramma della luminosità fornito dalla fotocamera digitale non indichi nessun clipping, mentre un'analisi attenta dei tre canali RGB in un programma di fotoritocco spietatamente ve lo sbatta in faccia. Questo succede perché nell'istogramma standard delle fotocamere digitali (quando non sono così evolute da includere i grafici di tutti e tre i canali separati) la luminosità è appunto la media pesata dei valori RGB di ogni pixel. In particolare, è composta dal valore del verde al 59%, dal valore del rosso al 30% e dal valore del blu all'11%, per evidenziare come l'occhio umano sia molto più sensibile al colore verde (non a caso molto diffuso in natura) e meno ai colori rosso e blu. In realtà si legge in quest'articolo che tale combinazione sarebbe storicamente legata allo spazio colore televisivo (!) NTSC, quindi non vrebbe molto senso nel nostro mondo fotografico, però ormai è consuetudine e quindi ce la teniamo...
Comunque sia, grazie a questi pesi differenti che privilegiano il verde a scapito degli altri dure colori primari, un clipping del canale rosso (oppure ancor peggio del canale blu) potrebbe essere non evidenziato dall'istogramma della luminosità!
Se ad esempio fotografiamo una bella bacca rossa, l'istogramma della luminosità potrebbe sembrare ok, mentre se osserviamo l'istogramma RGB o del singolo canale rosso osserviamo alcune aree con clipping!
Immagine correttamente esposta... o no? |
Istogramma della luminosità (Photoshop): sembra tutto ok, anzi, c'è spazio per aumentare il contrasto con i levels! |
Istogramma RGB: clipping sul canale R, evidenziato dalla riga verticale all'estrema sinistra! |
L'istogramma RGB in questo caso ci dà le informazioni più precise, ed è quello da utilizzare per valutare la presenza di clipping. GIMP ha un istogramma della luminosità che in qualche modo gestisce il clipping anche di un solo canale. Non so in che modo lo faccia, ma sembra funzionare (magari è un bug!). Tant'è vero che la finestra "levels" (dove bisogna tener d'occhio il clipping) di Photoshop visualizza l'istogramma RGB, quella di GIMP l'istogramma della luminosità... truccato!
Istogramnma della luminosità di GIMP per la stessa immagine della bacca rossa: il clipping viene evidenziato! |
Facciamo ora una semplice prova per verificare la somma pesata dell'istogramma della luminosità: creiamo tre immagini con sfumature dal nero ai tre colori fondamentali, e osserviamone l'istogramma della luminosità.
Rosso (R), 30% |
||
Verde (G), 59% |
||
Blu (B), 11% |
Osserviamo come l'istogramma della luminosità pesata si estenda dallo 0 (nero) fino a tre valori intermedi, diversi per ogni canale. Se misuriamo, ritroviamo proprio i coefficienti di prima: 59% per il verde, 30% per il rosso e 11% per il blu. Notiamo inoltre che nessuno dei tre istogrammi da' segno di clipping, anche se le immagini sfumate contengono nella loro parte sinistra i toni puri (valori 255) e quindi un teorico clipping del canale!
L'istogramma della luminosità fornisce altre informazioni all'occhio attento, tra cui una valutazione del contrasto dell'immagine. Se definiamo spazio tonale l'area di grafico in cui si concentra gran parte dei toni dell'immagine (in pratica, la larghezza del "panettone"), allora si intende per contrasto la "larghezza" dello spazio tonale. In pratica un'immagine si dice ben contrastata quando occupa tutti i toni dai più chiari ai più scuri. Ovviamente dipende dall'immagine: la foto di un muro bianco (pochi toni, panettone molto stretto) non può essere contrastata come la foto di un bosco autunnale (molti toni diversi, istogramma ampio).
Immagine meno contrastata, con un "panettone" più stretto |
Immagine più contrastata, con un "panettone" più largo |
Può succedere di avere ritoccato troppo pesantemente una foto, ad esempio cercando di schiarire eccessivamente un'ombra che già in partenza la fotocamera ha sottoesposto. Il risultato notoriamente è pessimo, a ricordarci che il fotoritocco non fa miracoli. Risultati simili si hanno anche quando si esagera con livelli, curve, saturazione e quant'altro, sia a causa di una elaborazione eccessiva sia a causa dei possibili errori di calcolo degli algoritmi del programma di fotoritocco: il computer ragiona con numeri di dimensione finita (nei nostri casi 8bit o 16bit), quindi alcune operazioni matematiche si portano dietro intrinsecamente arrotondamenti e troncamenti vari, che potrebbero essere amplificati da successive elaborazioni.
Il risultato finale potrebbe essere un'immagine rovinata da fasce di colore omogeneo (il fenomeno di posterizzazione) molto fastidiose al posto di gradevoli tonalità, oppure l'innalzamento di disturbi tipo "pixel bene in evidenza", come a sottolineare l'origine digitale della foto. L'istogramma evidenzia questi difetti mediante picchi appuntiti o seghettature o buchi.
Attenzione: non è detto che un istogramma poco piacevole sia indice di una foto molto difettosa. Solo bisogna aprire gli occhi ed analizzare l'immagine per bene, i problemi potrebbero ininfluenti o addirittura non essere visibili.
Presenza di picchi appuntiti |
||
Presenza di buchi (posterizzazione) |
Abbiamo già detto che ogni operazione eseguita sull'immagine (livelli, curve, saturazione, ...) ha degli effetti sull'istogramma. Una delle operazioni che possono portare al clipping o al contrario ad un contrasto non ottimale è la conversione da uno spazio di lavoro ad un altro con gamut di ampiezza diversa (per maggiori informazioni sul color management, magari leggete l'articolo La gestione del colore). Segnalo questo perché può capitare di eseguire un fotoritocco curato in ogni dettaglio in uno spazio di lavoro con gamut molto ampio come il ProPhotoRGB, quindi convertire in sRGB (di gamut più limitato) per portare l'immagine sul web e trovarsi con uno o più canali clippati. Questo problema può verificarsi sia in Photoshop (o in qualsiasi altro programma di fotoritocco che abbia una gestione del colore), sia nel suo modulo Camera Raw, quando scegliamo lo spazio di lavoro dell'immagine finale. Provate a scegliere spazi colore diversi, potreste accorgervi di dover modificare compensazione dell'esposizione perché alcuni canali clippano!
Nell'esempio qui sotto, si vede che il canale rosso (R) era ok nello spazio ProPhotoRGB, ed è inesorabilmente clippato nella conversione a sRGB.
Immagine originale |
Istogramma dell'immagine nello spazio ProPhotoRGB |
Istogramma dell'immagine nello spazio sRGB |
Altra osservazione: l'istogramma dell'immagine dipende in lieve misura anche dal bilanciamento del bianco, visto che questo ovviamente tocca le tonalità di colore dell'immagine e quindi i canali RGB. Quindi, se abbiamo scattato le foto in formato RAW e le apriamo con il convertitore (esempio: Adobe Camera Raw, per citare il più famoso), facciamo attenzione prima a correggere il bilanciamento del bianco, poi a valutare un eventuale clipping nell'istogramma.
In italiano su ZMPHOTO trovate "CAPIRE & UTILIZZARE GLI ISTOGRAMMI".
Vi segnalo Histograms - Part 1 e Histograms - Luminance and Color (entrambi in inglese) dall'ottimo Cambridge in Colour Photography, con approfondimenti interessanti e molto ben documentati. Da leggere anche "Posterization".
Altri articoli si trovano sul sito di Steve Hoffman, tra cui "A Practical Guide to Interpreting RGB Histograms", "Histogram and RGB Tonal Range Explanation" e "Interpreting Your Digital Camera's Thumbnail Image and Histogram".
Sul pregevole sito Digital Outback Photo dedicato alla fotografia digitale con fotocamere reflex trovate gli articoli "Workflow Technique #041 - Watch your Histogram" e "Workflow Techniques #098 - Using Histograms during the Editing Process".
In Zuber Photographics (un sito molto interessante per apprendere i fondamentali del fotoritocco) c'è l'articolo "Histogram" dedicato soprattutto agli istogrammi in Photoshop, ma è ben spiegato. Nelle pagine successive c'è addirittura un semplice test per verificare se si è capito bene l'argomento.
"The histogram palette" da The Digital Dog descrive in dettaglio l'istogramma di Photoshop.
Dall'ottimo sito Ron Bigelow Photography leggetevi "Histogram - part I" e "Histogram - part I". E anche tutti gli altri!
Da 3megapixel leggetevi "Tecnica fotografica: Istogrammi".
Guillermo Luijk ha scritto un programm dedicato solo all'istogramma: Histogrammar. E' carino anche se un po' acerbo, simpatico perchè evidenzia bene il legame tra la distribuzione lineare della luminosità dell'immagine nei confronti della distribuzione logaritmica tipica della visione umana.