Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 

Nel numero di Febbraio 2018, sulla rivista Nuovo Orione, è apparso un articolo scritto  da Luigi Fontana sull'aquisizione ed elaborazione di immagini acquisite con due diversi setup.

Nell'articolo, in un riguadro, spiegavo come applicare la tecnica di composizione con PixInsight.

Questo esempio di elaborazione va ad integrare e completare l'articolo, mostrando, in pratica, il risultato che si può ottenere.

Le immagini di partenza solo due scatti di Luigi Fontana:

  • l'RGB è stato acquisito con una CANON 350D modificata Baader e un teleobiettivo Nikon 300 f/2,8 (impostato a f/4) con 20 pose da 600s (3h20min).
  • l'Halfa è stato acquisito con una Baker 200mm f/2,3 e un CCD SBIG 11000 38 pose da 600s (6h20min).

Pixinsight facilita l'arduo compito di fusione di due immagini tanto diverse tra loro.

Questo articolo presuppone che il lettore abbia una minima dimestichezza con la terminologia i principi e l'interfaccia utente di PixInsight. 

Si inizia quindi con le due immagini master, ancora lineari, come uscite dalla fase di preprocessing: è particolarmente importante effettuare una corretta calibrazione delle immagini per eliminare tutti i possibili difetti.

Immagini di partenza

Per visualizzare le immagini applicare una trasformazione di istogramma a video utilizzando la ScreenTranferFunction automatica (pulsante "nucleare"); si ricorda che tale trasformazione è applicata SOLO alla rappresentazione a video: i dati non vengono in alcun modo modificati dall'applicazione di questo processo: le immagini sono ancora lineari.

Come si può vedere l'immagine RGB ha una forte dominante verdastra dovuta principalmente all'inquinamento luminoso e a una flatbox non perfettamente bianca: questo non è un problema in quanto PixInsight è in grado di correggere eventuali dominanti mediante la calibrazione dei colori.

Il primo passo sarà quindi la calibrazione colori dell'immagine RGB che prevede due operazione distinte: prima la neutralizzazione del fondo cielo e poi il bilanciamento del bianco vero e proprio.

Si crei quindi una Preview sul fondo cielo sull'immagine RGB: è molto importante che tale preview contenga principalmente fondo cielo, senza stelle luminose e parti di nebulosità colorate; è particolarmente importante evitare anche gli aloni stellari che potrebbero creare problemi.

Se, come in questo caso, il campo è ricchissimo di stelle, si può creare più di una preview in diversi punti da unire insieme utilizzando lo script PreviewAggregator presente nel gruppo Utilities.

Definito il campione per il fondo cielo si apre il Process BackgroundNeutralization, indicando come reference image la preview del fondo cielo oppure, nel caso si siano create più preview aggregate, l'immagine Aggregated.

L'altro parametro da impostare è l'Upper limit che deve essere leggermente superiore al valore mediano dell'immagine di riferimento ottenibile grazie al process Statistics. Come si può vedere dall'immagine successiva, a causa della dominate verde, il valore median è maggiore per il canale G: il valore di riferimento da utilizzare in BackgroundNeutralization è proprio questo.

02 BG Neutr

 

 Per applicare il process all'immagine è sufficiente trascinare il triangolino blu (presente nell'angolo in basso a sinistra della finestra del process) sopra l'immagine RGB: a questo punto potrebbe essere necessario riapplicare la ScreenTranferFunction automatica, ma il fondo cielo ora dovrebbe essere perfettamente neutro.

Ora è necessario procedere al bilanciamento del bianco scegliendo un opportuno white reference.

A tal fine creiamo una preview contenente molte stelle in una zona dove non sia presente la nebulosa, come nel caso del background, volendo, si possono selezionare più aree e poi unirle con PreviewAggregator.

Inoltre è necessario fornire un riferimento per il fondo cielo, in modo che l'operazione di bilanciamento del bianco non ne alteri il colore: utilizzeremo le stesse preview create per il BackgroundNeutralization.

Non potremo però utilizzare l'immagine aggregata creata al passo precedente (perché il colore del cielo è cambiato) quindi andremo a ricrearla utilizzando di nuovo lo script PreviewAggregator.

L'ultimo dato che serve è il valore di saturazione, ossia il valore, tra 0 e 1 che assume una stella satura al centro: tale valore dovrebbe essere 1, pari al 100% della dinamica, ma le operazione di pretrattamento e, soprattutto, la neutralizzazione del fondo cielo, possono modificare sensibilmente tale valore abbassandolo anche di molto.

Per misurarlo utilizzare il mouse in modalità "readout" (attivabile dalla barra degli strumenti col bottoncino a forma di "mirino") e puntare il centro di una stella satura tenendo premuto il tasto sinistro del mouse: appariranno i valori RGB corrispondenti all'area satura (nella nostra immagine sono circa 0,58 0,64 0,83 rispettivamente per il rosso, verde e blu) il valore di riferimento è il minore fra i tre.

Nella figura che segue si vedono le impostazioni scelte per il bilanciamento del bianco, in particolare si nota che:

  • Come White Reference è stata utilizzata la grande preview in alto a sinistra (Preview6)
  • Il valore di "Upper Limit" del White Reference è stato abbassato a 0,55 in modo da essere inferiore al minimo tra i valori R, G, B delle zone sature ed escludere quindi tali zone (che non contengono informazione cromatica) dal calcolo del bilanciamento del bianco.
  • Il flag Structure detection è attivo, in modo da identificare le stelle e utilizzarle per il bilanciamento del bianco.
  • L'immagine Aggregated viene utilizzata come Background Reference
  • Il valore "Upper Limit" del Background è stato impostato a 0,007 in modo da essere leggermente superiore al valore "median" del fondo cielo.

Applicando il Process all'immagine (sempre trascinando il triangolino blu sull'immagine) si ottiene la calibrazione del bianco.

03 WB

 

A questo punto l'elaborazione preliminare dell'immagine RGB è completa ed è venuto il momento di allinearla all'immagine Halfa.

Come spiegato nell'articolo, si utilizza StarAlignement attivando la correzione della distorsione: in questo caso si utilizzerà l'immagine Halfa come riferimento e si andrà ad allineare l'RGB.

04 StarAlignement

 

A questo punto le due immagini risultano perfettamente allineate, ma potrebbe essere necessario ritagliarle nel caso in cui vi siano delle zone non coperte da entrambe le immagini: a tal fine si utilizza il process DynamicCrop.

05 DynamicCrop

 

Per ritagliare le due immagini esattamente nello stesso modo, si definisce l'area di interesse sull'immagine che mostra aree non coperte (nel nostro caso l'RGB) e, prima di applicare il Process, si salva l'icona di processo trascinando il bottoncino col triangolo blu sul Workspace salvando un'istanza del Process.

Questa icona può poi essere trascinata sulle due immagini: in questo modo il ritaglio è perfetto e non è necessario riallinearle.

 

Ora le due immagini sono perfettamente sovrapponibili ed è giunto il momento di fonderle.

La tecnica di fusione ovviamente dipenderà dalla natura delle immagini: in questo caso abbiamo un'immagine RGB da combinare con una in banda stretta.

Il problema di questo tipo di fusione è che non è possibile semplicemente utilizzare l'Halfa come luminanza per l'RGB, infatti, grazie al filtro in banda stretta, le stelle sull'immagine Halfa risultano molto più deboli rispetto a quella in RGB quindi, dopo lo stretching non lineare, propedeutico alla fusione LRGB, appaiono più piccole.
La nebulosa invece apparirà più luminosa e contrastata rispetto alla sua contropare in RGB, fondendo le due immagini quindi si otterrebbe una completa desaturazione dei colori della nebulosa (che acquisterebbe un color salmone pallido) e, al contrario, una soprassaturazione degli aloni intorno alle stelle, con la comparsa di antiestetici difetti colorati, come si può vedere dall'immagine seguente.

HA RGB Con H Su L

Bisognerà quindi utilizzare una tecnica diversa.

Esistono numerose tecniche per fondere la componente Halfa in un'immagine RGB: in un precedente tutorial ho spiegato come fondere l'Halfa nelle galassie a spirale (Accentuare le regioni HII nelle galassie a spirale), qui si vedrà un modo, relativamente semplice, per inserire la componente a banda stretta in una nebulosa.

Il metodo è una semplificazione di quello descritto da Vicent Peris sul sito ufficiale di PixInsight (A New Approach to Combination of Broadband and Narrowband Data).

Prima di fondere effettivamente le immagini, è possibile eseguire operazioni preliminari come la riduzione dei gradienti e l'eventuale riduzione del rumore in fase lineare.

Una volta che le due immagini sono pronte si può procedere alla fusione, che avverrà in due passaggi: prima l'Halfa, moltiplicato per un'opportuna costante di potenziamento, verrà inserito nell'RGB in modo da recuperare la differenza di dinamica con le stelle.

Questa operazione migliorerà la visibilità della nebulosa, andando però ad alterare completamente il colori.

Nella seconda fase il bilanciamento cromatico verrà ripristinato utilizzando i canali di crominanza dell'immagine RGB originale.

Per inserire il contributo Halfa nell'immagine RGB si utilizzerà PixelMath, prima però è necessario determinare il valore di fondo cielo dell'immagine in modo da sottrarlo alla stessa per evitare di andare ad alterare il valore di fondocielo dell'immagine RGB.

Si crei quindi una piccola preview in una zona dell'immagine Halfa in cui è presente solo fondo cielo (qualche stella, a patto che non sia troppo luminosa, non crea problemi) e da questa generare una nuova immagine (Menu Preview-Make Image).

Questa è l'immagine di riferimento per il fondo cielo e verrà chiamata HA_BG il valore di fondo cielo può essere calcolato tramite la funzione mediana di PixelMath    ( med(HA_BG)  ).

Aprire il process PixelMath e disattivare la casella di controllo "Use a single RGB/K expression", in questo modo sarà possibile inserire tre espressioni diverse per i canali RGB.

in canale Halfa viene inserito solo nel rosso, una volta "depurato" dal valore di fondo cielo; i canali Verde e Blu invece restano invariati.

Viene definito anche un Symbol N che permette di "potenziare" l'intensità del canale Halfa prima di inserirlo nel canale R.

Ecco le espressioni:

R/K:  RGB+N*(HA-med(HA_BG))

G: RGB

B: RGB

Symbols: N=35

Dove RGB e HA, ovviamente, sono rispettivamente gli identificatori dell'immagine RGB e di quella Halfa.

Il valore di N deve essere determinato per prove ed errori, quindi può variare, anche di molto, da immagine ad immagine.

Prima di applicare il processo all'immagine RGB, attivare l'opzione "Create new Image" in modo da creare una nuova immagine (visto che l'RGB servirà in un secondo tempo).

  

Nell'immagine che segue si vede l'effetto dell'applicazione del process all'immagine RGB: passando con il mouse sopra l'immagine, si vede il "prima" e il "dopo".

12 PixelMath

 Come accennato precedentemente, il colore della nebulosa e delle stelle è cambiato completamente, virando pesantemente verso il rosso, ma questo non è un problema perchè si andrà a ripristinare la crominanza prendendola dall'immagine RGB con i colori calibrati.

Per farlo è però necessario passare attraverso una trasformazione di istogramma per rendere le immagini non lineari.
Nel caso specifico di questa elaborazione, per l'immagine RGB si è fatto prima una trasformazione preliminare utilizzando HistogramTransformation  e poi si è completato il procedimento tramite MaskedStretch, in modo da mostrare le parti più deboli della nebulosa mantenendo però un buon colore sulle stelle.
All'immagine composta Halfa-RGB invece è stata semplicemente applicata una trasformazione con HistogramTransformation equivalente all'AutoSTF (ScreenTransferFunction automatica col bottoncino "nucleare").

Ora, per completare la fusione, è sufficiente estrarre dal'immagine Halfa-RGB il canale di luminanza, per poi inserirlo nell'immagine RGB.

Però il rischio desaturazione descritto sopra è sempre in agguato, per mitigarlo è possibile applicare il trucco descritto nel tutorial di Vicent Peris.

Per prima cosa è necessario modificare lo spazio di lavoro RGB facendolo diventare lineare: per far questo aprire il process RGBWorkingSpace impostare i tre canali RGB tutti allo stesso valore e, soprattutto, impostare il gamma a 1.

Il processo deve essere applicato sia all'immagine RGB che all'immagine Halfa-RGB.

14 RGB WS 1

Dopo aver applicato RGBWorkingSpace, apparentemente, le immagini non cambieranno, cambierà però il modo con cui viene calcolato il canale di luminanza a partire dai valori RGB; a titolo di esempio si osservi l'immagine seguente, nella quale a sinistra è visibile il canale di luminanza estratto con Gamma=2.2 (impostazione predefinita dello spazio colore sRGB) mentre a destra si vede quello estratto con Gamma=1.

13 Diverse L

 

Come si può notare, Gamma=1 permette di avere una luminanza meno contrastata, che risente meno dell'effetto di alterazione della saturazione descritto sopra.

Dopo aver estratto la luminanza dal'immagine Halfa-RGB è sufficiente inserirla nell'immagine RGB: per farlo si può utilizzare il process ChannelCombination oppure, meglio, LRGBCombination.

In questo secondo caso è sufficiente indicare l'immagine di luminanza nel canale L e disabilitare le caselle di controllo dei canali RGB in modo che il process integri la nuova luminanza nell'immagine RGB.

Il vantaggio di LRGBCombination rispetto a ChannelCombination è che è possibile ritoccare luminanza e saturazione direttamente durante l'integrazione:

I cursori Lightness e Saturation controllano le curve di trasferimento tra L e RGB, se spostati a destra rendono la luminanza più scura o la Saturazione meno intensa, se spostati a sinistra schiariscono l'immagine finale oppure ne aumentano la saturazione.

 

Nella figura che segue si nota l'effetto dell'inserimento dell'Halfa nell'immagine RGB (passare sopra l'immagine per vedere l'effetto della composizione):

 15 LRGB

 

Dopo aver integrato la luminanza nell'RGB è necessario ripristinare il Gamma predefinito dello spazio colore sRGB, lasciando comunque i coefficienti di luminanza tutti uguali.

16 RGB WS 2

 

 Da questo punto in poi l'elaborazione è analoga a quella di una normale immagine LRGB.

In questo caso è stato dapprima utilizzato lo script DarkStructureEnhance, con le impostazione di default.

17 DarkStructure

 

Lo script evidenzia bene le nebulose scure nella parte alta della nebulosa.

Il passo successivo è esaltare leggermente i contrasti all'interno della nebulosa con LocalHistogramEqualization: questo processo esalta i contrasti delle strutture, ma, se usato indiscriminatamente su tutta l'immagine, ne aumenta il rumore.

Per questo è necessario preparare un'opportuna maschera di protezione sul cielo: si estragga il canale di luminanza e, tramite HistogramTranformation, si vada a scurire il fondo cielo in modo da renderlo completamente nero.

Quindi con MultiscaleLinearTransform, si sfumi la maschera in modo da nascondere tutti i dettagli: per farlo rimuovere, facendo doppio click sul segno verde di spunta, un certo numero di livelli.

Il numero dipende dal soggetto e va provato di volta in volta: in questo caso sono stati rimossi i primi 8 livelli.  

18 Maschera

 

Ottenuta la maschera la si applichi all'immagine trascinando la linguetta con l'ID sopra ba banda grigia a sinistra dell'immagine HalfaRGB in modo da proteggere il fondocielo dall'operazione successiva.

Si apra il process LocalHistogramEqualization, e si imposti la dimensione del kernel in modo da evidenziare i dettagli che si intente evidenziare, in questo caso si è scelto un kernel da 80 pixel per esaltare i dettaglie della nebulosa.

Anche in questo caso, la dimensione ottimale, va trovata per prove successive.

Il Process LocalHistogramEqualization può essere molto invasivo dando all'immagine un'aspetto totalmente innaturale, si consigla di utilizzarlo con estrema parsimonia: se si vede che l'effetto diventa troppo invasivo, si può ridurre avbbassando il valore di Amount.

Generalmente un valore compreso tra 0.4 e 0.7 è più che sufficiente.

Sull'immagine sottostante si può vedere l'effetto di LHE sull'immagine (passare il mouse sull'immagine per vedere l'effetto prima e dopo l'applicazione del process.

19 LHT

 

 

 

Per completare l'elaborazione si vuole aumentare leggermente la saturazione del colore.

Anche in questo caso è opportuno proteggere il fondo cielo tramite una maschera di luminanza; a differenza di quella creata al passaggio precedente, quella per la saturazione dovrà essere molto meno sfumata: è sufficiente rimuovere 2-3 layer wavelet, dopo aver scurito il fondocielo, per ottenere l'effetto dsiderato.

Dopo aver applicato la maschera è possibile aumentare la saturazione tramite il process CurveTransformation: si attivi il canale S sulla barra in basso, e si disegni una curva convessa, più ripida nella parte sinistra del grafico.

In questo modo si andranno a saturare maggiormente le zone meno sature, agendo invece in maniera più blanda sulle regioni già sature.

20 Saturazione

 

 

Ed ecco l'immagine completa: Fare click per vederene la versione a piena risoluzione.

Ringrazio l'amico Luigi Fontana che ha messo gentilmente a disposizione le sue immagini per questo tutorial.

99 HA RGB FINALE

 

 

Joomla templates by a4joomla