Trasformazioni nel dominio spaziale Andrea Torsello Dipartimento di informatica Università Ca’ Foscari via Torino 155, 30172 Mestre (VE) Trasformazioni I(x,y) immagine da R2 a Classe di trasformazioni di immagini f: R2->R2 I->f(I) f(I)(x,y)=I(f(x,y)) f trasforma la geometria del piano immagine. Valori fuori campione • Nel continuo f e’ puntuale (richiede informazioni di I solo nel punto trasformato) I’=f(I) => I’(x,y) = I(f-1(x,y)) • Nel discreto le informazioni sono limitate ed il punto trasformato potrebbe non cadere in nessun campione • Es. Traslazione di (0.5,0)T f(x,y)=(x-0.5,y)T I’(x,y)=I(x+0.5,y) ma I campioni esistono solo per indici interi! Nearest Neighbour • Bisogna stimare I valori usando informazioni dei campioni vicini (interpolazione) • 1a possibilità: Nearest Neighbour uso il valore di I alla coordinata intera piu` vicina a f-1(x,y) [Round(f-1(x,y))] I’(x,y)=I(Round(f-1(x,y))) Nearest Neighbour • Nel caso della traslazione di (a,0)T I’(x,y)=I(Round(x+a,y))=I(x+a,y) I viene traslata della parte intera di a • Cosa succede nel caso di uno zoom? compaiono artefatti (blocchi) Nearest Neighbour • In generale I cambi di scala portano ad artefatti. Interpolazione blineare • 2a possibilità: Interpolazione bilineare Vengono usati valori di tutti e 4 I punti a coordinate intere attorno a f-1(x,y) (combinazione lineare dei valori dell’immagine) I’(x,y)=aI (x’,y’)+bI(x’+1,y’)+gI(x’,y’+1)+dI(x’+1,y’+1) dove x’<=sx-1(x,y)<=x’+1 e y’<=sy-1(x,y)<=y’+1 Dx = sx-1(x,y)-x’ Dy = sy-1(x,y)-y’ a=(1- Dx)(1- Dy) b= Dx(1- Dy) g=(1- Dx) Dy d= Dx Dy Dy s-1(x,y) Dx NN Vs interpolazione bilineare NN Vs interpolazione bilineare Zoom NN vs bilineare Zoom NN vs bilineare Zoom out • Nell’immagine di destra il punto nero incide per 1/81 di tutta l’immagine. Dopo il cambio di scala incide per 1/9. • Per comprendere il problema dobbiamo pensare a come da una immagine continua otteniamo una immagine discreta. Campionamento e Quantizzazione Campionamento e Quantizzazione Campionamento e Quantizzazione Effetti del campionamento Effetti del campionamento Effetti della quantizzazione Passaggio continuo-discreto Passaggio discreto-continuo Basi funzinali 1 0.75 0.5 1 0.25 0 0 -1 0 -1 1 Interpolazione bilineare • Equivalente a ricostruzione usando una base bilineare e ricampionamento puntuale. • Se non c’è cambio di scala approssima ricostruzione e ricampionamento usando base a gradini • ricostruzione e ricampionamento usando base a gradini risolve I problemi connesi con il cambio di scala, ma è oneroso da calcorare => approssimazione numerica per sottocampionamento. Push o pull? • 1. 2. • 2 possibilita’: Per ogni base/gradino B in C’ sommare contributo basi/gradini in C all’interno di s-1(B) Per ogni base/gradino in C accumulare il contributo in tutti I punti di C’ Con scale molto diverse conviene usare 1a possibita’ e stimare I (s B 1 ( x, y))dxdy campionando B Demosaicing Altri usi per l’interpolazione Bayer Pattern • Nelle macchine fotografiche digitali ogni detettore rileva solo un colore secondo pattern spaziali stabiliti (Bayer pattern) • Bisogna ricostruire in ogni pixel le informazioni sui canali mancanti • La ricostruzione dell’immagine finale può essere effettuata attraverso interpolazione Interpolazione Distorsioni ottiche Pinhole camera Lenti Distorsione da lenti reali Effetto bariletto Correzione effetto bariletto p' p 1 k p 2 Effetti piu’ complicati p ' p (1 a p b p ) 2