¿Es posible obtener una vista frontal-paralela de la imagen o la posición de la cámara por relación 2D-3D Puntos?

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

Pregunta

¿Es posible obtener una vista frontal paralela de la imagen o la posición de la cámara por relación de puntos 2D-3D usando OpenCV?

Para esto tengo parámetros intrínsecos y extrínsecos. También tengo coordenadas 3D del conjunto de puntos de control (que se encuentra en un plano) en la imagen (relación 2D-3D).

De hecho, necesito la ubicación y la orientación de la cámara, pero no es difícil encontrarla si puedo convertir la imagen en la vista frontal-paralela.

Si no es posible hacer con OpenCV, ¿son las otras bibliotecas que pueden resolver esta tarea?

¿Fue útil?

Solución

La solución se basa en las fórmulas en la documentación de OpenCV Calibración de la cámara y reconstrucción 3D

Consideremos la forma numérica sin coeficiente de distorsión (en contraste con la forma de matriz).

Tenemos u y v.
Es fácil de calcular x' y y'.
Pero x y y no se puede calcular porque podemos elegir ningún cero distinto de cero z.
La línea en 3D corresponde a un punto en la imagen 2D.

Para resolver esto tomamos dos puntos por z=1 y z=2. Luego encontramos 2 puntos en el espacio 3D que especifica la línea (x1,y1,z1) y (x2,y2,z2).

Entonces podemos aplicar R-1 a (x1,y1,z1) y (x2,y2,z2) que da como resultado en línea determinados por dos puntos (X1, Y1, Z1) y (X1, Y1, Z1).

Dado que nuestros puntos de control se encuentran en un plano (deje que el plano es z = 0 por simplicidad) podemos encontrar correspondientes X y Y punto que es un punto en 3d.

Después de aplicar la normalización de mm A los píxeles obtenemos una imagen fronto-paralela.

(Si tenemos una imagen de entrada distorsionada, debemos desintegrarla primero)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top