Trasformazioni geometriche - Circe
Trasformazioni geometriche - Circe
Trasformazioni geometriche - Circe
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TRASFORMAZIONI GEOMETRICHE
TRASFORMAZIONI GEOMETRICHE<br />
<strong>Trasformazioni</strong> <strong>geometriche</strong>:<br />
• modificano la posizione relativa dei pixel, senza<br />
alterare il valore radiometrico. Assegnano al pixel<br />
nuove coordinate o nuovi valori di riga e colonna<br />
• immagini = trasformazioni nello spazio 2D<br />
= TRASFORMAZIONI PIANE<br />
X = F x<br />
Con x = coordinata iniziale<br />
X = coordinata finale<br />
F = operatore di trasformazione (funzione)<br />
• punti di controllo: punti omologhi necessari per<br />
definire la trasformazione<br />
Punti immagine= definiti nel sistema immagine<br />
Punti di controllo= punti di riferimento<br />
• Utlizzo: elaborazione delle immagini, cartografia<br />
(carta = immagine raster), disegni<br />
•<strong>Trasformazioni</strong> GLOBALI e LOCALI
TRASFORMAZIONI GEOMETRICHE<br />
<strong>Trasformazioni</strong> GLOBALI:<br />
• modificano la posizione di ogni pixel dell’immagine.<br />
I valori dei parametri di trasformazione calcolati sono<br />
validi per qualsiasi punto dell’immagine<br />
• dal sistema (o,x,y) al sistema trasformato (O,X,Y)<br />
• si utilizzano più punti di controllo di quelli necessari<br />
e il valore dei parametri è stimato ai minimi quadrati.<br />
• <strong>Trasformazioni</strong> lineari: traslazione, rotazioni,<br />
deformazione per taglio, affine, Helmert<br />
<strong>Trasformazioni</strong> proiettiva<br />
<strong>Trasformazioni</strong> polinomiali
TRASFORMAZIONI GEOMETRICHE<br />
o<br />
1<br />
1 2 3 4 5<br />
6 7 8 9 10<br />
x<br />
O<br />
1<br />
1 2 3 4 5<br />
6 7 8 9 10<br />
X<br />
2<br />
2<br />
3<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
y<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
Y<br />
Spostamento di una<br />
“freccia” lungo la<br />
direzione x di 5 pixel.<br />
Il punto iniziale ha coordinate<br />
x= 4<br />
y=3<br />
Lo spostamento è<br />
5 lungo x<br />
0 lungo y<br />
X<br />
<br />
Y<br />
0<br />
0<br />
<br />
<br />
<br />
x<br />
<br />
y<br />
<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
4<br />
<br />
3<br />
5<br />
<br />
0<br />
<br />
9<br />
<br />
3
TRASFORMAZIONI GEOMETRICHE<br />
TRASLAZIONE<br />
• è una trasformazione<br />
elementare conforme<br />
(=mantiene inalterati gli angoli)<br />
• parametri: 2<br />
traslazione Xo<br />
traslazione Yo<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
x<br />
<br />
y<br />
<br />
<br />
<br />
X<br />
Y<br />
0<br />
0
TRASFORMAZIONI GEOMETRICHE<br />
ROTAZIONE<br />
• è una trasformazione<br />
elementare conforme<br />
(=mantiene inalterati gli angoli)<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
<br />
cos<br />
<br />
sen<br />
sen<br />
<br />
x<br />
cos<br />
<br />
y<br />
• parametri:1<br />
rotazione a
TRASFORMAZIONI GEOMETRICHE<br />
VARIAZIONE DI SCALA ISOTROPA<br />
• è una trasformazione<br />
elementare conforme<br />
(=mantiene inalterati gli angoli)<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
x<br />
<br />
y<br />
• parametri: 1<br />
fattore di<br />
scala l
TRASFORMAZIONI GEOMETRICHE<br />
TAGLIO<br />
• è una trasformazione<br />
elementare non conforme<br />
• parametri: 1<br />
angolo di taglio b<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
<br />
1 tan <br />
x<br />
<br />
0<br />
1 y
TRASFORMAZIONI GEOMETRICHE<br />
VARIAZIONE DI SCALA ANISOTROPA LUNGO GLI ASSI<br />
• è una trasformazione<br />
elementare non conforme<br />
•Parametri:2<br />
fattore di scala l 1<br />
fattore di scala l 2<br />
• Se l1 = l2 siamo nel<br />
caso di variazione di scala<br />
ad 1 parametro<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
1<br />
0<br />
0 <br />
x<br />
<br />
<br />
2<br />
y
TRASFORMAZIONI GEOMETRICHE<br />
ROTOTRASLAZIONE CONFORME CON VARIAZIONE DI SCALA<br />
HELMERT<br />
• è una trasformazione<br />
conforme<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
cos<br />
<br />
sen<br />
sen<br />
<br />
x<br />
cos<br />
<br />
y<br />
X<br />
<br />
Y<br />
0<br />
<br />
<br />
<br />
0<br />
• parametri: 4<br />
traslazione Xo<br />
traslazione Yo<br />
rotazione a<br />
fattore di scala l<br />
X<br />
<br />
<br />
Y<br />
<br />
•Si possono avere risultati<br />
diversi se la variazione di scala<br />
è diversa lungo i due assi l 1 l 2<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
<br />
1<br />
<br />
0<br />
0 cos<br />
<br />
<br />
2sen<br />
sen<br />
<br />
x<br />
X<br />
cos<br />
<br />
y<br />
Y<br />
0<br />
<br />
<br />
<br />
0
TRASFORMAZIONI GEOMETRICHE<br />
Traslazione<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
0<br />
0<br />
Y<br />
X<br />
y<br />
x<br />
Y<br />
X<br />
Rotazione<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
y<br />
x<br />
Y<br />
X<br />
<br />
<br />
<br />
<br />
cos<br />
sen<br />
sen<br />
cos<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
0<br />
0<br />
cos<br />
cos<br />
Y<br />
X<br />
y<br />
x<br />
sen<br />
sen<br />
Y<br />
X<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
y<br />
x<br />
Y<br />
X<br />
<br />
Variazione di scala<br />
Cambiamento del sistema di riferimento
TRASFORMAZIONI GEOMETRICHE<br />
TRASFORMAZIONE AFFINE<br />
• è una trasformazione non<br />
conforme<br />
X<br />
<br />
Y<br />
<br />
<br />
<br />
<br />
1<br />
<br />
0<br />
0 <br />
1<br />
<br />
<br />
2<br />
0<br />
tan <br />
1<br />
<br />
<br />
<br />
cos<br />
<br />
sen<br />
sen<br />
<br />
x<br />
X<br />
cos<br />
<br />
y<br />
Y<br />
0<br />
<br />
<br />
<br />
0<br />
•Può essere vista come<br />
sequenza di doppia<br />
variazione di scala,<br />
traslazione, rotazione e<br />
taglio<br />
• parametri: 6<br />
fattore di scala l1<br />
fattore di scala l2<br />
X<br />
<br />
<br />
Y<br />
<br />
X a00 a01y<br />
a10x<br />
Y b00 b01y<br />
b10x<br />
traslazione Xo<br />
traslazione Yo<br />
rotazione<br />
taglio<br />
b<br />
a
TRASFORMAZIONI GEOMETRICHE<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
0<br />
0<br />
2<br />
1<br />
cos<br />
cos<br />
1<br />
tan<br />
1<br />
0<br />
0<br />
Y<br />
X<br />
y<br />
x<br />
sen<br />
sen<br />
Y<br />
X<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Correzioni delle deformazioni<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
y<br />
x<br />
Y<br />
X<br />
1<br />
0<br />
tan<br />
1 <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
0<br />
0<br />
Y<br />
X<br />
y<br />
x<br />
Y<br />
X<br />
taglio<br />
traslazione<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
y<br />
x<br />
λ<br />
0<br />
0<br />
Y<br />
X<br />
2<br />
1<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
y<br />
x<br />
Y<br />
X<br />
<br />
<br />
<br />
<br />
cos<br />
sen<br />
sen<br />
cos<br />
rotazione<br />
scala
TRASFORMAZIONI GEOMETRICHE<br />
TRASFORMAZIONE BILINEARE<br />
• è una trasformazione<br />
non conforme<br />
• Può essere vista come<br />
sequenza di doppia<br />
variazione di scala,<br />
traslazione, rotazione e<br />
taglio<br />
•Non si tratta di equazioni<br />
lineari, ma di grado 2<br />
• Parametri: 8<br />
X<br />
<br />
<br />
Y<br />
<br />
X a00 a01y<br />
a10x<br />
a11yx<br />
Y b00 b y b10x<br />
b11yx<br />
X<br />
cos<br />
α<br />
λ<br />
<br />
Y<br />
senα<br />
senα<br />
<br />
x<br />
<br />
X<br />
<br />
0<br />
<br />
cos α y01<br />
<br />
Y<br />
0
TRASFORMAZIONI GEOMETRICHE<br />
TRASFORMAZIONE PROIETTIVA (o omografica)<br />
• è una trasformazione non<br />
conforme<br />
• utilizzata in fotogrammetria per<br />
il raddrizzamento, caso<br />
particolare in cui Z è costante<br />
X<br />
Y<br />
<br />
<br />
a1x<br />
a2<br />
y a<br />
c1x<br />
c2<br />
y 1<br />
b1<br />
x b2<br />
y b3<br />
c x c y 1<br />
1<br />
2<br />
3<br />
• parametri: 8<br />
X<br />
<br />
<br />
Y
TRASFORMAZIONI GEOMETRICHE<br />
Trasformazione proiettiva<br />
Applicazione della<br />
trasformazione<br />
proiettiva alla pianta<br />
X<br />
<br />
<br />
Y<br />
<br />
prospettica di Mortier
TRASFORMAZIONI GEOMETRICHE<br />
TRASFORMAZIONE POLINOMIALE<br />
•Dallo sviluppo del polinomio<br />
si ottengono diverse<br />
trasformazioni in base ai<br />
termini considerati<br />
X<br />
<br />
m<br />
<br />
i0<br />
n<br />
<br />
j0<br />
a<br />
ij<br />
x<br />
i<br />
y<br />
j<br />
Y<br />
<br />
m<br />
<br />
i0<br />
n<br />
<br />
j0<br />
b<br />
ij<br />
x<br />
i<br />
y<br />
j<br />
X<br />
Y<br />
<br />
<br />
a<br />
b<br />
2 2<br />
2 2<br />
3 3<br />
00<br />
a01y<br />
a10x<br />
a11yx<br />
a02<br />
y a20x<br />
a12xy<br />
a21x<br />
y a03y<br />
a30x<br />
<br />
2 2<br />
2 2<br />
3 3<br />
00<br />
b01y<br />
b10x<br />
b11yx<br />
b02y<br />
b20x<br />
b12xy<br />
b21x<br />
y b03y<br />
b30x<br />
<br />
X<br />
<br />
<br />
Y<br />
<br />
Trasformazione polinomiale a 12 parametri<br />
...<br />
...
TRASFORMAZIONI GEOMETRICHE<br />
TRASFORMAZIONE POLINOMIALE<br />
X<br />
<br />
<br />
Y<br />
<br />
Trasformazione polinomiale<br />
di primo grado<br />
X a00 a01y<br />
a10x<br />
b b y b x<br />
Y<br />
00 01<br />
<br />
10<br />
Trasformazione polinomiale<br />
di secondo grado<br />
X a00 a01y<br />
a10x<br />
a11yx<br />
b b y b x b yx<br />
Y<br />
00 01 10<br />
<br />
11
TRASFORMAZIONI GEOMETRICHE<br />
confronti<br />
Affine Bilineare Proiettiva
TRASFORMAZIONI GEOMETRICHE<br />
COORDINATE OMOGENEE<br />
Le traslazioni sono applicate mediante somme, mentre le altre trasformazioni come<br />
prodotti matriciali. Per rendere più veloce il calcolo, la computer graphics utilizza le<br />
coordinate omogenee e solo operazioni di prodotto tra matrici.<br />
Il punto (x,y) è espresso in coordinate omogenee mediante la tripletta (x,y,1)<br />
con x = x h /w; y = y h /w e w ≠ 0.<br />
Per cui le trasformazioni si possono riassumere come il prodotto delle matrici:<br />
X<br />
<br />
<br />
<br />
Y<br />
<br />
<br />
1 <br />
<br />
1<br />
<br />
<br />
o<br />
<br />
0<br />
o<br />
1<br />
0<br />
dx<br />
x<br />
d<br />
<br />
<br />
<br />
y<br />
<br />
y<br />
<br />
1 <br />
<br />
1<br />
Traslazione<br />
d x spostamento lungo x<br />
d y spostamento lungo y<br />
X<br />
<br />
<br />
<br />
Y<br />
<br />
<br />
1 <br />
<br />
cos<br />
<br />
<br />
sin<br />
<br />
0<br />
sin<br />
cos<br />
0<br />
0<br />
x<br />
0<br />
<br />
<br />
<br />
<br />
y<br />
<br />
1<br />
<br />
1<br />
Rotazione<br />
a angolo di rotazione
TRASFORMAZIONI GEOMETRICHE<br />
COORDINATE OMOGENEE<br />
X<br />
sx<br />
<br />
<br />
<br />
<br />
Y<br />
<br />
o<br />
<br />
1 <br />
<br />
0<br />
Le riflessioni sono casi particolari di trasformazioni di scala<br />
X<br />
1<br />
<br />
<br />
<br />
<br />
Y<br />
<br />
0<br />
<br />
1 <br />
<br />
0<br />
0<br />
1<br />
0<br />
o<br />
o<br />
x<br />
o<br />
<br />
<br />
<br />
<br />
y<br />
<br />
1<br />
<br />
1<br />
0<br />
x<br />
0<br />
<br />
<br />
<br />
<br />
y<br />
<br />
1<br />
<br />
1<br />
Riflessione rispetto l’asse x<br />
s<br />
y<br />
0<br />
X<br />
1<br />
<br />
<br />
<br />
<br />
Y<br />
<br />
0<br />
<br />
1 <br />
<br />
0<br />
Variazione di scala<br />
s x fattore di scala lungo x<br />
s y fattore di scala lungo y<br />
0<br />
1<br />
0<br />
0<br />
x<br />
0<br />
<br />
<br />
<br />
<br />
y<br />
<br />
1<br />
<br />
1<br />
Riflessione rispetto l’asse y<br />
X<br />
1<br />
<br />
<br />
<br />
<br />
Y<br />
<br />
0<br />
<br />
1 <br />
<br />
0<br />
0<br />
1<br />
0<br />
0<br />
x<br />
0<br />
<br />
<br />
<br />
<br />
y<br />
<br />
1<br />
<br />
1<br />
Riflessione rispetto l’origine<br />
degli assi<br />
X<br />
<br />
<br />
<br />
Y<br />
<br />
<br />
1 <br />
<br />
1<br />
<br />
<br />
b<br />
<br />
0<br />
a<br />
1<br />
0<br />
0<br />
x<br />
0<br />
<br />
<br />
<br />
<br />
y<br />
<br />
1<br />
<br />
1<br />
Taglio<br />
a deformazione rispetto asse x<br />
b deformazione rispetto asse y
TRASFORMAZIONI GEOMETRICHE<br />
RESAMPLING<br />
Per la creazione dell’immagine<br />
finale, avente gli assi paralleli al<br />
sistema di riferimento esterno, si<br />
utilizza la tecnica dell’inverse<br />
mapping che consiste nel riempire<br />
una immagine vuota di dimensione<br />
opportune con dei valori ricavati<br />
per interpolazione dell’immagine<br />
iniziale.<br />
Matrice immagine<br />
iniziale<br />
Matrice immagine<br />
finale<br />
NEAREST NEIGHBOUR<br />
•Consiste nell’assegnare ad ogni punto<br />
del dominio il valore del pixel campionato<br />
più vicino<br />
•E’ un approccio molto semplice, e la<br />
soluzione finale è unica
TRASFORMAZIONI GEOMETRICHE<br />
INTERPOLAZIONE BILINEARE<br />
• interpola linearmente i pixel lungo ogni<br />
riga, poi interpola i pixel lungo ogni<br />
colonna<br />
• L'interpolazione bilineare assegna al<br />
pixel di destinazione D un valore che è<br />
una funzione bilineare dei quattro pixel<br />
vicini alla sorgente S nell'immagine di<br />
input<br />
INTERPOLAZIONE BICUBICA<br />
•calcola il valore di un pixel della<br />
immagine di output facendo una media<br />
dei 16 pixel che circondano il pixel<br />
corrispondente nell'immagine di input<br />
• A volte in realtà i risultati del bicubico<br />
risultano peggiori del bilineare e molto<br />
dipende dall'immagine di input
TRASFORMAZIONI GEOMETRICHE<br />
<strong>Trasformazioni</strong> LOCALI:<br />
• I valori dei parametri di trasformazione sono<br />
calcolati per ogni singolo punto dell’immagine e<br />
hanno validità locale. Deformare solo una parte<br />
dell’immagine senza che il resto venga deformato.<br />
•Algoritmi simili alle trasformazioni globali, ma<br />
applicati a aree minori: trasformazione esatta per i<br />
punti noti e approssimata per gli altri<br />
• Morphing<br />
Warping
TRASFORMAZIONI GEOMETRICHE<br />
MORPHING e WARPING<br />
• in computer-graphics, date due immagini, una iniziale e una finale, è<br />
possibile ottenere un’animazione di trasformazione tra gli oggetti<br />
rappresentati mediante una sequenza di immagini intermedie: MORPHING<br />
• Si può considerare somma di due effetti differenti:<br />
dissolvenza incrociata, ogni pixel di ogni frame intermedio è dato<br />
dalla media pesata delle immagini di partenza e di arrivo<br />
image warping, definire corrispondenze tra immagine iniziale e<br />
finale mediante primitive di controllo posizionate in zone<br />
caratteristiche. (Volto: occhi, naso, bocca). Dopo la<br />
triangolazione, nelle fasi intermedie viene mappato il contenuto<br />
dei corrispondenti triangoli<br />
Lo scopo è quello di portare le due immagini ad avere lo stesso tipo di<br />
deformazioni per poterle quindi miscelare.<br />
WARPING:<br />
scomposizione del dominio in elementi finiti<br />
creazione di campi di forze
TRASFORMAZIONI GEOMETRICHE
TRASFORMAZIONI GEOMETRICHE<br />
Scomposizione del dominio<br />
L’immagine viene suddivisa in modo manuale o<br />
automatico in patch triangolari (triangolazione di<br />
Delunay). La triangolazione sull’immagine finale viene<br />
riportata sull’immagine iniziale utilizzando i punti<br />
omologhi. Poi si può:<br />
• Modificare la patch dell’immagine sorgente per portarla<br />
a coincidere con quella finale mediante una<br />
trasformazione affine.<br />
• Utilizzare i lati dei triangoli come primitive di controllo<br />
tra immagine iniziale e finale.
TRASFORMAZIONI GEOMETRICHE
TRASFORMAZIONI GEOMETRICHE<br />
Risultato:<br />
adattamento dell’immagine<br />
rispetto ai punti di controllo
TRASFORMAZIONI GEOMETRICHE<br />
Campi di forze<br />
•L’algoritmo per punti di forza è il più semplice.<br />
Una volta calcolato il vettore spostamento per<br />
ogni coppia di punti omologhi, ogni altro punto<br />
(pixel o nodo) sarà spostato in ragione di un<br />
vettore ottenuto come media pesata dei vettori<br />
riferimento.<br />
•I problemi da risolvere sono l’individuazione di<br />
un criterio per la scelta dei pesi dei vettori di<br />
riferimento e l’elevato numero di questi ultimi.<br />
•Esso è di difficile utilizzazione con immagini<br />
raster in quanto è praticamente inevitabile che<br />
delle linee rette nell’immagine di partenza<br />
risultino curve dopo la trasformazione. Problemi<br />
nell’uso con cartografia o disegno di architettura,<br />
più utilizzato per fotografie. Da buoni risultati con<br />
immagini vettoriali perché agisce solo sui nodi.
TRASFORMAZIONI GEOMETRICHE<br />
I parametri della trasformazione vengono<br />
stimati per ogni punto dell’immagine<br />
attraverso una rototraslazione anisotropa
TRASFORMAZIONI GEOMETRICHE<br />
REFERENZIAZIONE - TRASFORMAZIONE<br />
scomposizione del dominio<br />
TRASFORMAZIONI<br />
GLOBALI<br />
+<br />
TRASFORMAZIONI<br />
LOCALI<br />
• preparazione degli<br />
elaborati;<br />
• analisi delle deformazioni;<br />
• trasformazione globale<br />
(referenziazione) tra i<br />
sistemi di coordinate<br />
dell’immagine e di<br />
riferimento;<br />
• trasformazioni locali<br />
(e conseguente costruzione<br />
della nuova immagine);<br />
• verifica della nuova<br />
immagine.
TRASFORMAZIONI GEOMETRICHE<br />
Esempio di TRASFORMAZIONI<br />
Il profilo di massima delle<br />
scomposizione del dominio<br />
due piante è confrontabile<br />
In alcune zone sono<br />
presenti delle<br />
deformazioni tali da non<br />
consentire una<br />
sovrapposizione<br />
puntuale delle due<br />
cartografie<br />
In queste zone si dovrà<br />
intervenire con delle<br />
trasformazioni di tipo<br />
locale
TRASFORMAZIONI GEOMETRICHE<br />
Sovrapposizione delle due<br />
carte in seguito alla<br />
trasformazione locale<br />
scomposizione del dominio<br />
Sovrapposizione delle due carte<br />
in seguito alla trasformazione<br />
globale
TRASFORMAZIONI GEOMETRICHE<br />
ESEMPIO: S. GIORGIO<br />
Trasformazione globale<br />
<strong>Trasformazioni</strong> locali
TRASFORMAZIONI GEOMETRICHE<br />
Sovrapposizione dopo la<br />
trasformazione globale<br />
Sovrapposizione dopo le<br />
trasformazioni locali