OpenCV包含对立体相机3D重建的大量支持。在我的情况下,我有两个相机,我想知道某些点的3D坐标。
我有什么:
我想得到什么: 在3D中协调这一点
答案 0 :(得分:3)
我在其他post回答了同样的问题。
如果你有外在参数,那么你有相机姿势。使用相机姿势和2D点,您可以创建3D点(如果您的2D点和外部图是正确的,则每个相机应该是相同的结果)。你只需要将姿势转换为单应性。我在我链接的帖子中解释它。
祝你好运!答案 1 :(得分:1)
我不知道opencv是否有这样的构造。但是我知道你可以使用角度 - 侧角的正弦定律来构造与摄像机水平平行的线性距离,使用点 - >摄像机 - >其他摄像机的内角作为参考点。
然后,一旦得到距离,就可以使用相同的构造计算垂直定位:其中角度从死点计算到点的上方或下方距离相对于任一摄像机,距离对象的距离在第一步中找到,你可以使用90度作为你想象中的点(相对于相机水平的物体)和物体之间的角度。
答案 2 :(得分:1)
如果您没有从两个视图中对点进行三角测量的经验,那么您应该阅读Hartley and Zisserman's book的书。在本书中,描述了一种线性三角测量方法,该方法非常容易实现,具有2D点对应关系,相机姿态和相机校准。
此方法的示例代码为here。它基于上面提到的那本书。
然而,必须满足非常重要的条件。首先,测量的点对应关系必须相对于对极约束x*E*x' = 0
是正确的。其次,射线之间的角度应该大于几度,例如2度。