【问题标题】:Reconstruction a 3D point from multiple 2D points?从多个 2D 点重建 3D 点?
【发布时间】: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 方法

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    然后,每个图像都会为您提供水平和垂直角度 - 来自相机矩阵和极线模型。这为每个相机提供了一条进入空间的直线 - 只需求解所有这些相交的点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2018-11-17
      相关资源
      最近更新 更多