Foveonizzazione
La seguente procedura permette di simulare il comportamento del sensore Foveon manipolando i dati raccolti da un sensore con matrice Bayer.
I software utilizzati in questa procedura sono DCRaw e GIMP: il primo e' usato per estrarre i dati grezzi dal PEF (o dal DNG) senza demosaicizzazione e - eventualmente - senza correzioni del bilanciamento del bianco; il secondo e' usato come banco di lavoro per l'estrazione delle componenti e per assemblare l'immagine finale.
E' possibile scaricare DCRaw per piattaforme Windows e MacOS da questo sito: http://www.insflug.org/raw/Downloads/
DCRaw e' un programma a linea di comando.
Passo 1: Estrazione dei dati grezzi
Nell'estrarre i dati grezzi e' possibile dire a DCRaw se applicare o meno il bilanciamento del bianco. Questo comportamento e' controllato da un parametro in linea di comando.
Modalita' senza correzione del bilanciamento del bianco:
- Codice: Seleziona tutto
dcraw -D _IGP6054.PEF
Modalita' con correzione del bilanciamento del bianco:
- Codice: Seleziona tutto
dcraw -w -d _IGP6054.PEF
(notare il parametro -D che diventa -d)
Finita l'elaborazione si ottiene in uscita un file di estensione .pgm: si tratta di un formato aperto e che - teoricamente - tutti i software dovrebbero aprire.
In questo tutorial (a differenza di quanto ho mostrato nella discussione della sulla SD1 ho voluto provare l'elaborazione con correzione del bilanciamento del bianco... comunque, a parte la diversa linea di comando, operativamente non ci sono differenze). Il mio file si chiama quindi _IGP6054.pgm (il vecchio .PEF non viene toccato).
Passo 2: Apertura del file e qualche considerazione
Aperto il file _IGP6054.pgm ci troviamo davanti ad una immagine in scala di grigi.
Nei dati raccolti dal sensore non ci sono colori ma solo luminosita'.
Ecco la matrice Bayer vista da "vicino":
A questo livello di ingrandimento e' subito evidente che la precedente immagine in scala di grigi e' tutta "quadrettata" come se ci fosse una trama: questo mosaico e' la matrice Bayer.
Nella matrice Bayer ogni pixel contiene l'informazione su una sola componente colore; su un sensore Foveon, invece, ogni punto contiene i dati di tutte e tre le componenti colore.
La disposizione delle componenti sulla matrice Bayer e' la seguente:
Si nota immediatamente che con questa matrice solo 1/4 della superficie del sensore viene usata per campionare la componente rossa, un'altro quarto per componente blu e la restante meta' del sensore usata per campionare la componente verde.
L'algoritmo di demosaicizzazione si occupa di spargere per propagazione in modo efficace le componenti mancanti sui pixel.
Per simulare il Foveon da questa matrice si useranno solo valori misurati attraverso la definizione di un fotodiodo "virtuale" che contenga tutte e tre le componenti. Per fare cio' assumeremo che per fare un fotodiodo virtuale servono 4 pixel della matrice:
Il nuovo fotodiodo ha pero' un costo: si perde la meta' della risoluzione ovvero l'immagine finale contiene 1/4 dei megapixel iniziali.
Passo 3: Estrazione del canale rosso
Cosi' com'e', la nostra matrice ha nel primo pixel in alto a sinistra il fotodiodo rosso (io la chiamo posizione 0,0 - il programma di fotoritocco puo' chiamarla anche 1,1). Come e' rosso quello, sono rossi anche quelli che troviamo a distanza di 2, 4, 6, 8, ecc. pixel sia in orizzontale che in verticale (notare che non e' una scacchiera quella che viene fuori, sono punti isolati).
Come scartare quindi i pixel blu e verdi ottenendo il solo canale rosso?
Il sistema e' quello di riscalare l'immagine della meta' senza applicare alcuna interpolazione. Questa operazione scarta le righe e le colonne in posizione dispari e lascia intatte quelle in posizione pari.
Quindi, come si vede, impostare la larghezza e l'altezza alla meta' della dimensione originale, impostare l'interpolazione su "none" e premere "Scale".
In questo modo si e' ottenuto il canale rosso "pulito".
Notare come non sia piu' presente il mosaico della matrice Bayer.
A questo punto selezionare tutta l'immagine, copiarla negli appunti e incollarla come nuova immagine:
Rinominare il layer con il nome "R" (ovvio che non e' obbligatorio ma se si vuol tenere un po' d'ordine male non fa):
Il canale rosso e' stato estratto.
Passo 4: Estrazione del canale verde
Per estrarre il canale del verde dobbiamo posizionare nel primo pixel in alto a sinistra un pixel verde. Nella matrice Bayer ce ne sono due: potete sceglierne uno qualsiasi dei due, io scelgo quello sotto il pixel rosso che abbiamo visto prima.
Per spostare l'immagine (e di conseguenza la matrice) utilizzate lo strumento per il movimento di immagini, layer e selezioni (quello con le quattro freccie su GIMP). Spostate di un pixel verso l'alto l'immagine - come aiuto ho segnato con una "R" rossa il punto dove va a finire il pixel rosso dell'immagine iniziale:
A questo punto ridimensionare il layer alla dimensione immagine:
Questa operazione fa scartare tutti i punti esterni all'area dell'immagine. E' un passaggio obbligato - almeno su GIMP - poiche' se non lo si fa il riscalamento non funziona a dovere.
A questo punto facciamo il riscalamento come abbiamo fatto per il canale rosso, poi selezioniamo tutta l'immagine, la copiamo negli appunti e - dove abbiamo salvato il canale rosso - incolliamo gli appunti come nuovo layer:
Rinominare il layer appena creato con "G" (sempre per tenere ordinate le cose):
Anche il canale verde e' stato estratto.
Passo 5: Estrazione del canale blu
L'estrazione del canale blu segue una procedura simile a quella per il canale verde con l'unica differenza che il primo pixel in alto a sinistra deve essere un pixel blu. Per fare cio' spostiamo l'immagine di un pixel piu' alto e di un pixel piu' a sinistra - la "R" rossa indica come prima la posizione del pixel rosso iniziale:
Di nuovo: scartiamo i pixel esterni all'area dell'immagine, riscaliamo sempre coi soliti parametri, selezioniamo tutta l'immagine, la copiamo negli appunti e la incolliamo nell'immagine di destinazione come nuovo layer. Anche in questo caso rinominiamo il layer in "B".
Passo 6: Assemblare l'immagine finale
Posizionarsi sull'immagine composta dai 3 layer delle componenti estratte. Non e' una cattiva idea riordinare i layer:
Andare su Colors -> Components e selezionare "Compose..."
Sulla maschera di composizione verificare che (1) il modello di colore sia RGB e che (2) i layer finiscano sul canale giusto (se siete stati ordinati tutto sara' gia' al suo posto ...).
Cliccare OK ed ecco pronta la nostra immagine a colori!
Considerazioni finali
Benche' si sia persa meta' della risoluzione (e quindi 3/4 dei nostri megapixel) nell'immagine risultante ci sono 3/4 dei dati raccolti dal nostro sensore (viene persa solo la seconda componente verde). E mentre questa immagine e' formata da soli dati reali, non si puo' dire lo stesso dell'immagine demosaicizzata dove 2/3 dell'informazione e' generata da un algoritmo (non e' una critica alla demosaicizzazione anche perche' essa non funziona affatto male).
Differenze con il Foveon riguardano la posizione dei fotodiodi: sul Foveon sono impilati, sul nostro pseudo-Foveon sono affiancati (come i punti dei vecchi monitor CRT). Potremmo a questo punto arrovellarci sulla convenienza o meno di questa soluzione in base ai diversi punti di fuoco dei vari colori, alle distorsioni che puo' avere la luce attraversando i fotodiodi, ecc. ecc. ... la cosa importante, per me, e' che - come per il Foveon - abbiamo un punto fatto da componenti misurate e non interpolate.
Ovviamente utilizzando un vero sensore Foveon si potrebbe andare a ritroso in questa procedura e generare la corrispondente matrice Bayer. Andandola a demosaicizzare si potra' ottenere un'immagine con il doppio della risoluzione (e il quadruplo dei megapixel).
Poiche' la matrice Bayer e' sempre fatta allo stesso modo, gli utenti di Photoshop posso salvare tutta questa procedura come una singola azione: diventera' quindi molto meno laborioso convertire una matrice in una immagine finita.
Spero vivamente di essere stato piu' chiaro nella spiegazione e di non aver dato troppe cose per scontate. Nel caso chiedete pure.
Ho preparato questo tutorial anche in PDF. Lo si puo' scaricare da qui.
Ciao
Jenner