Al termine di una stagione particolarmente avara, ho pensato di fare un consuntivo, questa volta usando un punto di vista diverso.
Durante la stagione la nostra (io e Guidi) attenzione è stata data alla risoluzione, elaborando in canali R in modo da estrarre il massimo dettagli che siamo stati capaci. Facendo così, però, i canali G e B (con il seeing Italiano) non sono mai stati all'altezza del canale R. Usando canali con risoluzione diversa il risultato estetico di una tricromia (specie se RRGB) lascia un poi' a desiderare.
In questo riassunto finale vorrei invece mettere l'enfasi sulla qualità (nel senso di somiglianza alla visione all'oculare) delle immagini. Perciò, ho rivisto i raw che avevo e li ho elaborati con lo scopo di produrre degli RGB.
Come? Sostanzialmente usando lo stesso identico processo, con una piccola differenza soltanto per quanto riguarda la deconvoluzione iniziale.
Ecco il processo che uso. Questo che segue è il codice Mathematica che ho usato (chi ha Mathematica può rifare la stessa cosa, chi ha mtalab può adattare il codice).
1) Primo passa a partire dal raw è una deconvoluzione, con un raggio r da scoprire, il cui scopo è quello di recuperare parte della sfocatura prodotta dalla turbolenza. Il comando che segue applica una deconvoluzione con una PSF gaussiana di raggio r al raw (ovviamente bisogna prima caricare nel simbolo raw l'immagine grezza). Il raggio di deconvoluzione è circa quello della PSF turbolenta. Per me ha funzionato r=2-2.2 pixel per il canale R (dato un campionamento di 0.1" significa circa 0.4-0.5" FWHM). Per il canale G ho dovuto usare r=2.6 e per B circa r=3. E' facile scoprire r, perché se è troppo grande viene fuori una buccia d'arancia. Se è troppo piccolo non ha effetto. In pratica si sceglie r il più grande valore che non produce buccia d'arancia nell'immagine finita.
im=
ImageDeconvolve[raw,
GaussianMatrix[r]]
2) Con il passo precedente si recupera un po' del danno fatto dal seeing. A questo punto si può aumentare il contrasto. Io lo faccio applicando una maschera unsharp così:
im=
ImageAdjust@
Image[50 Clip[
ImageData@im - (1 - 1/50)
ImageData@
GaussianFilter[im, 2.], {0, 1}]]]
In sostanza sottraggo dall'immagine convertita in una matrice di livelli (ImageData[/b]@im) i livelli della stessa immagine sfuocata di 2 pixel. Aumento il tutto 50 volte. Questo dovrebbe essere circa equivalente a passare una maschera di contrasto con raggio 2 pixel e "intensità" 50.
http://en.wikipedia.org/wiki/Unsharp_maskingQuesta operazione alza il contrasto in maniera uniforme su tutte le frequenze. Fino a 50 volte sulle frequenze più fini, che diventano visibili con un effetto pepe e sale finissimo. Sarebbe rumore ma visivamente dà l'impressione di dettagli finissimi al limite della percezione. Quindi cercando un impatto visivo è meglio lasciarlo.
A questo punto il canale è pronto. Ho elaborato tutti i canali allo stesso modo (eccetto il raggio di deconvoluzione che va adattato al seeing del canale).
Così facendo
si aumenta il contrasto con la stessa curva. Che è la precondizione per ottenere una immagine "naturale". Il secondo accorgimento, che influisce sul bilanciamento del bianco, è regolare i livelli in modo tale che il punto più luminoso sia al 100%. Questo Mathematica lo fa con il comando
ImageAdjust. La logica che sta dietro a questa operazione è che, se nell'immagine c'è un punto bianco, allora questo è al 100% su ogni canale. Imponendo che il punto più luminoso sial al livello massimo su ogni canale si opera quindi un bilanciamento automatico del bianco.
Riprese disponibili. In questa stagione, i giorni in cui sono state fatte riprese da Marco Guidi sono stati:
02/11/2014
02/02/2015
11/02/2015
18/02/2015
19/02/2015
10/03/2015
12/03/2015
La stagione non è ancora finita (Giove è circa 40", era 36" il 2/11/14). Forse (meteo permettendo) si potrà aggiungere qualche cosa. Comunque, resta il fatto che ci sono state in tutto 7 notti utili, e questo dice molto sulla stagione.
Nei prossimi post presenterò gli RGB che si possono ottenere da queste 7 notti.