2012-05-24 18 views
6

OpenCV contiene molto supporto per la ricostruzione 3D da telecamere stereo. Nel mio caso ho due videocamere e voglio conoscere le coordinate 3D di qualche punto.Ricostruzione di un punto 3D da due punti 2D?

quello che ho: Coordinate

  1. pixel del punto in entrambe le immagini
  2. Conosciuto fotocamera intrinseca ed estrinseca parametri

Quello che voglio ottenere: Coordinate questo punto in 3D

risposta

1

Non so se opencv abbia un costrutto per questo. Tuttavia so che è possibile utilizzare la legge dei seni per Angle-Side-Angle per costruire la distanza lineare in senso orizzontale-parallelo alle telecamere usando gli angoli interni del punto-> camera-> altra fotocamera come punti di riferimento.

Quindi, una volta ottenuta la distanza, è possibile calcolare il posizionamento verticale utilizzando lo stesso costrutto: dove l'angolo viene contato dal punto morto a quanto in alto o in basso il punto è in riferimento a entrambe le telecamere, la distanza dal oggetto trovato nel primo passaggio, e puoi usare 90 gradi come angolo tra quel punto immaginario (sopra l'oggetto orizzontale rispetto alla telecamera) e l'oggetto.

3

Ho risposto alla stessa domanda in questo altro post.

Se si dispone di parametri estrinseci, si dispone della fotocamera. Con la posa della fotocamera e il punto 2D, puoi proire i punti 3D (per ogni telecamera dovrebbe essere lo stesso risultato se i tuoi punti 2D e quelli estrinseci sono corretti). Hai solo bisogno di convertire la posa in omografia. Lo spiego nel post che ho linkato.

Buona fortuna!

+0

La tua risposta riguarda un caso diverso da quello che ho capito. – Mehdi

1

Quando non si ha esperienza nella triangolazione dei punti da due viste, è necessario il libro di Hartley and Zisserman's book. In questo libro è descritto un metodo di triangolazione lineare che è molto facile da implementare avendo le corrispondenze di punti 2D, la posa della telecamera e la calibrazione della telecamera.

Il codice di esempio di questo metodo è dato here. È basato sul libro sopra menzionato.

Tuttavia, ci sono condizioni molto importanti che devono essere soddisfatte. Innanzitutto, le corrispondenze dei punti misurate devono essere corrette rispetto al vincolo epipolare x*E*x' = 0. Secondo, l'angolo tra i raggi dovrebbe essere maggiore di alcuni gradi, ad esempio 2 gradi.

Problemi correlati