Un problema che si incontra frequentemente facendo fotografia
digitale è rappresentato dall' insufficente gamma dinamica del sensore. La gamma
dinmica può essere descritta come lo spettro di intensità luminose che possono venire
registrate in maniera corretta. Verso l' alto essa è delimitata in maniera alquanto
netta dalla saturazione dei fotodiodi, ovvero dal momento in cui i fotodiodi sono
"pieni" e smettono di rilevare ulteriore luce incidente. A livello della foto tale
fenomeno corrisponde a zone irrimediabilmente bianche e prive di ogni sfumatura
e informazione. Verso il basso la gamma dinamica è invece delimitata dal livello
di luce in corrispondenza del quale il segnale si perde nel rumore di fondo.
Questo significa che non è possibile ottenere in generale un' estensione della gamma
dinamica apparente della foto agendo sulla curva di esposizione, in quanto le zone
scure non possono più di tanto venire schiarite, senza che il rumore, in tali zone,
raggiunga livelli inaccettabili.
Una soluzione reale è rappresentata dalla fotografia HDR (High Dynamic Range photography).
Essa si basa sulla modellizazione delle proprietà fisiche del sensore e richiede
la presenza di almeno tre foto della stessa scena esposte in maniera differente.
Per quanto si tratti di un approccio molto completo al problema, siamo dell' idea
che, almeno in alcuni casi più semplici, sia possibile ottenere risultati soddisfacenti
anche attraverso un approccio molto più semplice, che prescinde da ogni modellizzazione
del sensore e che prevede semplicemente la fusione di due oppure tre foto jpg, esposte
in maniera differente, secondo una regola adatta, in modo da ottenere un' immagine
finale che riproduce la scena reale meglio di qualsiasi semplice foto singola. In effetti
questa tecnica ha un nome suo proprio: "
exposure fusion" ed è
questa la soluzione che propone la pagina
HDR on line di questo sito. Il metodo proposto prevede lo scatto due oppure
tre foto (ovviamente con la stessa inquadratura, per quanto adesso sia possibile
correggere piccoli shift, nel caso di due foto, sia verticali
che orizzontali) esposte in maniera differente. Nel caso di due foto, una
foto sottoesposta (foto per le alte luci) e una sovraeposta (foto per le basse luci).
Nel caso di tre foto, una foto sovraesposta, una foto esposta correttamente e una
foto sottoesposta. Le foto vanno poi fuse opportunamente,
in modo che nelle zone più scure prevalga l'informazione proveniente dalla foto
più esposta, in quelle più chiare l'informazione proveniente dalla foto meno esposta.
Rispetto ad altri approcci al problema, che prevedono la fusione di cinque, o anche
più foto, l' approccio qui proposto risulta particolarmente semplice. Esso riesce
però a dare risultati soddisfacenti tutte le volte che la gamma dinamica osservata
non è eccessivamente larga, e può venire "coperta" completamente da due/tre esposizioni
diverse. In altre parole, tutte le zone della scena devono risultare correttamente
esposte in una delle foto. In casi di scene con differenze particolarmente grandi
di luminosità, ad esempio in caso di tramonti con il cielo ancora non vicinissimo
all' orizzonte, questo può non essere il caso e lo scatto di un numero superiore
di foto potrebbe risultare necessario.
Si consideri un caso di esempio. La foto ritrae una scena in cui le piante ai lati
risultano più o meno in controluce. Esponendo correttamente rispetto alla parte
principale della foto le frasche degli alberi appaiono quasi nere, per quanto nella
realtà apparissero chiaramente verdi, con tutti i particolari distinguibili.
Modificando la curva è possibile schiarire gli alberi.
Guardando nel dettaglio si nota, però, che nel zone rese più chiare il rumore è
molto più forte del dovuto e i dattagli non sono ben riconoscibili.
Utilizzando invece una seconda foto, scattata con un tempo più lungo, in modo da
esporre correttamente gli alberi,
e fondendola con la prima, secondo un preciso algoritmo descritto più avanti, è
possibile ottenere un risultato molto migliore
in cui gli alberi sono sia esposti correttamente, sia poco rumorosi, con particolari
ben riconoscibili.
Volendo usare questa pagina per estendere la gamma dinamica della foto, la prassi
da seguire, nel caso due foto (approccio necessario quando si scatta a mano libera
ed è necessario allineare le foto) è dunque la seguente:
- Scattare due/tre foto. Nel caso di due foto, una dovrebbe essere leggermente sottoesposta,
una leggermente sovraesposta. Nel caso di tre foto, una dovrebbe essere leggermente sottoesposta,
una corrispondere all'esposizione ottimale e una leggermente sovraesposta
- Caricare le le foto. Ovviamente le foto devono avere dimensioni identiche. Nel caso sia necessario correggere
manualmente piccole rotazioni, tenere ferma la foto con l'esposione più lunga e ruotare le altre quanto serve,
avendo l'accortezza, quando le si salva ruotate, di non attivare il cropping automatico.
- Scegliere il gradiente migliore testando ogni volta il risultato cliccando sul tasto
"Anteprima". Per un confronto dettagliato fra i vari tipi di gradiente, vedere la pagina
Confronto fra i gradienti
per la creazione di immagini HDR on line
- Una volta raggiunto un risultato soddisfacente si può ottenere il mixaggio delle
foto a grandezza originale cliccando su "Effettua Mixaggio!". Nella parte inferiore
della pagina comparirà la foto finale (lato lungo max 1200px). Cliccando su di essa
verrà aperta l' immagine finale a dimensioni originali.
I paramentri da ottimizzare sono la forma del gradiente e, per il gradiente lineare,
le luminosità minima e massima, ovvero i valore della luminosità al
di sotto della quale va utilizzata unicamente l'informazione racchiusa nel pixel
della foto più luminosa e quella al di sopra della quale utilizzare solamente
l'informazione racchiusa nella foto più buia. La luminosità di un pixel
è stata definita come la radice quadrata normalizzata a 1 della somma dei quadrati
dei valori dei tre componenti RGB. Perciò, se un pixel ha valori RGB pari a 100,
150 e 200 rispettivamente, la luminosità sarà pari a 0,61. La luminostà del nero
è pari a 0, quella del bianco è pari a 1.
Il gradiente può avere tre forme diverse:
- Gradiente lineare
- Gradiente sferico (ok, in realtà è un quarto di cerchio, se si normalizza la luminosità
massima a 1, però sferico suonava bene!)
- Gradiente adattivo: punto per punto il sistema decide a quale gradiente fare riferimento
Nel primo caso la percentuale di informazione proveniente dalla foto per le alte
luci aumenta linearmente al diminuire della luminosità del pixel, nel secondo caso,
invece, l'informazione dell'immagine per le Basse Luci viene utilizzata quasi solo
per le luminosità più basse. Le figure illustrano i vari casi e i parametri
su cui si può agire. La prima figura si riferisce al caso di due foto, le altre due al
caso di tre foto.
Per verificare alla luce di un esempio, le differenze fra i possibili risultati
vedere anche la pagina
Confronto gradienti per immagini HDR on line.
Nel caso di scene non troppo contrastate, e soprattutto in quelle in cui sono presenti
zone con pattern non troppo contrastati (prati, muri scrostati), il gradiente sferico,
è più indicato. Nel caso di scene con zone omogenee illuminate in maniera molto
differente il grandiente lineare con L1 = 0 e L2 = 1 può essere più indicato.
Il gradiente adattivo è spesso il migliore, ma è anche quello
che richiede un'elaborazione più lunga.
Talvolta conviene porre la larghezza del gradiente maggiore del valore
della luminosità minima. Questo comporta che in nessuna parte la foto finale presenterà
informazioni provenienti unicamente dalla foto per le basse luci.
Nel caso di immagini con zone molto chiare e a basso contrasto può convenire utilizzare
il gradiente sferico, in quanto preserva meglio i dettagli in tali zone, dettagli
che altrimenti potrebbero andare persi.
Va sottolineato che anche nel caso di tre foto, varia da caso a caso quale è il gradiente
più adatto. E varia anche da caso a caso l'entità della differenza fra le due foto
finali. In alcuni casi il risultato piò essere quasi identico, in altro possono
essere presenti differenze significative.
Una volta effettuata la fusione delle due foto è conveniente utilizzare uno dei
comuni editor di foto e immagini che si trovano on line (FastStone Image Viewer
è perfettamente adatto) per aumentare il contrasto locale ed eventualmente schiarire
un poco l' immagine. Diversamente essa apparirà in generale un po' smorta e leggermente
più scura del dovuto.
Ecco alcuni esempi, per ora solo per il caso di due foto, ma con tre il concetto
non cambia molto. Cliccando sulle foto è possibile viasualizzare una versione a
media risoluzione:
Foto per le alte Luci
|
Foto per le basse Luci
|
Foto finale
|
| | |
| | |
| | |
Correzione dello shift e della rotazione
La pagine permette adesso di correggere spostamenti verticali e orizzontali
fra le due foto. Le rotazioni devono venire invece corrette preventivamente utilizzando
un software qualsiasi di elaborazione immagine (ottimo in questo caso
Irfan View, che permette di correggere la rotazione
con una precisione fino a un decimo di grado).
E' adesso presente anche un
primo embrionale
strumento aiutare a trovare la giusta rotazione. Cliccando sulla prima foto
si può definire un'area (rettangono con bordi rossi) entro la quale individuare
i punti in cui il gradiente è maggiore e sulla base di essi definire una retta di regressione lineare.
In presenza di bordi dritti (come può essere nel caso di edifici) la differenza di pendenza nelle
tre foto indicherà di quanto sono ruotate le foto.
Per maggiori dettagli vedere la pagina separata
Creazione di foto HDR on line: istruzioni all'analisi dell'inclinazione!
Il processo può venire ottimizzato variando la soglia che definisce quali gradienti (valore assoluto minimo del
vettore e minima collinearità rispetto al vettore gradiente medio) verranno conteggiati. Il miglior risultato si ottiene quando i punti conteggiati vengono
a formare una banda con al centro la retta di regressione calcolata (punti bianchi e retta rossa nei tre crop che vengono
presentati alla fine del calcolo).
Lo strumento è destinato a venire migliorato in futuro!
Note importanti: La o le immagini da ruotare sono sempre quella o quelle
meno illuminate! Quando si effettua la rotazione non lasciare che le immagini vengano
ridimesionate in automatico, ma utilizzare le immagini ruotate, aumentate di dimensioni
rispetto all'originale e che comprendano ancora i triangoli vuoti sui quattro lati.
Infatti, quando esse vengono caricate, vengono automaticamente ritagliate alle dimensioni
dell'immagine più luminosa, immagine che fa da riferimento.
Il sistema di correzione dello shift prevede tre possibili opzioni:
- Griglia
In tale case lo shift migliore viene valutato su una griglia di nove rettangoli
ditribuiti uniformemente sull'immagine. E' il primo sistema che è stato implementato,
ma si è rivelato quello meno affidabile.
- Rettangolo
In tal caso si può decidere il rettangolo su cui valutare lo shift. Per farlo cliccare
una volta sull'immagine delle alte luci per aprire il rettangolo e cliccare due
volte per richiuderlo. Si è verificato che il sistema più efficace è creare un rettangolo
molto grande, quasi come la foto, dato che in tal modo i possibili errori vengono
minimizzati.
Bisogna ricordare di non includere nel rettangolo soggetti che si sono spostati
dalle due foto (per esempio persone) a meno che non siano molto piccoli, perchè
ciò altererebbe i risultati. Bisogna poi sempre anche lasciare abbastanza margini
ai lati, affinché, nello spostamento relativo, il rettangolo non vada a finire fuori
da nessuna delle due foto. Quando questo accade si ottiene un errore. Tornare alla
pagina precedente col browser e riprovare con un rettangolo più piccolo.
- Quadrato per ottimizzare manualmente lo shift
In questo caso una zona quadrata delle immagini di preview viene visualizzata, a
dimensioni originali, in un'apposito riquadro sotto le stesse. I due quadrati, dell'immagine
per le alte luci e dell'immagine per le basse luci, vengono visualizzati sovrapposti
e in trasparenza. Cliccando sulle frecce è poi possibile fare in modo che essi arrivini
a sovrapporsi perfettamente. I valori di shift trovati possono venire applicati
sia per il preview dell'immagine completa, sia per mixare direttamente le immagini
a dimensioni originali (tramite il pulsante Applica!).
L'ottimizzazione manuale può essere necessaria in casi in cui sono presenti molti
elementi sfumati o immagini in controluce, dove alcune parti diventano invisibili
nell'immagine più esposta.
Nota importante: Se il rettangolo che viene visualizata non è corrispondente
a quello che dovrebbe, specie con Explorer, si cancelli con la cache del browser!
L'opzione "Valori inseriti manualmente come partenza!" corrisponde a far partire
l'ottimizzazione automatica (le prime due opzioni) partendo da valori inseriti manualmente,
in modo da indirizzare opportunamente il processo di ottimizzazione. E' un'opzione
utile in caso di immagini in cui gli shift sono molto grandi (ad esempio foto ottenute
a mano libera con focali lunghe).