Recentemente ho partecipato ad un concorso di elaborazione promosso dal sito di Martin Liersch.
Il concorso consisteva nell'elaborazione di una fotografia di M8 ripresa sotto un cielo cittadino piuttosto inquinato: questo è un esempio di come PixInsight possa essere grande nella gestione di queste immagini problematiche.
Questi sono i dati tecnici dell'immagine:
Image credits Martin Liersch (Profilo Google+)
M8, the Lagoon Nebula, il 18/07/2014.
Strumentazione:
SkyWatcher EQ-6
Celestron C6N
Canon EOS 1000D
Inseguimento senza autoguida
62 Light frames
Esposizione 60 sec
ISO1600
40 Dark frames
21 Bias frames
Il tutorial si concentra su diverse questioni:
- Gestire i gradienti luminosi: ABE - DBE
- Calibrazione dei colori
- Riduzione del rumore in fase lineare: MMT
- Deconvoluzione per la correzione del micromosso
- Correzione dell'aberrazione cromatica atmosferica nelle DSLR o OSC
- Da lineare a non lineare: HistogramTransformation - CurvesTransformation
- Aumentare la saturazione dei colori
- Migliorare il contrasto: LocaHistogramEqualization
L'inizio
Iniziamo aprendo l'immagine composita nel working space di PixInsight:
Come sempre, dal momento che l'immagine è ancora lineare, la nebulosa è appena visibile, quindi applichiamo una curva di trasferiento a video automatica cliccando sul bottoncino Nucleare del processo STF (ScreenTransfertFunction):
Il processo non modifica fisicamente l'immagine , che rimane lineare, ma applica una trasformazione di istogramma non lineare solo alla rappresentazione a video.
Ora che l'immagine è visibile si possono notare alcuni problemi.
Innanzi tutto dovremo ritagliare l'immagine escludendo i bordi dove i frame singoli non si sovrappongono completamente, quindi dovremo affrontiare i gradienti luminosi.
Iniziamo quindi a ritagliare l'immagine usando il processo DynamicCrop, selezionando l'area desiderata e confermando l'operazione con il pulsante della V verde sulla finestra di processo.
Affrontare lo sfondo
Analizzando l'immagine si nota la presenza di gradienti luminosi apparentemente provenienti da due sorgenti diverse:
- Un gradiente praticamente lineare dal basso verso l'alto (Inquinamento luminoso?)
- Un andamento circolare quasi al centro dell'immagine (Vignettatura dovuta alla mancanza del flat field?)
Se l'interpertazione delle sorgenti del gradiente è corretta allora la prima componente è di tipo additivo, mentre la seconda è di tipo moltiplicativo.
Per correggere la prima sorgente utilizziamo AutomaticBackgrounExtractor con le impostazione predefinite ad eccezione dei parametri tolerance nella sezione local rejection (impostata a 1.3 invece di 1.0) e Function Degree nella sezione Interpolation and Output (1 al posto di 4).
L'ultimo paramento è molto importante: impostando il grado del polinomio a 1 ci si assicura che il gradiente generato abbia un andamento lineare.
Dal momento che la sorgente del gradiente è additiva usiamo come metodo di correzione subtraction (sottrazione).
Ecco il background sintetico generato e l'immagine corretta
Ora dobbiamo gestire la vignettatura non corretta: per questo compito utilizzaremo DinamicBackgroundExtractor.
Creiamo alcuni campioni tutto attorno al centro evitando accuratamente le parti più deboli della nebulosa: dal momento che lo sfondo è così disomogeneo sarè necessario aumentare la tolleranza nella sezione Model Parameters (1) a 1.0 (al posto del valore predefinito di 0.5)
Dal momento che la vignettatura è un fattore moltiplicativo utilizziamo Division (Divisione) come metodo di correzione.
Ecco il background sintetico generato e l'immagine corretta
Ora il fondo cielo è omogeneo e possiamo continuare con il passo successivo.
calibrazione dei colori
In PixInsight la calibrazione dei colori è un processo in due passaggi e, per funzionare correttamente, deve essere effettuato in fase lineare.
Il primo passo è la neutralizzazione del background: dal momento che su questa immagine abbiamo eseguito la correzione dei gradienti la neutralizzazione non dovrebbe essere necessaria, comunque preferisco effetuarla ugualmente.
Creiamo alcune preview in regioni dove domina il fondocielo quindi usiamo lo script PreviewAggregator nel gruppo Utilities che fonderà le preview desiderate in un unica immagine da usare come riferimento per il fondo cielo, fatto ciò aprire il processo BackgroundNeutralization
Notare che il limite superiore è stato posto a 0.03, un po' più alto del valore mediano del fondocielo.
Notare anche che, come immagine di riferimento, è stata scelta Aggregated ossia quella creata dal PreviewAggragator.
Applicare il processo all'immagine della nebulosa trascinandovi sopra l'icona del triangolo blu: ora il fondocielo dovrebbe avere un colore neutro.
A questo punto l'immagine Aggregated non rappresenta più il fondocielo (che è stato neutralizzato nell'immagine originale) quindi non ne abbiamo più bisogno e possiamo chiuderla senza salvare.
Ora è il momento di calibrare i colori: per farlo abbiamo bisogno del processo ColorCalibration con un riferimento per il bianco e, di nuovo, un riferimento per il fondocielo.
Dal momento che il campo inquadrato è ricco di stelle useremo quest'ultime come riferimento per il bianco.
Come riferimento per il fondocielo useremo le stesse preview utilizzate per la neutralizzazione: usiamo di nuovo PreviewAggregator per create l'immagine aggregata.
Come detto sopra questa immagine è diversa da quella precedente perchè nel frattempo il fondocielo è stato neutralizzato.
Ecco le impostazioni per il ColorCalibration
Da notare che il campo White reference image è stato lasciato vuoto (verranno usate le stelle dell'intera immagine), il limite superiore è stato impostato a 0.44 in modo da escludere i centri saturati delle stelle che non contengono informazioni utili, Structure detection è attivato e come Background Reference Image è stata impostata Aggregated.
Passare il mouse sopra l'immagine sottostante per vedere un confronto Prima-Dopo la calibrazione dei colori.
riduzione del rumore
Dal momento che l'immagine è stata acquisita sotto un cielo piuttosto luminoso, è piuttosto rumorosa, soprattutto sul fondocielo.
PixInsight ha noumerosi strumenti per la riduzione del rumore sia in fase lineare che non lineare, uno dei miei preferiti è MultiscaleMedianTransform (MMT).
MMT è uno strumento molto flessibile e potente che può essere utilizzato indifferentemente in fase lineare e non lineare; l'ultima release poi ha una funzione di creazione di una maschera che aiuta il fotografo ad applicare la riduzione del rumore solo dove serve.
Ridurremo il rumore nei primi tre livelli wavelet con le impostazioni seguenti.
Notare che l'opzione Linear Mask è attiva con un fattore di amplificazione 50
Passare il mouse sopra l'immagine sottostante per vedere un confronto Prima-Dopo la riduzione del rumore.
Deconvoluzione
Ad un'attenta osservazione l'immagine mostra un certo stele leggermete ovalizzate probabimente a causa di una piccola inaccuratezza di inseguimento: il problema può essere semplicemente corretto con la Deconvoluzione.
La deconvoluzione deve essere effettuata su dati lineari, essento l'immagine RGB la deconvoluzione verrà applicata sul canale Y dello spazio colore CIE XYZ.
Dal momento che all'immagine è stato applicato lo spazio di lavoro RGB predefinito, il canale CIE Y non è lineare, quindi il primo, importantissimo passo è modificare i parametri dello spazio di lavoro utilizzando il processo RGBWorkingSpace.
Notare che tutti e tre i coefficienti di luminanza sono stati posti a 1 e, cosa molto importante, il parametro Gamma è stato posto a 1 rendendo il canale CIE Y lineare.
Applichiamo i cambiamenti trascinando il triangolo blu sopra l'immagine RGB.
Ora siamo pronti per applicare la deconvoluzione con una PSF da micromosso.
La lunghezza di 5 e le 50 iterazioni sono state trovate per prove ed errori
Passare il mouse sopra l'immagine sottostante per vedere un confronto Prima-Dopo la deconvoluzione.
Correzione dell'aberrazione cromatica atmosferica
Dal momento che l'indice di rifrazione atmosferico varia col variare della lunghezza d'onda, l'atmosfera si comporta come un prisma: questo effetto crea, nelle camere a colori, un alone blu al di sopra delle stelle e un alone rosso al di sotto.
Questo effetto può essere corretto utilizzando il processo ChannelMatch che permette di spostare i tre canali RGB indipendentemente,
In questa immagine è sufficiente spostare il canale rosso leggermente in alto, mentre quello blu va spostato in basso: l'entità dello spostamento può essere trovata semplicemente per prove ed errori.
Passare il mouse sopra l'immagine sottostante per vedere un confronto Prima-Dopo l'allineamento dei canali.
Delinearizzazione
Nonostante tutto il lavoro fatto l'immagine è ancora lineare, quindi la nebulosa, nei dati originali, è quasi invisibile: è venuto il momento di applicare una trasformazione di istogramma non lineare.
Per evidenziare la nebulosità senza schiarire troppo il fondocielo utilizzeremo una combinazione di processi HistogramTransformation and CurvesTransformation.
Dopo aver aperto le finestre di processo accertarsi di aver attivato il pulsantino col segno di spunta un basso a destra in modo da visualizzare l'istogramma dell'immagine selezionata.
Primo passaggio HistogramTransformation
Secondo passaggio HistogramTransformation
CurvesTransformation
Effettuando qualsiasi trasformazione di istogramma assicurarsi di non tagliare i dati a destra e a sinistra dell'istogramma o si perderanno informazioni preziose
Alla fine del processo l'immagine dovrebbe apparire come quella qui sotto
Aumentare la saturazione
Il processo CurvesTransformation può anche essere usato per aumentare la saturazione dei colori.
comunque la saturazione non può essere aumentata indiscriminatamente su tutta l'immagine perchè nel fondocielo si nasconde un sacco di rumore colorato.
Si deve quindi costruire una maschera in grado di proteggere lo sfondo e aumentare la saturazione solo nelle zone a S/N più alto:
Estrarre il canale di luminanza (CIE Y) usando il processo ChannelExtraction.
Proteggiamo maggiormente lo sfondo tagliando completamente la parte sinistra dell'istogramma della maschera e sfumiamola rimuovendo i primi tre layer wavelet con MultiscaleLinearTransform
Infine la maschera deve essere applicata all'immagine con la voce di menu MASK-Select Mask oppure, più semplicemente, trascinando la linguetta della maschera (nell'angolo in alto a sinistra dell'immagine) sopra la linguetta dell'immagine da mascherare: la linguetta si colorerà di marrone per indicare che la maschera è stata applicata e le aree protette si coloreranno di rosso.
Dal momento che la visualizzazione della maschera nasconde l'immagine sottostante, possiamo disattivarla semplicemente selezionando la voce di menuMASK-Show Mask: la maschera è ancora applicata, ma non è visibile.
Per aumentare la saturazione utilizzaremo CurvesTransformation sull'immagine mascherata
Come si può vedere dell'immagine sopra, nella finestra CurvesTransformation, abbiamo selezionato il canale S (Saturazione) utilizzando una curva più ripida nella parte sinistra, aumentando molto la saturazione nelle zone poco sature e agendo in maniera più delicata nelle zone già sature intrinsecamente.
AUmentare il contrasto
Come passo finale vorrei dare un po' più di vita alla nebulosa aumentando il contrasto tra le zone chiare e scure.
PixInsight offre diversi strumenti per raggiungere questo obiettivo, tra cui HDRMultiscaleTransform or MultiscaleLinearTransform: In questo esempio userò LocalHistogramEqualization.
Questo processo è molto aggressivo, soprattutto sul fondocielo, dove tende ad aumentare moltissimo il rumore, quindi è meglio proteggere le regioni più scure con una maschera adatta.
Il nostro scopo qui è applicare il processo solo alla nebulosa senza toccare le stelle e, soprattutto, il fondocielo.
Possiamo creare la maschera semplicemente modificando quella utilizzata per l'aumento di saturazione nel passo precedente rimuovendo i primi otto layer wavelet: dopo l'applicazione del processo sopravviveranno solo le struttire più grandi.
Dal momento che la maschera erà già applicata all'immagine non è necessario farlo di nuovo: ora possiamo applicare il processoLocalHistogramEqualization
Il parametro Kernek Radius controlla la dimensione dei dettagli che verranno evidenziati, il Contrast Limit difinisce l'intensità con cui viene applicato il processo: questi parametri vengono trovati per prove ed errori
Il tocco finale
Come tocco finale, dopo aver rimosso la maschera, possiamo rifinire la dinamica dell'immagine con il processo CurvesTransformation
ed ecco il risultato finale: Cliccare sull'immagine per la versione a piena risoluzione.