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

5
OpenCV包含了大量支持立体相机三维重建的工具。在我的情况下,我有六个已经校准好了(内参和外参)的相机,我想要拿到普通二维点的对应三维位置(例如测试球)。你有什么想法吗?
我的条件是:
1)多个相机的校准参数
2)测试球在每张图片中的二维位置
我想要得到:
1)测试球对应的三维坐标

5
答案在本领域的极线几何中,并且可以在经典著作《计算机视觉中的多视角几何》中找到。如果您没有阅读过这本书,就不应该轻率地进入计算机视觉领域。请访问http://www.robots.ox.ac.uk/~vgg/hzbook/获取更多信息。 - Xander Tulip
感谢你的提示,Xander。我很久以前读过这本书,但是后来忘记了。这是一个非常好的资源。 - user1200565
如果您在图像对之间有2D点对应关系,请查看捆绑调整方法。 - nbsrujan
2个回答

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

2

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接