Home

Page Rank Check    





Teoria della CG: Luminosità vs Gamma Correction; versione testuale
Articoli - Teoria della Computer Grafica 3D
Scritto da RedBaron85   
Martedì 07 Giugno 2011 13:00

Teoria della CG: Luminosità vs Gamma Correction; versione testuale

NOTA --- Per visualizzare la versione video di questo tutorial, cliccare qui

 

Salve a tutti,

in questo tutorial metteremo a confronto l'utilizzo dello strumento di variazione di luminosità di base e l'operatore Gamma per rendere più o meno luminose delle immagini. La variazione di luminosità è un'operazione abbastanza intuitiva, mentre per la correzione Gamma dobbiamo spendere qualche parola...

 

Detto in maniera molto brutale, il Gamma è un coefficiente, ed in particolare si ha che un valore in output è dato dall'input elevato al valore Gamma; questa è, in generale, la regola più adottata, ma alcuni sistemi considerano come esponente dell'input la frazione 1/Gamma, per cui fate attenzione a qual è la convenzione adottata dal vostro sistema.

 

La correzione Gamma è stata introdotta principalmente per risolvere alcuni problemi dei vecchi monitor CRT (tubo a raggi catodici) ma viene utilizzata anche per la conversione di immagini dall'analogico al digitale, o comunque che devono essere visualizzate o proiettate su sistemi diversi (ad esempio, schermi LCD o stampanti)

 

Il valore Gamma è utilizzato anche come misura del contrasto offerto dalle pellicole fotografiche (in generale, è un indice della risposta di un segnale rispetto all'input); la codifica e la decodifica del Gamma vengono utilizzate anche in fase di salvataggio e apertura delle immagini digitali e, a seconda delle piattaforme hardware e software, i valori dei coefficienti possono variare sensibilmente.

 

 

Nel nostro caso, lo utilizzeremo – in maniera molto, molto banale – per rendere più o meno luminosa un'immagine; in particolare, utilizzeremo il Nodes Editor di Blender 3D 2.5, per vedere quali strumenti ci offre il programma per questo scopo.

 

La correzione Gamma è un'operazione non lineare, profondamente diversa dalla somma o dalla moltiplicazione, che sono operazioni lineari; l'immagine seguente serve a comprendere meglio la differenza: il grafico mostra, sull'asse X, i valori “originali” di un pixel, mentre sull'asse Y abbiamo i valori in uscita dopo aver effettuato l'operazione.

Grafico risposta operatori somma moltiplicazione gamma su immagini digitali

(cliccare sull'immagine per ingrandirla)

La scala dei valori è 0.0 (nero puro) – 1.0 (bianco puro), qualora alcuni valori dovessero superare questi estremi, in negativo o in positivo, verranno troncati a 0 o 1.

 

Nel primo grafico, che mostra l'immagine originale senza alcuna operazione applicata, l'output è identico all'input, quindi la curva di trasformazione dei valori è una retta.

 

Nel secondo grafico, applichiamo +0.5 (con un'operazione di somma, quindi) ai valori in input: notiamo che abbiamo spostato in alto la curva, perdendo il nero assoluto (perché qualsiasi pixel a 0.0 partirà da 0.5, e così via) e abbiamo portato a bianchi molti pixel, ed in particolare tutti quelli che avevano un valore maggiore uguale a 0.5, e questo perché la scala dei valori è 0.0-1.0, con 1.0 che rappresenta il bianco puro.

 

Nel terzo grafico, moltiplichiamo i valori originali per 1.5: questa volta il nero puro resta tale, visto che 0 per un fattore moltiplicativo fa 0, ma ancora una volta corriamo il rischio di portare a bianco puro certi pixel e, di conseguenza, di perdere delle informazioni sull'immagine originale.

 

Il quarto grafico mostra l'effetto dell'operatore Gamma con valore 0.6 secondo la convenzione input elevato a Gamma: la trasformazione è una curva che congiunge il nero puro e il bianco puro aumentando tutti gli altri valori ma mantenendoli nel range originale.

 

Il nero puro resta tale e così anche il bianco, mentre tutti gli altri colori risultano più luminosi in maniera “naturale”, nessun pixel nel range intermedio tra nero e bianco viene “troncato” a uno dei due valori, evitando tra l'altro la perdita di informazioni.

 

Per utilizzare la Gamma Correction in Blender, è sufficiente aggiungere un Nodo di tipo Color-Gamma, passare un'immagine sulla socket di input e prelevarla su quella di uscita e specificare un valore di correzione Gamma all'interno del Nodo; Blender utilizza la convenzione input elevato a Gamma per effettuare la conversione, con valori di input espressi nel range 0.0-1.0, quindi con valori maggiori di 1 per Gamma avremo immagini più scure, mentre con valori minori di 1 avremo immagini più chiare (ad esempio, con Gamma 0.7 un pixel con valore di input 0.5 assumerà valore di output 0.61).

Utilizzo della Gamma Correction nel Nodes Editor di Blender 3D 2.5

(cliccare sull'immagine per ingrandirla)

Il Nodes Editor dell'esempio mostra, mediante gli istogrammi, la perdita di informazione dovuta ad una semplice addizione, ottenuta mediante il Nodo Brightness/Contrast, ossia Contrasto e Luminosità, con un fattore additivo per la luminosità: i pixel scuri, al di sotto di una certa soglia, sono andati semplicemente perduti, mentre Gamma li mantiene ancora, com'è possibile verificare osservando l'istogramma in arrivo dal Nodo Gamma, in basso.

 

Bene, per questo brevissimo tutorial è tutto;

bye! ;-)

Tags:     videotutorial      informatica computer      computer grafica      computer graphics      redbaron85      teoria della cg      computer grafica      computer graphics      elaborazione immagini      brightness      gamma correction      luminosità      image processing
Ultimo aggiornamento Giovedì 12 Aprile 2012 16:08
 

Ti è piaciuto questo articolo ? Condividilo !



RedBaron85.com Forum community banner

Non hai trovato quello che cercavi ?
Ricerca personalizzata
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.

Milanese Francesco - Partita IVA: 04950350878

AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials