2012-02-09 22 views
5

OpenCV contiene una gran cantidad de compatibilidad para la reconstrucción 3D de cámaras estéreo. En mi caso, tengo seis cámaras calibradas (intrínseca y extrínseca), y me gustaría tomar puntos 2D comunes (por ejemplo, de una esfera de prueba) y obtener la posición 3D correspondiente. ¿Alguna idea de cómo hacer esto?¿Reconstrucción de un punto 3D a partir de múltiples puntos 2D?

Lo que tengo:
1) Los parámetros de calibración para múltiples cámaras
2) posición 2D de la esfera de prueba (en cada plano de la imagen)

Lo que yo quiero llegar:
1) Correspondiente de puntos 3D de esfera de prueba

+4

Las respuestas están en el área de la geometría epipolar y pueden todos se encuentran en el libro seminal: Geometría de vista múltiple en Computer Vision http://www.robots.ox.ac.uk/~vgg/hzbook/ - ni siquiera debería contemplar aventurarse en el mundo CV sin haber leído eso reservar al menos una vez. –

+0

Gracias por el consejo Xander. Leí este libro hace mucho tiempo, pero ya me olvidé de él. Un gran recurso. – user1200565

+0

Si tiene correspondencias de puntos 2D entre pares de imágenes, mire en los métodos de Ajuste de paquetes – nbsrujan

Respuesta

1

¿Conoce las relaciones de posición entre las cámaras?

Luego, cada imagen le da un ángulo horizontal y vertical, desde la matriz de la cámara y el modelo epipolar. Esto te da una línea recta en el espacio para cada cámara: simplemente resuelve para el punto donde todos estos se cruzan.

3

Sus parámetros de calibración le darán un rayo para cada punto 2D para cada cámara. Si ya ha identificado qué rayos corresponden a su esfera de prueba, quiere hacer un ajuste least squares para su punto objetivo. (Aunque el enlace usa mínimos cuadrados para la regresión lineal, puede usar los mismos métodos para encontrar el punto 3D minimizando la suma de los errores al cuadrado de todos los puntos 2D.)

Cuestiones relacionadas