mercoledì 3 giugno 2009

HDR.. questo sconosciuto.

di Andrea.

Vi sarà capitato più di una volta di sentire parlare di fotografie HDR o semplicemente di imbattervi in certe foto molto contrastate e vagamente surreali etichettate come HDR. (per alcuni esempi guardate QUI)
Sono sicuro di sì, perchè ultimamente c'è molto rumore ed interesse su quest'argomento un po' in ogni campo, dalla fotografia alla computer grafica, dall'industria cinematografica ai videogames etc..
In questo post cercherò di spiegare in parole semplici di cosa si tratti e come possiamo con strumenti freeware cimentarci nella produzione di nostre immagini HDR


DEFINIZIONE:

Per HDRI (High Dynamic Range Imaging = Immagini ad ampio spazio dinamico (della luminosità) ) o più semplicemente HDR, si intendono immagini risultato di elaborazioni e calcoli matematici atti ad espandere il campo di informazioni sulla illuminazione (luminanza) dei singoli pixel per poter ottenere maggiori dettagli possibili sia dalle zone fortemente in ombra che da quelle molto illuminate.
Cosa che sarebbe impossibile ottenere con un singolo scatto (esposizione) di una qualsiasi macchina fotografica digitale, o di una qualunque altra apparecchiatura di acquisizione, in presenza di scene con un rapporto fra elementi al buio ed elementi fortemente illuminati (ampiezza di luminosità = dynamic range, appunto) troppo elevato.

Per esempio una foto di un interno di casa ma con una finestra che da sull'esterno illuminato in pieno dal sole.

Tipicamente ognuno di voi provando a fare una foto del genere si sarà trovato ad ottenere questi due risultati:

o si vedono perfettamente illuminati gli oggetti in interno ma completamente slavati e bianchi (sovraesposti) i dettagli dell'esterno della finestra

oppure vedremo perfettamente esposti i dettagli dell'esterno ma immersi nel buio più cupo e privi di dettaglio (sottoesposti) gli oggetti in interno.
Eppure ad "occhio nudo" riusciamo a vedere perfettamente sia gli oggetti in interno che quelli in esterno!

Come mai la mia macchina fotografica non ci riesce? Devo comprarmi un modello più professionale da 10.000 euro? o da 30.000 euro?
Beh la risposta è no, risparmiate i soldi perche' le motivazioni sono, al momento, incolmabili tecnicamente.

E questo perche?

Perchè il nostro occhio possiede una meraviglia che si chiama IRIDE che restringendosi ed allargandosi in millesimi di secondo ci permette di percepire valori di illuminazione della scena con un DR (dynamic range=ampiezza dinamica della luminosità) con rapporto fra buio e luce dell'ordine normalmente di 100.000:1 mentre un qualunque CCD o CMOS (sensore per la cattura digitale di immagini) tipicamente registra a 10bit valori di DR dell'ordine di 1.000:1 (i più professionali e non accessibili a noi comuni mortali 5.000:1, un valore in ogni caso sempre ridicolo se paragonato al DR dell'occhio umano)

Cerco di spiegare meglio questo concetto facendovi un grafico:
la linea blu mostra le ENORMI possibilità del nostro occhio grazie all'eccellente lavoro dell'IRIDE: l'ampiezza della luminosità che possiamo percepire va dalla più fioca delle stelle, alla luce del sole diretta, un rapporto tra buio e luce dell'ordine di 100.000.000.000.000:1 (da 10-6 a 108 = 1014 un 1 seguito da 14 zeri).

Questo però chiaramente NON in contemporanea.

Cioè: riusciamo a percepire in simultanea grazie agli aggiustamenti istantanei dell'Iride solo un sottoinsieme di questa ampiezza totale che è rappresentato dalla lunghezza della linea verde; un rapporto di 100.000:1 (105 un 1 seguito da 5 zeri) come citato poco più sopra.
Il Dynamic Range funziona quindi un po' come una coperta corta; nei due esempi che ho riportato sul grafico si vede quello che succede per esempio in una location in esterni in cui l'iride si restringe e perdiamo "sensibilità" sugli elementi più scuri, e quello che succede in interni in cui l'iride si allarga e perdiamo "sensibilità" sugli elementi più luminosi.

Ma se la "coperta" dell'occhio umano è corta, ma pur sempre dell'ordine di 100.000:1, il DR di una comune macchina fotografica digitale (la linea viola) lo è ancora di più: 1.000:1 e quindi anche se la "spostiamo" rimane sempre scoperto qualcosa.
Ecco perchè in presenza di forti differenze di luminosità l'occhio umano spesso ce la fa a "vedere" una bella immagine ma la macchina fotografica digitale invece no, deve "spostare" la coperta più piccola ed accontentarsi del suo range più limitato.

Le tecniche di HDR partono proprio da questa constatazione e da una semplice idea: ingrandiamo la coperta della macchina fotografica digitale spostandola più a destra e più a sinistra e poi riportiamo tutti i dati di luminosità raccolti in una unica immagine con qualche algoritmo matematico.
Questo si ottiene facendo più foto della stessa veduta senza cambiare minimamente inquadratura e diaframma ma con tempi di esposizione differenti; esponiamo corretamente le zone in ombra (e di conseguenza avremo problemi sulle zone illuminate) poi esponiamo correttamente le zone in luce (con conseguente perdita di dettagli nelle ombre) poi con un software trasferiamo tutte le informazioni di luminanza raccolte su un unica immagine ingrandendone di fatto l'ampiezza dinamica (High Dynamic Range appunto).

Queste immagini risultato dell'elaborazione possiedono un così grande numero di informazioni di luminanza di ogni singolo pixel che è necessario utilizzare numeri a virgola mobile a 32 BIT e di conseguenza salvare i file con formati appositi a 32BIT: i più comuni sono FloatingPoint TIFF (.tif), Radiance RGBE (.hdr), OpenExr (.exr).

A questo punto abbiamo capito i limiti in "acquisizione" di una scena con grande DR da parte di un CCD/CMOS di una macchina fotografica digitale e come esistano dei software che risolvono il problema allargando il DR ad un più grande HDR ma adesso......... come facciamo a vederle? O meglio, come ne gestiamo l' "OUTPUT" ?

E sì! Perchè così come i CCD/CMOS delle macchine fotografiche digitali hanno un DR limitato a causa della loro cattura a 10bit per pixel, ogni strumento di output comunemente a nostra disposizione (monitor a tubo catodico, monitor LCD o stampante) non è in grado di farci vedere una immagine con 32bit di luminanza per ogni pixel perchè "funzionano" a 8bit di luminanza per ogni pixel, ovvero ogni singolo pixel assume un valore che varia dallo 0 (buio pesto) a 256 (massima luce). E questo ci riporta al grafico e in particolare all'ultima linea, quella rossa.

La coperta dei monitor è quindi ancora più corta di quella delle macchine fotografiche e quella delle stampanti laser e inkjet lo sono ancora di più.

Risultato: non potremo MAI vedere/stampare correttamente immagini a 32bit sui nostri comuni monitor/stampanti ma solo una loro versione "ricompressa" a 8bit cercando di trarre le maggiori informazioni possibili dal vero file HDR a 32bit: queste processo si chiama comunemente TONE MAPPING e tutte le immagini che vediamo in rete catalogate come HDR sono in realtà immagini a 8bit (solitamente JPG) risultato del TONE MAPPING di veri file HDR a 32bit (.hdr .exr .tif 32).

In poche parole prima ci sbattiamo per ottenere una immagine HDR a 32 bit poi però per vederla dobbiamo perdere nuovamente dell'informazione mappandola ad 8Bit; questa è la cruda verità, l'unico modo che abbiamo per evitare il Tone Mapping e vedere direttamente a monitor una immagine HDR è..... comprare un monitor HDR, cioè un monitor costruito apposta per funzionare a 32bit. Attualmente che mi risulti solo l'americana BrightSide produce un monitor del genere: si chiama DR37-P, ha un DR di 200.000:1 (maggiore dell'occhio umano) e costa 49.000 dollari....... per chi se lo può permettere...io mi accontento del Tone Mapping :-)

(aggiungo una piccola nota sulle macchine fotografiche digitali sperando di non crearvi confusione: anche tutte le macchine fotografiche digitali in realtà fanno una cosa simile al TONE MAPPING direttamente al loro interno senza che noi ce ne accorgiamo: questo perchè come abbiamo detto i CCD/CMOS registrano le immagini a 10Bit ma il file che otteniamo è un JPG (8Bit) quindi il software della macchina applica una "curva di riduzione" delle informazioni da 10 a 8bit che è preimpostata in fabbrica sulla base del know how del fabbricante e spesso è un valore determinante per la qualità dei risultati della macchina fotografica stessa. Alcuni modelli (soprattutto reflex) permettono di registrare il file non in JPG ma in formato originale a 10bit e questi file vengono chiamati RAW; con appositi programmi possiamo estrarre le maggiori informazioni contenute nel file RAW per generare un file 8bit visualizzabile e stampabile sulle nostre periferiche.)



SOFTWARE:

Ci sono molti software per la generazione di immagini HDR:

- alcuni sono a pagamento, molto semplici da utilizzare, con interfacce completamente grafiche e danno risultati ottimi.....(il più famoso è Photomatix Pro ma anche tutti i PhotoShop a partire dalla CS2 in su hanno integrate le funzionalità HDR)

- pochi altri sono freeware, un po' meno lineari da utilizzare, generalmente risultato di qualche ricercatore universitario e normalmente necessitano di molti tentativi prima di ottenere risultati soddisfacenti.
Io chiaramente mi concentrerò su 3 di questi ultimi pubblicando un breve tutorial su: Photomatix BASIC (versione FREE del fratello a pagamento), QTPFSGUI e PICTURENAUT


TUTORIAL:

Prima di tutto iniziamo con un punto in comune a tutti i software HDR: dobbiamo procurarci/fare le foto adatte.

Quello che ci occorre e':
- una scena da fotografare con grande escursione fra buio e luce e soggetto IMMOBILE (questo perchè dobbiamo fare più scatti)
- un cavalletto bello stabile,
- una macchina fotografica digitale che ci permetta di variare il tempo di esposizione tenendo fissa l'apertura del diaframma (bracketing)
- possibilmente (ma non obbligatoriamente) uno scatto a filo (per ridurre al minimo le vibrazioni sulla macchina)

(Esiste anche la possibilità di elaborare una immagine HDR da una singola esposizione RAW, utile per esempio quando il soggetto è in movimento, ma in questi tutorial non mi occuperò di questa tecnica; è comunque facile immaginare che il software dalle informazioni del singolo file RAW a 10bit si ricava diversi file a 8bit con vari valori di esposizione e da questi genera il file HDR)

Prendiamo per esempio la nostra scena di interno con finestra su paesaggio assolato: regoliamo l'inquadratura e poi scattiamo con il tempo di esposizione che la macchina ritiene il più adatto.

Dopodichè facciamo per esempio 3 scatti più sottoesposti e 3 scatti più sovraesposti. Questo lo otteniamo diminuendo od incrementando il tempo di esposizione di "una soglia di valore".

Facciamo l'esempio pratico:
Questa per la mia macchina è l'esposizione ideale: tempo 1/160s
Facciamo tre scatti "sottoesposti"
Questo è uno scatto un gradino più veloce (1/250s) e quindi un po' più sottoesposto
Questo è uno scatto un altro gradino più veloce (1/320s)
E questo è uno scatto ancora più veloce (1/500s): l'ambiente è quasi completamente buio ma vediamo perfettamente fuori dalla finestra.
Allo stesso modo facciamo tre scatti "sovraesposti"
Questo è uno scatto un gradino più lento di 1/160s: 1/125s
Questo è uno scatto a 1/80s (gia non si distingue più nulla dalla finestra)
E per finire un altro gradino più lento: 1/60s (interno perfettamente illuminato ma finestra completamente sovraesposta)
A questo punto abbiamo i nostri 7 scatti con esposizioni distinte e siamo pronti a partire; in generale non servono sempre 7 scatti ma secondo la scena che si va a riprendere possono essere sufficienti 3 scatti (1 correttamente esposto, 1 sottoesposto e 1 sovraesposto), 5 scatti (1 correttamente esposto, 2 sottoesposti e 2 sovraesposti) oppure possono servirne 9 (1 correttamente esposto, 4 sottoesposti e 4 sovraesposti) o anche di più, è una cosa da capire sul campo con l'esperienza.

TUTORIAL PHOTOMATIX BASIC
- Scaricate il software da qui: PHOTOMATIX BASIC
- installatelo seguendo le istruzioni standard
- lanciate il programma
- rispondete CLOSE allo splashscreen
- Dal menu HDR scegliete Generate

- Schiacciate il pulsante BROWSE e scegliete gli scatti che avete effettuato (nel nostro esempio 7 foto) dopodichè premete OK
- Nella schermata sucessiva (opzioni di Merging) assicuratevi che NON sia spuntato "Align source image" e che sia spuntato "Take tone curve of color profile" e premete OK

- A questo punto abbiamo generato la nostra immagine HDR a 32bit SOLO CHE COME SPIEGATO PIU' SOPRA NON SI PUO' VISUALIZZARE CORRETTAMENTE PERCHE' IL MONITOR E' A 8BIT.

- Potete comunque salvarla a 32Bit se pensate di utilizzarla in altri software di Tone Mapping o se pensate di comprarvi il monitor HDR da 50.000 dollari per visualizzarla correttamente.
I formati disponibili sono .hdr .exr e .tif
- A questo punto procedete al TONE MAPPING cioè all'estrazione delle informazioni dal file a 32bit e alla resampling a 8bit: dal menu HDR scegliete TONE MAPPING

- muovete gli slider a vostro piacimento e una volta soddisfatti premete OK per generare effettivamente il file a 8bit
- Salvate il file risultante dal menu file/save as

- Ed ecco il risultato finale: zone in ombra e zone al sole esposte gradevolmente!

Nota:Questa versione FREE di Photomatix ha un unico metodo di Tone Mapping; la versione a pagamento ha moltissime opzioni in più.

TUTORIAL QTPFSGUI
- Scaricate il software da qui: QTPFSGUI
- installatelo seguendo le istruzioni standard
- scaricate anche il DLL package V5 e scompattatelo nella stessa cartella del programma
- lanciate il programma
- scegliete il pulsante NUOVO HDR

- schiacciate "Carica le immagini" e scegliete le immagini sorgente; assicuratevi che "Allinea Immagini Automaticamente" non sia selezionato e clickate "AVANTI"
- Scegliete AVANTI nella paginasucessiva (tool di editing) senza cambiare nessun parametro

- Per generare il file HDR sono previsti 6 profili (metodi) preimpostati: provateli tutti in base al tipo di foto; io per questo tutorial scelgo a caso il Profilo 1; premete TERMINA

- A questo punto viene generata l'immagine HDR a 32Bit che potete salvare schiacciando il pulsante "SALVA L'HDR COME"

- Quello che ci rimane da fare e' eseguire il TONE MAPPING schiacciando il pulsante "TONEMAPPA L'HDR"

- Dal menu PULLDOWN degli operatori sceglietene 1 (per esempio Mantiuk) e regolate gli slider a piacimento
- Dalla sezione Process scegliete le dimensioni del file risultato
- Dopodiche' clicckate "APPLICA"
- Salvate l'immagine a 8Bit con il pulsante "SALVA COME"
- Ed ecco il risultato


TUTORIAL PICTURENAUT
- Scaricate il software da qui: PICTURENAUT
- installatelo seguendo le istruzioni standard
- lanciate il programma
- Dal menu FILE scegliete GENERATE HDRI
- Scegliete le foto e assicuratevi che "EXPOSURE CORRECTION" sia spuntato; dopodichè clickate OK.

- L'immagine HDR a 32Bit viene generata e può essere salvata in formato .TIF e .EXR
- Per eseguire il ToneMapping andate nel menu "image" e scegliete "Tone-mapping" e uno dei due metodi: "Adaptive Logarithmic" e "Photoreceptor Phisyology"

-Scegliete "OUTPUT FORMAT" a 8Bit e giocate un po' con i "Gamma adjustment" ; io ho scelto "USER DEFINED" e ho avvicinato i puntatori bianco e nero dell'istogramma alla fine ed all'inizio dell'istogramma; dopodichè ho spinto OK
- Ed ecco il risultato finale salvato a 8bit con il pulsante "SALVA COME"

Concludendo:
Complimenti a chi ha resistito fino a qui
Spero di non essere stato troppo noioso
Comunque rimango a vostra disposizione per eventuali chiarimenti
ciao ciao

5 commenti:

Enri ha detto...

fantastico articolo Andrea!!me lo copio e stampo per averlo sempre sottomano, interessantissimo e spiegato benissimo!!!

dada ha detto...

io non ci ho capito molto, ma bravo per la passione che ci hai messo nello spiegare il tutto.
dada

*Katia* ha detto...

interessantissimo anche se ci ho capito poco, per la presenza di termini molto tecnici ..... ma lo rileggerò con calma perchè ne vale la pena ed io sono molto presa dall'argomento!
Grazie!

Carola ha detto...

Interessantissimo questo articolo! Bravo Andrea:)

bugigattola ha detto...

Eh ma ci vuole una laurea Angrea! ;-)
Scusa la schiettezza!!!
Complimenti per l'articolo e per il blog!
Un saluto bugigattoloso

Posta un commento