INTRODUZIONE
La fotografia a con filtri a banda stretta, negli ultimi anni, si è diffusa largamente tra gli astrofili per svariati motivi.
Personalmente ho scelto questa tecnica perché mi di effettuare riprese anche da cieli con un livello di inquinamento luminoso medio alto.
I soggetti ideali per questo tipo di fotografia sono le nebulose ad emissione come le regioni HII e le nebulose planetarie, oggetti nei quali l'emissione luminosa avviene in ristrette bande spettrali.
Il problema principale di questo tipo di fotografia è ricostruire un'immagine a colori partendo da immagini acquisite in una regione spettrale molto ristretta.
Un possibile approccio è quello di produrre immagini in falsi colori, assegnando le diverse immagini ai canali RGB in modo arbitrario ( si veda per esempio la Hubble Palette).
Una tecnica diversa invece è quella di cercare di produrre immagini dai colori verosimili combinando opportunamente le immagini sulla base dell'effettiva lunghezza d'onda del filtro utilizzato.
Nel vasto parco di tecniche e combinazioni utilizzabili ho trovato particolarmente interessante quella sviluppata da Steve Cannistra (http://www.starrywonders.com/bicolortechniquenew.html) che utilizza esclusivamente le due bande spettrali H alfa e OIII per produrre immagini con colori verosimili.
La tecnica di Steve Cannistra sfrutta alcune caratteristiche specifiche di Photoshop come l'utilizzo dei livelli, le clipping mask e i metodi di fusione che non sono direttamente disponibili in PixInsight ma che possono essere riprodotte in maniera abbastanza semplice con PixelMath.
Nella prima parte di questa lezione cercherò di riprodurre fedelmente la procedura di Steve Cannistra in PixInsight, nella seconda parte ottimizzerò la procedura in modo da sfruttare al meglio i punti di forza di PixInsigth ottenendo una procedura notevolmente più snella.
Se siete impazienti saltate direttamente alla sezione Lo stile PixInsight
I Dati
Le immagini che utilizzerò nella lezione fanno parte di un set multispettrale messo a disposizione da Chris Purves all'interno della sezione image processing challenge del forum di PixInsight (http://pixinsight.com/forum/index.php?topic=6676.0): l'immagine elaborata da Don Goldmann è stata nominata APOD il 10 gennaio 2014.
Ringrazio Chris Per avermi dato la possibilità di usare la sua splendida immagine in questa lezione.
Il Metodo
Il metodo consiste nell'utilizzare l'immagine Halpha nel canale rosso, l'OIII nel canale blu e di creare un canale verde sintetico moltiplicando i primi due e riscalandolo opportunamente in modo da recuperare il range dinamico perso nell'operazione di moltiplicazione.
Per far questo Steve Cannistra utilizza un intelligente combinazione di livelli, clipping mask. livelli di regolazione e metodi di fusione in modo da ottenere il risultato desiderato in un unico passaggio.
Si parte da due immagini non lineari preventivamente allineate: è importante non usare immagini lineari in quanto l'operazione di moltiplicazione tende a produrre un'immagine risultante molto più scura. Partendo da immagini lineari si corre il rischio di ottenere un verde sintetico troppo scuro o addirittura nero.
Il primo passo è produrre il verde sintetico:
chiamando Ha e OIII le due immagini di partenza inseriamo l'espressione Ha*OIII in PixelMath chiedendo al processo di generare una nuova immagine che chiameremo sG.
In figura sono visibili le impostazioni di PixelMath per ottenere il verde sintetico
Ecco il set di immagini
Ha | sG | OIII |
A questo punto le tre immagini devono essere colorizzate: Steve Cannistra utilizza un livello di regolazione Hue/Saturation impostando la saturazione al 100%, la tinta rispettivamente a 0 (rosso) 120 (verde) e 240 (blu) e una correzione di luminosità diversa per ciascun colore: -50% per il rosso, -20% per il verde, -40% per il blu.
Indebolire le immagini è necessario per evitare la saturazione dei pixel nel passaggio successivo.
In PixInsight l'oprazione può essere effettuata utilizzando i processi
ConvertToRGBColor per cambiare lo spazio colore dell'immagine
PixelMath per indebolire l'immagine
ChannelCombination per colorizzare l'immagine.
Prima però è necessario creare le immagini di supporto da inserire in ChannelCombination con PixelMath
Utilizzando PixelMath con le seguenti impostazioni verranno create le immagini
Immagine | Expression | Image Id |
Saturazione al 100% | 1 | MAXSat |
Tinta Rossa | 0 | REDHue |
Tinta Verde | 120/360 | GREENHue |
Tinta Blu | 240/360 | BLUEHue |
Nell'immagine seguente si vedono le impostazioni per creare l'immagine per la tinta verde trascinando l'iconcina del triangolo sopra l'immagine sG
Ottenute le quattro immagini di supporto è possibile procedere con la colorizzazione delle immagini.
- Utilizzare ConvertToRGBColor per convertire lo spazio colore dell'immagine
- Utilizzare PixelMath per indebolire l'immagine della quantità desiderata moltiplicando l'immagine per una costante compresa tra 0 e 1
ad esempio, nel caso dell'immagine rossa Steve Cannistra consiglia un impostazione di luminosità di -50% che corrisponde a moltiplicare l'immagine per 0.5 ( pari a (100-50)/100 )
I valori Iniziali consigliati da Steve Cannistra (R=-50%, G=-20%, B=-40%) corrispondono a R=0.5, G=0.8, B=0.6 valori che pssono essere modificati per adattarsi al meglio alla vostra immagine. - Utilizzare ChannelCombination per colorizzare l'immagine: Selezionare lo spazio colore HSI, inserire nella coordinata H l'immagine di supporto del colore desiderato, nella coordinata S l'immagine bianca (saturazione al 100%) e disattivare il checkbox della coordinata I, quindi trascinare l'icona del triangolo sull'immagine corrispondente.
In figura si vedono le impostazioni per colorizzare l'immagine verde
PixelMath (costante 0,75 equivalente a -25%)
ChannelCombination
alla fine della procedura dovreste ottenere qualche cosa di simile all'immagine seguente
Ora è giunto il momento di fondere i le tre immagini: Steve Cannistra sovrappone i livelli ponendo il rosso in basso, il blu in cima e in verde nel mezzo, quindi imposta la modalità di fusione del livello 2 e 3 su Screen (Scherma) con opacità 100%.
PixInsight non supporta i livelli, ma ancora una volta ci viene in aiuto PixelMath.
L'espressione per riprodurre la modalità scherma è 1-((1-$T) * (1-Blend)) che nel linguaggio di PixelMath può essere scritta anche come ~(~$T * ~Blend) (non è necessario usare questa notazione, ma la sua lettura risulta più compatta)
Qui $T rappresenta il livello inferiore dell'equivalente Photoshp, mentre Blend rappresenta il livello superiore.
Se si vuole tener conto anche dell'opacità l'espressione diventa ($T*~Opacity)+(~(~$T * ~Blend))*Opacity
Nel nostro caso prima si andrà a comporre l'immagine verde sopra la rossa, quindi la Blu sulla risultante della prima operazione. Le espressioni complete sono
($T*~Opacity)+(~(~$T * ~sG))*Opacity trascinando il triangolo sopra l'immagine rossa
($T*~Opacity)+(~(~$T * ~OIII))*Opacity trascinando il triangolo sopra la risultante dell'oprazione precedente
In entrambi i casi Opacity = 1 (100%)
Sovrapponi Verde su Rosso creando SyntRGB
Sovrapponi Blu
Il risultato finale della composizione dovrebbe assomigliare a questo
Ora resta solo da allineare gli istogrammi in modo da ottenere un background neutro: in Pixinsight l'operazione può essere fatta molto semplicemente con il processo BackgroundNeutralization:
Creare una piccola preview che contenga una porzione di fondocielo, eseguire BackgroundNeutralization impostando la preview come reference e l'upper limit superiore al livello medio del fondocielo in tutti i colori.
Il risultato finale sarà
Ora l'immagine è pronta per un'ulteriore elaborazione come la calibrazione fine dei colori e tutte le operazioni che di solito su applicano ad immagini non lineari a colori.
Chi fosse interessato può scaricare l'intero set di icone di processo nella sezione download del sito
Lo Stile PixInsight
Osservando quanto descritto sopra la prima domanda che viene in mente è:
come è possibile che una procedura tutto sommato semplice in Photoshop diventi così complessa in PixInsight?
La risposta è semplice: Perchè PixInsight NON è Photoshop!
Cercare di applicare alla lettera una procedura pensata per Photoshop a PixInsight è semplicemente sbagliato.
Vediamo quindi come modificare la procedura in modo da adattarla al meglio alle caratteristiche di PixInsight.
Riassumendo i concetti base della tecnica di Steve Cannistra abbiamo:
Si parte da due immagini, H alfa e OIII, preventivamente elaborate con uno tretching non lineare (Trasformazione di istogramma, curve)
- Assegnare al canale rosso l'immagine H alfa
- Assegnare al canale blu l'immagine OIII
- Assegnare al canale verde un'immagine sintetica ottenuta moltiplicando H alfa con OIII
- Ampliare il range dinamico del canale verde
- Allineare la base degli istogrammi dei tre canali
Il resto della procedura di Steve Cannistra è semplicemente l'applicazione di questi punti alle caratteristice di Photoshop in modo da effettuare la composizione in un unico passaggio.
In PixInsight si può fare la stessa cosa con PixelMath che permette di gestire separatamente in canari Rosso Verde e Blu disattivando l'opzione Use a single RGB/K expression.
Come prima chiamiamo Ha e OIII le due immagini di partenza preventivamente allineate e delinarizzate.
Inseriamo in PixelMath le seguenti espressioni:
R/K: | Ha |
G: | Ha*OIII |
B: | OIII |
Nella sezione Destination attiviamo l'opzione Create new image con Image id SyntRGB
Come Color space selezionare RGB color
I primi tre punti della procedura sono stati già soddisfatti.
Ampliare il range dinamico di un'immagine corrisponde a moltiplicarla per una costante maggiore di 1.
Nella procedura precedente era stato ridotto il range dinamico di tutti i canali: 0.5 (-50%) per il rosso e il blu, 0.75 (-25%) per il verde, per evitare di saturare i pixel utilizzando Scherma come modalità di fusione dei livelli; in PixInsight questo non è necessario perchè stiamo lavorando separatamente con i tre canali e si opererà poi un'effettiva fusione dei canali.
L'unica cosa da fare sarà ampliare il canale verde.
R/K: | Ha |
G: | 1.5*Ha*OIII |
B: | OIII |
Il valore di 1.5 è stato scelto sulla base dei valori indicati per la procedura descritta sopra: lasciando invariati rosso e blu dovrò ampliare il verde di un valore pari a 0.5/0.75 = 1.5
In generale potremmo voler modificare il range di ciascuno dei canali, quindi potremmo pensare di moltiplicare ciascun canale per una costante diversa.
Ora è possibile fare una prima prova per vedere il risultato dell'espressione: creare una preview su una delle due immagini in modo da contenere buona parte dell'oggetto fotografato e trascinalre l'icon del triangolo sulla preview.
Anche il punto 4 è stato completato, resta da allineare la base degli istogrammi: questo equivale ad aggiungere una costante a ciascun canale in modo da spostare a destra, con una costante positiva, o a sinistra, con una costante negativa, la base degli istogrammi.
Per aiutarci nella scelta della costante apriamo lo strumento HistogramTransformation e agganciamolo alla preview in modo da analizzarne l'istogramma sul lato delle ombre (a sinistra)
Come si può vedere la base dell'istogramma del canale verde si trova circa a 0.016, quella del blu a 0.08, quella del rosso a 0.11; immaginando di voler allineare i tre istogrammi a 0.02 le espressioni diventano
R/K: | Ha-0.09 |
G: | 1.5*Ha*OIII+0.004 |
B: | OIII-0.06 |
Il risultato finale è
Volendo generalizzare il processo di PixelMath è possibile utilizzare dei Symbols per definire le varie costanti moltiplicative e additive che servono a bilanciare i colori in modo da rendere il processo riutilizzabile con diverse immagini.
HaGain: modifica dinamica del canalre rosso: nel mio caso = 1,
HaShift: sposta l'istogramma del canale rosso: nel mio caso = -0.09,
sGGain: modifica dinamica del canalre verde: nel mio caso = 1.5,
sGShift: sposta l'istogramma del canale verde: nel mio caso = 0.004,
OIIIGain: modifica dinamica del canalre blu: nel mio caso = 1,
OIIIShift: sposta l'istogramma del canale blu: nel mio caso = -0.06
le espressioni diventano
R/K: | HaGain*Ha+HaShift |
G: | sGGain*Ha*OIII+sGShift |
B: | OIIIGain*OIII+OIIIShift |
Ora l'immagine è pronta per un'ulteriore elaborazione come la calibrazione fine dei colori e tutte le operazioni che di solito su applicano ad immagini non lineari a colori.
Ecco un confronto della stessa immagine elaborata con il metodo di Steve Cannistra in tre modi diversi con impostazioni simili
La procedura è stata notevolmente semplificata dal momento che ora, con un unico processo si può generare l'immagine finale esattamente come in Photoshop.
Utilizzando la preview è possibile verificare in tempo reale come la modifica dei vari parametri influisce sull'aspetto cromatico dell'immagine risultante prima di applicare definitivamente il processo.
Chi fosse interessato può scaricare l'icona di processo di PixelMath nella sezione download del sito