È possibile ottenere una vista frontale parallela della posizione dell'immagine o della fotocamera mediante relazione di punti 2D-3D?

StackOverflow https://stackoverflow.com/questions/8838158

Domanda

È possibile ottenere la vista frontale parallela della posizione dell'immagine o della telecamera mediante relazione di punti 2D-3D usando OpenCV?

Per questo ho parametri intrinseci ed estrinseci. Ho anche coordinate 3D di serie di punti di controllo (che si trovano in un piano) sull'immagine (relazione 2D-3D).

In effetti ho bisogno di posizione e orientamento della fotocamera, ma non è difficile trovarla se riesco a convertire l'immagine in vista frontale.

Se non è possibile fare con OpenCV, sono le altre librerie che possono risolvere questo compito?

È stato utile?

Soluzione

La soluzione si basa sulle formule nella documentazione di OpenCV Calibrazione della fotocamera e ricostruzione 3D

Consideriamo la forma numerica senza coefficiente di distorsione (in contrasto con la forma della matrice).

abbiamo u e v.
È facile da calcolare x' e y'.
Ma x e y non possiamo essere calcolati perché possiamo scegliere qualsiasi diverso zero z.
La riga in 3D corrisponde a un punto nell'immagine 2D.

Per risolvere questo prendiamo due punti per z=1 e z=2. Quindi troviamo 2 punti nello spazio 3D che specificano la linea (x1,y1,z1) e (x2,y2,z2).

Quindi possiamo applicare R-1 a (x1,y1,z1) e (x2,y2,z2) che si traduce in linea determinata da due punti (X1, Y1, Z1) e (X1, Y1, Z1).

Poiché i nostri punti di controllo si trovano su un piano (let Pere è z = 0 per semplicità) possiamo trovare corrispondente X e Y punto che è un punto in 3d.

Dopo aver applicato la normalizzazione da mm Ai pixel otteniamo un'immagine frontale parallela.

(Se abbiamo l'immagine di input distorta, dovremmo prima indesurare)

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