Mi viene assegnato un piano (vettore di supporto e vettore normale del piano), un'immagine presa da una fotocamera di cui conosco i parametri intrinseci (fx, fy, cx, cy). Come ottengo la trasformazione di questa immagine in un'immagine simile ad una vista a volo d'uccello (in modo che la vista degli uccelli sia allineata al vettore normale del piano). Sono confuso con i sistemi di coordinate che devo usare, alcune matrici sono in coordinate mondiali e alcune in locale. So che ci sono warpPerspective()
in OpenCV, questo farebbe il lavoro?Come creare una vista a volo d'uccello dell'immagine su un dato piano?
Im utilizzando OpenCV: 2.4.9
Grazie mille!
Aggiornamento: Devo calcolare i 4 punti con la fotocamera rivolta verso normale, poi 4 punti dal bird eye view e passarli a findHomography()
per ottenere la matrice di trasformazione?
Aggiornamento: Risolto. Fatto funzionare!
Quello che ti serve è la vista dall'alto, giusto? Cioè l'angolo tra la vista/il vettore della telecamera e il piano normale sarà l'angolo retto (180 °). OTOH [vista a volo d'uccello] (https://en.wikipedia.org/wiki/Bird%27s-eye_view) non sarà così, avrà un angolo diverso da 0/180 °. La vista dall'alto sarà una vista ortografica mentre l'occhio di un uccello è una vista prospettica. – legends2k
Questo può aiutare a calcolare la trasformazione della telecamera: [Derivando gluLookAt] (http://stackoverflow.com/a/22715392/183120) – legends2k
avrai bisogno di: parametri estrinseci della tua fotocamera (almeno l'angolo di visuale) O 4 posizioni in pixel di punti "noti" sul piano (sarebbe sufficiente conoscere la posizione relativa tra quei punti sul piano). – Micka