3

我已经在 Matlab 中多次实现了立体管道,现在我正在尝试在 OpenCV 中实现一个。我一直在关注 Martin Peris 的重建:http ://blog.martinperis.com/2012/01/3d-reconstruction-with-opencv-and-point.html

当使用 Matlab 实现时,我的管道是这样的:校准 -> 校正 -> 立体匹配 -> 取消校正/取消扭曲匹配 -> 三角匹配。

在 OpenCV 中,管道是这样的:校准 -> 校正 -> 立体匹配 -> reprojectTo3D

使用 reprojectTo3D 函数:http: //docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#void%20reprojectImageTo3D%28InputArray%20disparity,%20OutputArray%20_3dImage,%20InputArray%20Q,%20bool%20handleMissingValues,% 20int%20d深度%29

不是在做三角测量吗?这怎么可能?是否假设相机已经处于规范设置并且已经平行?

4

1 回答 1

2

OpenCV 管道从立体匹配中获取用于三角测量的视差图,并从校准和校正步骤中获取相机的投影矩阵。您可以将triangualtePoints与从两个相机观察到的点的位置以及来自stereoRectify函数的投影矩阵一起使用。主要算法是一样的,你只是使用稍微不同的中间产品。

于 2014-05-07T06:56:21.190 回答