24

Ho due immagini prese da diverse posizioni. La seconda telecamera è posizionata a destra, in alto e all'indietro rispetto alla prima telecamera. Quindi penso che ci sia una trasformazione prospettica tra le due viste e non solo una trasformazione affine poiché le telecamere sono a profondità relativamente diverse (ho ragione?) Ho alcuni punti corrispondenti tra le due immagini. Penso di usare questi punti corrispondenti per determinare la trasformazione di ciascun pixel dalla 1a alla 2a immagine.Differenza tra matrici fondamentali, essenziali e di omografia

Sono confuso dalle funzioni findFundamentalMat e findHomography .... entrambi restituiscono matrice 3x3, qual è la differenza tra i due ??

C'è qualche condizione richiesta/prerequisito per usarli (quando usarli) ??

Quale utilizzare per trasformare i punti dalla prima immagine alla seconda immagine ?? Nelle matrici 3x3 che restituiscono le funzioni, comprendono la rotazione e la traduzione tra i due fotogrammi dell'immagine?

Da wikipedia, è venuto a sapere che la matrice fondamentale è una relazione tra i corrispondenti punti dell'immagine. In una risposta SO here, si dice che Essential Matrix E è necessario per ottenere punti corrispondenti ... ma non ho la matrice Camera interna per calcolare E ..... Ho solo le due immagini.

Come devo procedere per determinare il punto corrispondente? In attesa di suggerimenti .. Grazie

risposta

11

senza alcuna assunzione in più sulla geometria scena mondiale, non si può affermare che v'è una trasformazione proiettiva fra i due punti di vista. Questo è vero solo se la scena è planare. Un buon riferimento a questo argomento è il libro Multiple View Geometry in Computer Vision di Hartley e Zisserman.

Se la scena mondiale non è planare, non si deve assolutamente usare la funzione findHomography. È possibile utilizzare la funzione findFundamentalMat, che fornirà una stima della matrice fondamentale F. Questa matrice descrive la geometria epipolare tra le due viste. È possibile utilizzare F per correggere le immagini al fine di applicare algoritmi stereo per determinare una mappa di corrispondenza densa.

Suppongo che stai usando l'espressione "trasformazione prospettica" per indicare "trasformazione proiettiva". Per quanto ne so, una trasformazione prospettica è un mondo per l'immagine della mappatura, non un'immagine per la mappatura dell'immagine.

7

La matrice fondamentale è il rapporto x'Fu = 0 con x in un'immagine e u nell'altro sse x ed u sono proiezioni dello stesso punto 3d. Anche l = Fu definisce una linea (lx'= 0) dove il punto di correponding u deve essere, quindi può essere utilizzato per limitare il Searchspace per le corrispondenze.

Un'omografia mappa un punto su una proiezione di un piano su un'altra proiezione del piano. x = Hu

8

Esistono solo due casi in cui la trasformazione tra due viste è una trasformazione proiettiva (cioè un omografia): o la scena è planare o le due viste sono stati generati da una fotocamera rotante attorno al suo centro.