Trasformazioni omografiche

Le coordinate omogenee (sezione 1.4) permettono di rappresentare uno spettro molto ampio di trasformazioni unificando con lo stesso formalismo sia trasformazioni lineari (affini, rotazioni, traslazioni) che trasformazioni prospettiche.

Dati due piani distinti $ \Pi_1$ e $ \Pi_2$ si dice che sono riferiti a una trasformazione omografica (homographic transformation) quando esiste una corrispondenza biunivoca tale che:

Sia il piano $ \Pi$ osservato da due viste differenti e siano $ (u,v)$ coordinate su un immagine di un punto del piano osservato dalla prima vista e $ (u',v')$ coordinate immagine dello stesso punto osservato dalla seconda vista. Lo stesso piano pertanto diventa un piano $ \Pi_1$ nel primo caso e $ \Pi_2$ nel secondo.

Nello spazio $ \mathbb{R}^{2}$ l'omogrfia (la trasformazione omografica) è codificate da matrici $ 3 \times 3$ ed è rappresentata da equazioni del tipo:

\begin{displaymath}\begin{array}{l} u_2 = \dfrac{h_0 u_1 + h_1 v_1 + h_2}{h_6 u_...
...c{h_3 u_1 + h_4 v_1 + h_5}{h_6 u_1 + h_7 v_1 + h_8} \end{array}\end{displaymath} (1.29)

dove $ (u_1,v_1)$ sono coordinate dei punti appartenenti al piano $ \Pi_1$, mentre $ (u_2,v_2)$ sono punti del piano $ \Pi_2$.

Per la sua particolare forma tale trasformazione è facilmente descrivibile in forma di coordinate omogenee (1.4):

$\displaystyle \begin{bmatrix}u_j  v_j  1 \end{bmatrix} = \mathbf{H}^{\Pi}_{ij} \begin{bmatrix}u_i  v_i  1 \end{bmatrix}$ (1.30)

avendo definito

$\displaystyle \mathbf{H}^{\Pi}_{ij} = \begin{bmatrix}h_0 & h_1 & h_2  h_3 & h_4 & h_5  h_6 & h_7 & h_8  \end{bmatrix}$ (1.31)

Per compattezza e per mantenere il riferimento a un array in C la matrice $ \mathbf{H}^{\Pi}_{ij}$ è stata espressa usando i coefficienti $ h_0 \ldots h_8$ piuttosto che la classica sintassi per indicare gli elementi della matrice.

Viene definita matrice omografica $ \mathbf{H}^{\Pi}_{ij}$ la matrice che converte punti omogenei $ \mathbf{x}_i$ appartenenti al piano $ \Pi_i$ della immagine $ i$ in punti $ \mathbf{x}_j$ omogenei dell'immagine $ j$ con la relazione

$\displaystyle \mathbf{x}_j = \mathbf{H}^{\Pi}_{ij} \mathbf{x}_i$ (1.32)

Essendo una relazione tra grandezze omogenee il sistema è definito a meno di un fattore moltiplicativo: qualunque multiplo dei parametri della matrice omografica definisce la medesima trasformazione perchè qualunque multiplo dei vettori di ingresso o uscita soddisfa ugualmente la relazione. Come conseguenza di ciò i gradi di libertà del problema non sono 9 ma 8 in quanto è sempre possibile fissare un vincolo aggiuntivo sugli elementi della matrice. Esempi di vincoli usati spesso sono $ h_8 = 1$ o $ \vert\mathbf{H}\vert=1$. È da notare che $ h_8 = 1$ non è generalmente un vincolo ottimo dal punto di vista computazionale in quanto l'ordine di grandezza che assume $ h_8$ può essere molto diverso da quello degli altri elementi della matrice stessa e potrebbe generare singolarità. L'alternativa $ \vert\mathbf{H}\vert=1$, normalmente soddisfatta gratuitamente dell'uso di SVD come risolutore, è invece computazionalmente ottima.

Un modo per realizzare le trasformazioni prospettiche, trascurando la separazione tra parametri intrinseci ed estrinseci (e la loro determinazione in forma esplicita), è determinare i soli 8 coefficienti della matrice omografica 1.29 (per esempio attraverso il metodo dei minimi quadrati, un modo per ricavare i coefficienti si trova nell'equazione 6.40 ), facendo attenzione che tale trasformazione vale solo e solamente per i punti del piano che si è andati a riproiettare (l'omografia mette in relazione piani tra loro, ma solo quelli).

È facile vedere che ogni omografia è invertibile e l'inversa della trasformazione 1.29 (unnormalized inverse homographic matrix) è una trasformazione omografica anche essa. Una possibile equazione per l'inverse di un'omografia (essendo conosciuta a meno di un fattore moltiplicativo) è:

\begin{displaymath}\begin{array}{l} u = \dfrac{(h_5 h_7 - h_4 h_8)u' + (h_1 h_8 ...
...) u' + (h_0 h_7 - h_1 h_6) v' + h_1 h_3 - h_4 h_0 } \end{array}\end{displaymath} (1.33)

dove non è stato fatto uso di divisioni.

È da segnalare che se i due piani sono paralleli, ovvero $ h_{6}=0 \wedge h_{7}=0$, la trasformazione omografica diventa una affine (affine transformation) ed è rappresentata dalle classiche equazioni:

\begin{displaymath}\begin{array}{l} u_2 = h_0 u_1 + h_1 v_1 + h_2  v_2 = h_3 u_1 + h_4 v_1 + h_5 \end{array}\end{displaymath} (1.34)



Subsections
Paolo Medici 2012-02-08