2012-06-14 10 views
7

Sto cercando di imparare opencv. Ho una domanda riguardante l'omografia e la geometria epipolare.Posso riutilizzare la matrice di omografia calcolata da 2 diverse immagini della stessa scena scattate da 2 telecamere diverse?

Supponiamo di aver calcolato l'omografia utilizzando la funzione cvFindHomography() utilizzando due punti funzione corrispondenti di immagini statiche scattate con due telecamere da due diversi punti di vista.

E 'un errore se riutilizzo matrice omografia per rilevare punti corrispondenti in camera 1 (a destra) dalla immagine ripresa dalla camera2 (sinistra) (perché so che x' = H.x dove x' è 2d punto caratteristico omogenea immagini sinistra, x il punto caratteristica omogeneo corrispondente alle immagini di destra è 2d e H è la matrice di omografia) in cui i punti 2D di camera1 e camera2 non sono stati utilizzati per calcolare la matrice di omografia?

Quello che voglio dire è che posso riutilizzare la matrice di omografia calcolata di queste due telecamere per trovare i punti corrispondenti per le immagini che non vengono utilizzate per calcolare la matrice di omografia?

È importante quale immagine utilizzo quando è stata determinata una volta da immagini fisse? o devo calcolarlo ogni volta?

risposta

8

È possibile utilizzare l'omografia per proiettare i punti da un'immagine all'altra fintanto che le telecamere non si muovono più e la scena non cambia.

Capisco che quelle telecamere (calibrate) scattare le foto e quindi si lavora con quelle due immagini tutto il tempo. Bene, se calcoli l'omografia, puoi proiettare tutti i punti che vuoi da entrambe le immagini. Ovviamente si otterrà un errore, ma ciò è dovuto al rumore nelle immagini e alle non-linearità che influenzano il metodo lineare utilizzato dalla findhomography.

Se continui a catturare immagini con le fotocamere, devi calcolare nuovamente l'omografia per ogni nuova coppia di immagini, perché non sai a priori come cambierà la scena.

+0

Grazie mille per la risposta. – mvr950

Problemi correlati