Domanda

Ho un'immagine visualizzata sullo schermo che viene distorto tramite cvInitUndistortMap & cvRemap (avendo calibrazione della telecamera a farsi), e l'utente fa clic su una caratteristica nell'immagine. Così ho i (u, v) coordinate pixel della funzione, e ho anche la matrice intrinseca e la matrice distorsione.

Quello che sto cercando è l'equazione della linea 3D in coordinate macchina fotografica / del mondo reale su cui la funzione l'utente ha fatto clic mosto menzogna. Ho già la distanza perpendicolare tra il piano dell'immagine della telecamera e la funzione, quindi posso combinano con l'equazione suddetta di darmi la (X, Y, Z) di coordinate della funzione nello spazio.

Suoni facile (matrice inversa intrinseca o qualcosa del genere?), Ma non riesco a trovare le istruzioni passo-passo ovunque. C ++ o C # codice preferito.

È stato utile?

Soluzione

Questo è un po 'vecchio ma ancora domanda potrebbe essere utile per qualcuno. Tutte le linee passano attraverso il punto (0,0,0), così:

line.x0 = 0; line.y0 = 0; line.z0 = 0;

direzione vettoriale è la seguente: line.A = (u / fx) - (cx / fx); line.B = (v / fy) - (cy / fy); line.C = 1;

cx, cy, fx, fy sono parametri da matrici telecamera. Le equazioni sono spiegati nel libro "Learning OpenCV".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top