2012-05-28 10 views
7

Sono nuovo di OpenCV. Ho lavorato sul campione di Surf Detection. Ora voglio posizionare un modello 3d sull'immagine rilevata.Come trovare 3d Projection Matrix in Rilevamento del Surf

Come posso trovare la matrice 3D Projection?

+1

Possibile soluzione: http://urbanar.blogspot.in/2011/04/from-homography-to-opengl-modelview.html –

+2

Il problema è troppo complesso per quella semplice domanda. Intendi l'omografia. Devi passare i punti chiave rilevati con il surf alla funzione cvFindHomography –

risposta

5

Immagino che tu stia parlando di Augment Reality mentre dici di voler posizionare un modello 3D sull'immagine rilevata (nella cornice della videocamera?). La chiave del problema è sempre di rilevare almeno 4 punti che corrispondono ad altri 4 "punti chiave" nel nostro indicatore. Quindi, risolvendo alcune equazioni, otterremo la nostra omografia, che ci permetterà di proiettare qualsiasi punto.

In OpenCV c'è una funzione che esegue questo compito: cvFindHomography

Hai solo bisogno le coppie di partite, selezionare un metodo (RANSAC, vale a dire) e si otterrà l'omografia.

Quindi è possibile proiettare i punti come spiegato here:

+1

Ho usato cvFindHomography per proiettare un quadrato di prova sull'immagine e poi chiamato solvePnP per calcolare la matrice modelview. –