Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Reconstrucción 3D con OpenCV

No description
by

Sergio Quintero Moreno

on 8 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Reconstrucción 3D con OpenCV

Reconstrucción 3D
Objetivo
Rectificación
Cálculo Mapa Disparidad
Reconstrucción 3D
Resultado Final
Queremos conseguir que a partir de un par de imágenes de una escena, se obtenga una reconstrucción en 3 dimensiones de la misma.

Utilizamos el módulo Calib3d de OpenCV para ello.
A continuación se muestra el proceso que hemos seguido:
Captura de imágenes
La escena se puede capturar a partir de una cámara estereoscópica o de 2 cámaras.
Nosotros empleamos 2 cámaras con ejes paralelos.
Simplifica el modelo proyectivo y la reconstrucción.

Las llamadas para captura se incluye a lo largo del código en las diferentes funciones que lo necesitan.
La calibración de la cámara consiste en determinar los parámetros involucrados en el proceso de captación.
R,T,F,E, coeficientes de distorsión y matrices de las cámaras.
Para ello usamos el patrón de tablero de ajedrez.
Aplicamos detección y dibujo de esquinas con FindChessBoardCorners y DrawChessBoardCorners
Calibración
Consiste en transformar las imágenes del par estéreo haciendo que las líneas
epipolares coincidan con las filas de la imagen. De esta forma la proyección de un
punto sobre los planos imagen de cada cámara del par estéreo se ubica sobre la
misma fila en cada imagen.
Para ello usamos la función StereoRectify.
Consiste en calcular la diferencia entre la posición de los objetos en ambas imágenes.
Se puede calcular la profundidad de los objetos mediante triangulación y la posición de las cámaras.
Si las cámaras están calibradas, la disparidad es inversamente proporcional a la profundidad de los objetos.
Las funciones usan técnicas de área.
Para ello usamos la función StereoSGBM en lugar de StereoBM debido a que da mejor resultado.
Por último obtenemos una representación gráfica de la escena en 3D.
Con el mapa de disparidad es posible obtener las coordenadas espaciales (x, y, z).
Usamos la función ReprojectoImageTo3D para obtener la nube de puntos, la cual es una matriz con las coordenadas espaciales de cada punto valido de la imagen de disparidad.
Guardamos la matriz en un .txt para poder visualizar dicha nube en Matlab.
Calibración
Rectificación
Mapa de disparidad
Reconstrucción

Calibración
Por último, con los vectores de posición de las esquinas usamos StereoCalibrate para calibrar las cámaras.
Rectificación
Cálculo de
parámetros
extrínsecos:
Posteriormente aplicamos la rectificación al calcular el mapa de disparidad:
Para poder realizarlo necesitamos capturar imágenes de la escena en varias ocasiones
Full transcript