
22 Apr Combinazione HDR di immagini astronomiche
L’acronimo HDR sta per High Dynamic Range e, con questo acronimo, si intende una tecnica che permette di aumentare l’intervallo dinamico del nostro sensore, o meglio della nostra immagine. La gamma dinamica di un sensore digitale è una caratteristica di primaria importanza per tutti quei generi fotografici che vanno a includere nella foto zone ad alta variabilità di luminosità. L’astrofotografia è uno dei settori fotografici nel quale più spesso, per non dire sempre, ci troviamo in questa condizione. Infatti si passa, in una stessa immagine, dalla luce intensa di una stella all’oscurità del profondo cielo.
Può capitare che nelle lunghe pose si vada a saturare le zone più luminose dell’immagine, andando a “bruciarle”, rendendo tali aree completamente bianche, perdendone colore e informazione. Ciò avverrà tanto più di frequente quanto minore sarà la gamma dinamica del nostro sensore. Ma ci saranno comunque situazioni nelle quali sarà impossibile recuperare certe zone anche con sensori di altissima qualità.
E’ per superare questo limite che si utilizza la tecnica dell’HDR.
Tale tecnica sfrutta l’unione di immagini riprese a diverse esposizioni che permettono di estendere la gamma dinamica della nostra immagine, rendendo leggibile sia le zone in ombra che quelle più luminose. Il tutto si spiega decisamente meglio con le immagini che seguono.
La prima immagine (a sinistra) mostra la regione della spada di Orione, con tutte le sue nebulosità, ottenuta con scatti da 300 secondi nel filtro di Luminanza con sensore Kodak Kaf8300 monocromatico. La seconda immagine (a destra) mostra la stessa zona con gli stessi strumenti ma ottenuta combinando in HDR scatti da 300 secondi e scatti più brevi da 60 secondi. Entrambe le immagini sono un mosaico creato con due pannelli, uniti con le metodiche descritte in questo tutorial.
Apparentemente le due immagini sono identiche. Ma se noi proviamo a recuperare le luci di queste immagini, con strumenti che vedremo più avanti, noteremo una sostanziale differenza
Nella prima immagine rimarrà sempre una zona più luminosa al centro della nebulosa M42, una zona bruciata e non recuperabile. La stessa zona è invece del tutto risolta nella seconda immagine, quella in HDR.
La zona centrale della nebulosa M42 si è salvata grazie all’unione in HDR dello scatto breve da 60 secondi, preservando però tutte le polveri più deboli presenti nello scatto da 300 secondi. Nelle immagini a colori recuperare le zone bruciate, sature, porta spesso ad avere queste ultime zone totalmente grigie, prive di colore, proprio perché l’informazione di colore si è persa. Un buon HDR infatti non si basa solo sul recupero luci, ma anche sul colore, infatti nel caso qui esposto tale tecnica è stata eseguita sia sul canale di luminanza, come visto, che sull’RGB.
Andiamo adesso a vedere come unire i due scatti, quello da 60 e da 300 secondi, in un’unica immagine HDR, ricordandovi che in base al sensore da voi utilizzato, alla sua gamma dinamica, alla durata dello scatto ed al rapporto focale del telescopio, potrebbe essere necessario un numero maggiore di scatti, a tempi anche più brevi, per riuscire a recuperare tutta la gamma dinamica che la splendente nebulosa di Orione richiede. Per praticità lavoreremo solo sull’immagine di Luminanza, ricordando che per l’RGB il procedimento è del tutto identico.
Il software Pixinsight ci permette di unire più immagini in HDR utilizzando due semplici process che, nell’ordine di utilizzo, sono:
HDRComposition
HDR Multiscale Transform
HDRComposition
Il process utilizzato per creare la nostra immagine HDR si chiama HDRComposition e lo possiamo trovare sotto al menù process -> image integration -> HDRComposition.
Tale process va utilizzato quando le nostre immagini sono ancora in fase lineare, quindi non stirate. Le immagine sono state allineate ed eventuali bordi neri sono stati croppati.
I parametri da modificare sono pochi e piuttosto semplice da usare, inoltre quelli di default funziona molto bene nella maggior parte dei casi. La prima cosa da fare è ovviamente caricare le nostre immagini con add files.
L’ordine con cui vengono caricate le nostre immagini può essere molto importante. Di default è attiva l’opzione automatic expousure evaluation la quale permette al nostro process di individuare quali sono le immagini a più lunga esposizione e quali quelle con esposizioni più brevi semplicemente analizzando le statistiche delle nostre immagini. Se tale valutazione fallisce o se fosse disattivata, il process si basa sui dati exif dei file per individuare i tempi di esposizione delle immagini caricate. Ma se le immagini non presentano dati exif relativi alla durata dello scatto, sarà fondamentale avere in alto nella lista l’immagine con la posa più lunga e, a seguire, via via le immagini a pose più brevi da usare per sostituire le parti bruciate nella prima immagine. Dato che non tutti i software di acquisizione includono dati exif sulle immagini e dato che processi come image integration possono far perdere certi dati, consiglio di tenere l’opzione automatic expousure evaluation attiva e di caricare le immagini con l’ordine descritto prima nel caso la valutazione automatica fallisca.
Le altre 3 opzioni attive e che consiglio di lasciare tali sono:
- Reject black pixel – Questa opzione evita che pixel completamente neri finiscano nell’immagine finale. In questo modo non solo si sostituiranno le aree bruciate dall’immagine a più lunga posa, ma si ripareranno anche questi eventuali black pixel con informazioni prese dalle altre immagini a disposizione.
- Generate a 64 bit HDR image – Un’immagine a 64 bit presenta una gamma ottima per lavorare in HDR, sarà più pesante di una a 32 bit ma sicuramente permetterà un lavoro migliore sul recupero delle aree bruciate.
- Output composition mask – Queste maschere di output sono un ottimo metodo per valutare la bontà del nostro lavoro, vedremo poi cosa sono e come “leggerle”.
Applichiamo il nostro process con i valori di default per capire poi come trovare i valori ottimali per noi. Come risultato di questo process otteniamo due diverse immagini
L’immagine a sinistra chiamata HDR è il nostro risultato, ovviamente ce lo troviamo in fase lineare, quindi scuro, ma già da qui è possibile vedere che la porzione centrale del nucleo della nebulosa m42 è risolta, non bruciata.
La seconda immagine è la nostra maschera di output, essa in pratica ci mostra in bianco quali sono le aree dell’immagine a più lunga posa che sono state sostituite con le informazioni delle immagini a pose più brevi per creare il nostro HDR. Vediamo che tali aree corrispondono al nucleo luminoso della nebulosa m42 e ai nuclei delle stelle più brillanti presenti nel frame. Da questa maschera di output si evince che già coi valori di default il nostro HDR è molto buono, ma possiamo modificare qualche cosa per renderlo migliore.
I parametri da tenere in considerazioni sono i seguenti:
- Binarizing treshold – Questo è il parametro più importante di tutti e con esso si decide le zone su cui intervenire. Aumentandolo si ridurrà la porzione su cui andare ad eseguire il nostro HDR, viceversa diminuendolo si amplierà l’HDR anche a pixel meno luminosi. Alzarlo troppo può portare ad un HDR inefficace, con aree bruciate e sature, mentre diminuirlo troppo può portare alla perdita delle nebulosità più tenui. La maschera di output è il nostro miglior strumento per valutare tale parametro, ad esempio il valore di default di 0.800 è secondo me troppo alto, vorrei nel mio caso andare ad allargare la zona su cui eseguire l’HDR in particolare nel nucleo di m42. Facciamo una prova abbassando tale valore a 0.600
A sinistra vediamo la maschera precedente con un Binarizing di 0.800, a destra abbiamo la nuova con il valore abbassato a 0.600. Si vede come abbassandolo la zona su cui il nostro HDR va ad agire è stata allargata, anche se di poco, allo stesso tempo però le zone di nebulosità più debole non sono state minimamente intaccate, proprio ciò che volevo.
- Mask Smoothness – Come dice il nome tale valore indica la sfumatura della maschera. Una maschera poco sfumata può rendere troppo netta la transizione del nostro HDR, per questo tendo sempre ad aumentare questo valore fino a 20 o più.
- Mask growth – Questa funzione allarga la maschera tanto più quanto maggiore sarà questo valore. Può capitare che, dopo aver creato l’HDR, attorno alle stelle si creino degli aloni scuri, una sorta di ringing nero. Spesso accade quando il valore di Binarizing risulta sbagliato, solitamente troppo basso. Possiamo evitare questo artefatto allargando la maschera, così da comprendere le aree affette da questo problema. Nella maggior parte dei casi non sarà necessario rendere la nostra maschera più grande, ma alzare questo valore di qualche punto può essere un buon metodo per prevenire eventuali artefatti senza perdere qualità nel nostro HDR.
Dopo le opportune modifiche siamo quindi giunti ai seguenti valori per il nostro HDR
Otterremo quindi un’immagine lineare a 64bit che, applicando un STF, comparirà così
La zona centrale della nebulosa m42 è ancora molto luminosa, ma adesso sotto tutta quella luce abbiamo tutte le informazioni utili. Dobbiamo solo tirarle fuori con il secondo process di questo tutorial.
HDRMultiscale Transform
Questo process ci servirà per abbassare la luminosità di alcune aree della nostra immagine. Lo troviamo sotto al menù process -> multiscaleProcessing -> HDRMultiscale Transform
Prima di eseguire tale process è necessario rendere la nostra immagine non lineare, stirandola con la metodologia a noi preferita (in questo tutorial sono descritti diversi metodi).
Utilizzare questo process è piuttosto semplice, sostanzialmente l’unico parametro di cui tener conto è il numbers of layers, abbassando questo parametro andremo ad un recupero luci maggiore, alzandolo renderemo tale recupero più leggero.
Nell’immagine che segue vediamo il diverso recupero di luci che si ha con un valore di Layers di 9 (a destra), 7 (al centro) e 5 (a sinistra).
Come vediamo valori di Layers troppo bassi possono rendere il recupero luci davvero estremo, mentre valori alti lo rendono quasi nullo. Possiamo fare delle prove sfruttando le preview fino al trovare il valore più idoneo alla nostra immagine.
Quando abbiamo trovato il giusto valore possiamo fare altre due prove veloci mantenendo fissi i Layers ma variando le iterazioni (Numbers of iterations), provando ad esempio con valori di 2 e di 3 per vedere se il risultato migliora ulteriormente. Una volta contenti del nostro risultato e applicato tale process, possiamo dichiarare conclusa la creazione del nostro HDR. L’immagine è quindi pronta per proseguire la sua elaborazione, nel mio caso lo step successivo sarà quello di unire questa luminanza ad un file RGB.
Per un lavoro più preciso possiamo decidere di usare questo ultimo processo con una maschera al fine di applicarlo solo alle aree più luminose, preservando il resto. Un metodo veloce può essere quello di attivare l’opzione lightness mask, così da avere una maschera di luminanza applicata all’immagine, oppure possiamo crearcene una noi.
Quando si va a lavorare su immagini a colori, questo processo porta ad una desaturazione delle aree interessate. Potrà quindi rendersi necessario una saturazione più aggressiva del solito per riportare i colori in queste aree. Sempre sulle immagini a colori è, a mio avviso, buona norma attivare l’opzione to lightness così da applicare il processo direttamente sul canale di luminanza dell’immagine rgb.