7

OpenCV 包含很多对立体相机 3D 重建的支持。就我而言,我有两个相机,我想知道某个点的 3D 坐标。

我有的:

  1. 两幅图像上点的像素坐标
  2. 已知的内在和外在相机参数

我想得到什么:在 3D 中坐标这个点

4

3 回答 3

3

我在另一篇文章中回答了同样的问题。

如果你有外部参数,那么你就有了相机姿势。使用相机姿势和 2D 点,您可以预测 3D 点(如果您的 2D 点和外在参数正确,则每个相机的结果应该相同)。您只需要将姿势转换为单应性。我在我链接的帖子中解释了它。

祝你好运!

于 2012-05-30T08:01:36.393 回答
1

我不知道 opencv 是否有这个结构。但是我知道您可以使用正弦定律的角度-侧角来构建与相机水平平行的线性距离,使用点->相机->其他相机的内角作为参考点。

然后,一旦获得距离,就可以使用相同的构造计算垂直定位:从死点到点上方或下方多远的角度是相对于任一相机而言的,到第一个找到的对象的距离步骤,您可以使用 90 度作为该假想点(与相机水平的物体上方)和物体之间的角度。

于 2012-05-24T22:18:06.567 回答
1

当您没有从两个角度进行三角剖分的经验时,您应该阅读Hartley 的书和​​ Zisserman 的书。在本书中,描述了一种线性三角测量方法,该方法非常容易实现,具有二维点对应、相机位姿和相机校准。

此处给出了此方法的示例代码。它是基于上面提到的书。

然而,必须满足一些非常重要的条件。首先,测量点的对应关系必须相对于极线约束是正确的x*E*x' = 0。其次,射线之间的角度应该大于几度,例如2度。

于 2013-10-15T22:17:33.290 回答