从多个2D点重建3D点?

时间:2012-02-09 20:17:14

标签: c++ image-processing opencv 3d computer-vision

OpenCV包含对立体相机3D重建的大量支持。在我的情况下,我有六个校准过的相机(内在和外在),我想采用常见的2D点(比如测试球)并得到相应的3D位置。有关如何做到这一点的任何想法?

我拥有什么:
1)多个摄像机的校准参数
2)测试球的2D位置(在每个图像平面中)

我想得到什么:
1)测试球的相应3D点

2 个答案:

答案 0 :(得分:3)

您的校准参数将为每个摄像机的每个2D点提供一条光线。如果您已经确定哪些光线对应于您的测试球体,那么您希望对目标点进行least squares拟合。 (虽然链接使用最小二乘法进行线性回归,但您可以使用相同的方法找到最小化所有2D点的平方误差之和的3D点。)

答案 1 :(得分:1)

你知道相机之间的位置关系吗?

然后每个图像从相机矩阵和极线模型给出水平和垂直角度。这为每个摄像机提供了一条直线空间 - 简单地求解所有这些相交的点。