2012-02-09 68 views
5

OpenCV包含了很多来自立体相机的3D重建支持。在我的情况下,我有六个校准摄像机(内在和外在),我想采取共同的二维点(例如,测试球),并获得相应的三维位置。有关如何做到这一点的任何想法?从多个2D点重建3D点?

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

我想什么:
1)对应的三维点测试球体

+4

答案位于Epipolar几何中,可以所有这些都可以在这本开创性的书中找到:计算机视觉中的多视图几何http://www.robots.ox.ac.uk/~vgg/hzbook/ - 如果没有阅读,你甚至不应该考虑冒险进入简历世界至少预定一次。 – 2012-02-10 03:04:11

+0

感谢提示Xander。我很久以前就读过这本书,但因为忘了它。一个很好的资源。 – user1200565 2012-02-10 18:27:12

+0

如果您在图像对之间有2D点对应关系,请查看“束调整”方法 – nbsrujan 2018-02-14 04:27:49

回答

1

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

然后,每幅图像都会给出水平和垂直角度 - 从相机矩阵和极线模型。这为每个摄像机提供了一条直线到空间 - 只需解决所有这些相交点。

3

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