2012-10-31 10 views
5

Sto lavorando alla ricostruzione 3d. E ora quando considero un paio di immagini. Ho una serie di punti corrispondenti. e ho i dettagli della mia fotocamera. Ad esempio, ho dettagli di messa a fuoco, matrice di rotazione e traslazione (4 * 4). e voglio proiettare i miei punti in 3D (triangolazione). Quindi, per quanto ne so, è piuttosto lineare con l'algebra dei fattori. Ma ho ancora bisogno di capirlo chiaramente. Qualcuno ha un'idea su come seguire questo? Sto lavorando a MATLAB quindi ho bisogno di implementarlo! Potrei essere di nuovo troppo ampio o simile. Ma per favore guidami!ricostruzione 3D da immagini calibrate della fotocamera

+0

ancora troppo ampio e vago. siamo qui per aiutarti, non per insegnarti l'intero processo o per fare tutto il lavoro per te. –

risposta

0

È necessario calcolare una matrice di telecamera dagli attributi della fotocamera noti; questa è una matrice di proiezione in scala che mappa un punto omogeneo 3D sulle coordinate pixel 2D. (Si noti che se si desidera una precisione decente occorre anche misurare e correggere sistematicamente la distorsione della lente della fotocamera, ma questo è un dettaglio di secondo ordine.)

Quindi, moltiplicare la matrice della telecamera con la propria matrice di posa (la rotazione 4x4/matrice tranlation lei ha citato) per ottenere una matrice (diciamo T per totale) che proietta un punto nella tua scelta sistema di coordinate 3D nelle (coordinate rettificato) di pixel della fotocamera:

pixel vector Q.x = T * point P.x 
      Q.y    P.y 
      Q.z    P.z 
      Q.w    1 

pixel coordinates = (Q.x/Q.w, Q.y/Q.w) 
"pixel depth" = Q.z/Q.w 

È possibile invertire questa matrice, e usarlo per proiettare le coordinate pixel in raggi 3D scegliendo due profondità: una nella posizione della telecamera, e un'altra che non lo è (meglio scegliere la profondità dell'unità o il punto all'infinito). Non puoi aspettarti che i tuoi raggi si intersecano esattamente, ma puoi ottenere una posizione ottimale in base a dove i due raggi corrispondenti sono più vicini; più in generale, puoi trattare l'intersezione di un numero arbitrario di raggi come un problema dei minimi quadrati (idealmente, condizionato dall'errore atteso da ciascun raggio).

Problemi correlati