HDR
Le immagini HDR (High Dynamic Range)
L'HDR, acronimo di High Dynamic Range (Ampia Gamma Dinamica), è una tecnica utilizzata in grafica computerizzata e in fotografia per ottenere un'immagine in cui l'intervallo tra le aree più chiare e quelle più scure sia più ampio dei metodi usuali.
Tali tecniche si basano principalmente sull'idea di prendere scatti multipli dello stesso soggetto in modo da compensare, con le diverse esposizioni delle diverse immagini, la perdita di dettagli nelle zone sottoesposte o sovraesposte di ciascuna singola immagine. La successiva elaborazione della serie di immagini, consente di ottenere un'unica immagine con una corretta esposizione sia delle aree più scure che di quelle più chiare (da Wikipedia).
L'HDR imaging è una tecnica che svolge una funzione molto importante sia per la ripresa di singole tradizionali inquadrature che, a maggior ragione, nella realizzazione di panoramiche immersive. Nelle panoramiche a 360° è consuetudine trovarsi di fronte ad importanti problematiche di illuminazione e contrasto differenziale tra le varie zone della scena globale. Per diminuire tali eccessivi contrasti e rendere lo scenario ripreso più 'compatibile' con la naturale dinamica di adattamento dell'occhio umano si ricorre all'HDRi.
La maggior parte degli autori considera pressocchè indispensabile, o se non altro altamente consigliabile per la realizzazione di un efficace HDR, la ripresa di una sequenza di almeno 3-5 scatti, a diversi valori di EV (mediamente con scarto di 0.7-2EV). Per i miei panorami ho adottato sequenze di 3 scatti, un pò perchè la mia Nikon D80 limita il numero di scatti in 'bracketing' a questo valore, ed inoltre perchè il numero totale di scatti per la generazione del panorama HDR sarebbe diventato troppo elevato. Insomma, mi spaventava alquanto la quantità di lavoro di post-processing che sarebbe derivato dalla combinazione di HDR e stitching panoramico.
Per questo motivo ho cercato di realizzare una metodica di 'lavorazione' software per queste lunghe sequenze di scatti che in qualche modo automatizzasse il processo di rendering. Ho quindi individuato in Picturenaut un software freeware di rendering per l'HDR che forniva le basi per la scrittura di un programma di interfaccia (inizialmente un semplice script da riga di comando) in TclTk. La decisiva particolarità di Picturenaut (a differenza di molti altri software di HDRi) è quella di fornire i singoli motori di rendering (mkhdri.exe & pptmo.exe) stand-alone, facilmente implementabili in una Graphical User Interface che possa facilmente sfruttare le loro varie e molto potenti funzionalità. E soprattutto dando la possibilità di creare un loop di renderings successivi ed automatici che velocizzano il processo di realizzazione di un gran numero di HDRi correlati fra loro. Funzionalità che ho cercato di realizzare e raccogliere nel mio 'MKHDRI&PPTMO GUI and sequencer'.
....... MKHDRI-PPTMO GUI & sequencer.......
Potete scaricare il programma ed i file di supporto al fondo di questa pagina in formato zip. Decomprimete il contenuto in un folder del computer e lanciate l'eseguibile HDR-TM.exe. Potete a questo punto seguire i passi principali elencati qui di seguito per la realizzazione di sequenze HDR specificamente pensate per la produzione di foto panoramiche, come quelle che trovate nella mia pagina Panorama.
Operazioni preliminari per preparare l'elaborazione delle immagini con MKHDRI
- Specificare l'input folder (click sul campo blu relativo o selezionare File>Select input folder) nel quale risiedono i file immagini da elaborare, numerati in modo sequenziale ed ascendente.
- Specificare l'HDR output folder, dove verranno riversati i file immagine in HDR derivanti dall'elaborazione di MKHDRI (non deve essere lo stesso folder di input, normalmente viene proposto un sub-folder 'input_folder/HDR')
- Specificare il numero di immagini prodotte nella multi esposizione (bracketing) durante la ripresa (click sul valore in blu di 'Brkt shots' o nel sottomenu dedicato in Settings).
- Analogamente, specificare il tipo di immagine di input, il tipo di immagine HDR in output e il tipo di immagine finale in tone-mapping.
- Selezionare le opzioni che vogliamo applicare all'elaborazione di MKHDRI ed specificarne gli eventuali valori (riferirsi alla documentazione di mkhdri.exe, disponibile anche alla voce di menu 'View>MKHDRI cmd line help').
Ora è possibile lanciare la sequenza automatica di elaborazione con MKHDRI mediante il bottone '> sequence ...' (alla destra del bottone 'MKHDRI ...') e l'opzione 'confirm'. E' possibile seguire l'andamento della procedura di elaborazione sulle finestre di Log/messages, compresi eventuali messaggi di errore. Nella finestra superiore compaiono i messaggi principali che segnalano la sequenza delle operazioni in esecuzione mentre la finestra inferiore mostra l'output di ogni singolo comando MKHDRI utilizzato nella sequenza, così come viene fornito dal comando in linea stesso.
In alternativa alla sequenza completa è possibile effettuare dei rendering di test con MKHDRI per visualizzarli e confrontarli side-by-side mediante una finestra dedicata, in modo da provare le principali differenze che insorgono modificando le varie opzioni di MKHDRI. Il comando allora sarà 'Run and show sample in HDR Compare window (n)', opzione del bottone 'MKHDRI ...', che visualizzerà il risultato nella relativa frame della finestra 'MKHDRI compare'. Le immagini di test verranno realizzate rispetto al primo set di bracketed images presenti nel folder di input. La resa degli HDR in questa condizione è necessariamente approssimativa dato che, per la visualizzazione su questa finestra di test è necessario procedere ad una conversione temporanea da HDR a LDR. E' comunque una modalità utile per verificare le macro-differenze conseguenti alla variazione dei parametri ed opzioni disponibili in MKHDRI. Questa funzionalità è sicuramente più utile per effettuare dei test preliminari con il Tone-mapper PPTMO, che vedremo dopo. Per ognuna delle immagini di test viene visualizzata in basso la sequenza di opzioni usata per quella immagine. Per produrre invece un HDR di test senza visualizzazione successiva, usare l'opzione 'Run' semplice del bottone 'MKHDRI ...'. In questo caso verrà prodotta l'immagine HDR nel folder 'HDR output folder', come segnalato a fine elaborazione nella finestra di log.
Operazioni preliminari per preparare l'elaborazione delle immagini con PPTMO.
La procedura è pressocchè identica a quella per l'elaborazione di MKHDRI. A partire dai file immagine HDR prodotti da MKHDRI verranno realizzati dei file LDR (Low Dynamic Range) mediante l'elaborazione in tone-mapping con PPTMO (Photoreceptor Physiology Tone Mapper Operator). Questi file sono il risultato finale del merging HDR e del successivo tone-mapping e saranno utilizzati per il rendering dei nostri Panorama. Prima di procedere con la sequenza di rendering completa (bottone '> sequence ...' a destra del 'PPTMO ...') è possibile, come abbiamo visto per l'MKHDRI, effettuare una serie di test per valutare e confrontare le opzioni del PPTMO per la resa ottimale delle nostre immagini LDR finali. Questa volta i rendering di test saranno effettuati su di un file HDR a nostra scelta ;). Possiamo infatti scegliere l'HDR cliccando sul campo blu in corrispondenza dell'etichetta 'Active HDR file'.
Altre funzioni di HDR-TM:
- Show/hide delle sezioni MKHDRI/PPTMO/Logs
- Save/Load current options
- Save/Load options in/from a file
- Load MKHDRI/PPTMO default options
- Read and list Exif data from input images
- Generate Panorama mosaic layout from the HDRi set
- Write FocalLength Exif tag in tonemapped images
- File>Readme for a minimal help
HDR-TM crea e visualizza una tabella riassuntiva dei principali Exif's tags dei file immagine di input (tutti quelli presenti nel folder di input) per una rapida verifica preliminare di ciò che andremo ad elaborare (File>Read EXIF tags from 'input folder' images).
HDR-TM crea una finestra di visualizzazione 'a mosaico' della sequenza (View>Generate Panorama layout from HDRIs) panoramica, a partire dagli HDR realizzati dopo la prima sequenza di elaborazione. Ho trovato molto utile questa funzionalità per una pronta verifica della sequenza e distribuzione delle immagini per la panoramica e soprattutto per la possibilità di ruotare quelle immagini che presentano un orientamento dubbio o incongruente con il resto della sequenza.
N.B: questa utility (attualmente, versione 0.2b) è usufruibile solo nel caso che il numero di shots totale ed il numero di rows effettuati per la ripresa panoramica sia di 28 inquadrature su 3 piani, che è quella che utilizzo io attualmente.
In ultimo, un sunto delle funzionalità del programma, estratte dal file Readme.txt incluso nello zip, in inglese.
Content of the Readme.txt file
--- Steps for an HDRi generation session, starting from a series of bracketed camera shots
1) Set the number of bracketed shots taken for the HDR sequence (Main>Number of bracketed shots)
2) Make sure that the 'Input folder' is correct and contain your sequence (images must be listed in ascending numerical order)
3) Set the file type of your input images to be processed with MKHDRI (Main>Input images file type)
4) Set the file type of the resulting HDR files (Main>HDR file type)
5) Set an 'HDR output folder' for the processed HDR images (should not be the same as the input folder)
6) Set the MKHDRI options you want to apply to the merging and eventually save this setting for later use (Main>Save current options)
7) Click on (MKHDRI) '> sequence' to run a sequence of mkhdri commands, one for each image file
--- Steps for testing the Photoreceptor Tone mapper PPTMO
1) Select the HDR file you want to test by clicking on the 'Active HDR file' field. They are in 'HDR output folder' now
2) Set the PPTMO options to try out and find the best combination for your HDR image
3) Save the options as you did for the MHDRI options
4) Set the file type for the resulting LDR image (Main>TM-LDR file type)
5) Click on 'PPTMO' to process this single HDR file and generating an LDR Tone mapped image
6) The Tone mapped LDR image will be generated and saved in the 'TMap output folder', already created as TM, a subfolder of 'HDR output folder'
7) When you are satisfied with the LDR testing on this single image, it's time to run the complete LDR generation sequence by clicking on (PPTMO) '> sequence'
--- Other utilities ...
1) 'Read EXIF tags from Input files' create and shows (using exftool program) a table listing some usefull EXIF tags for all the images located in Input folder
2) 'Open Compare TM window' opens a window with three image side-by-side canvas for previewing PPTMO output images that you can create and visualize directly from the PPTMO button, for a qualitative only comparison testing purpose
3) 'Generate (and open) Panorama layout' generates a series of thumbnails that reproduces the Panorama sequence in order to test and verify mainly the orientation and the general layout of the camera shots with the capability to rotate the images that require such a operation (this Panorama layout is taylored and works only if the sequence of shots is equal to my personal 'normal' setting: 28 shots in total, 10 at 0° tilting, 8 at 45°, 8 at -45°, 1 zenith and 1 nadir). It generates the layout starting from the 28 HDR's MKHDRI output images found in 'HDR output folder'
4) The 'Write EXIF tag' button writes the 'FocalLength' EXIF tag in all the Tone mapped images found in 'TMap output folder', in order to have this tag embedded in in images, ready to be processed by a Panorama generator program ( my preferred is 'Hugin Panorama Stitcher')
NOTE:
MKHDRI.exe and PPTMO.exe are free software by HDRlabs (visit http://www.hdrlabs.com/picturenaut).
My MKHDRI-PPTMO GUI is only a graphical user interface to these great programs and has been written only to
simplify the generation process of multiple HDR and tone mapped images for my panorama projects.
Some of the options of these commands have not been implemented yet, may be in the future if someone is interested.
This GUI makes use of the following public domain software:
- 'kill' extension for Tcl, written in 2008 by Frank Pilhofer (http://www.fpx.de/fp/Software/tclkill)
- ImageMagick's convert and identify programs (http://www.imagemagick.org)
- Exiftool command line utility (http://www.sno.phy.queensu.ca/~phil/exiftool)
Ottobre 2013