从多个 2D 点重建 3D 点?
Posted
技术标签:
【中文标题】从多个 2D 点重建 3D 点?【英文标题】:Reconstruction a 3D point from multiple 2D points? 【发布时间】:2012-02-09 20:17:14 【问题描述】:OpenCV 包含大量对立体相机 3D 重建的支持。在我的例子中,我有 六个 校准的相机(内部和外部),我想获取常见的 2D 点(例如,测试球体)并获得相应的 3D 位置。关于如何做到这一点的任何想法?
我有什么: 1) 多台相机的标定参数 2) 测试球体的二维位置(在每个图像平面上)
我想得到什么: 1) 测试球体对应的3D点
【问题讨论】:
答案在对极几何领域,都可以在开创性书籍中找到:计算机视觉中的多视图几何robots.ox.ac.uk/~vgg/hzbook - 你甚至不应该考虑冒险进入 CV 世界至少读过那本书一次。 感谢 Xander 的提示。很久以前看过这本书,但后来忘记了。一个很好的资源。 如果图像对之间存在 2D 点对应关系,请查看 Bundle Adjustment 方法 【参考方案1】:您的校准参数将为每个相机的每个 2D 点提供一条光线。如果您已经确定了哪些光线对应于您的测试球体,您想要为您的目标点做一个least squares 拟合。 (虽然该链接使用最小二乘法进行线性回归,但您可以使用相同的方法找到 3D 点,使所有 2D 点的平方误差之和最小。)
【讨论】:
【参考方案2】:你知道相机之间的位置关系吗?
然后,每个图像都会为您提供水平和垂直角度 - 来自相机矩阵和极线模型。这为每个相机提供了一条进入空间的直线 - 只需求解所有这些相交的点。
【讨论】:
以上是关于从多个 2D 点重建 3D 点?的主要内容,如果未能解决你的问题,请参考以下文章