Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 从两个二维点重建三维点?_Opencv_3d Reconstruction - Fatal编程技术网

Opencv 从两个二维点重建三维点?

Opencv 从两个二维点重建三维点?,opencv,3d-reconstruction,Opencv,3d Reconstruction,OpenCV包含很多对立体相机三维重建的支持。在我的例子中,我有两个摄像头,我想知道某个点的三维坐标 我所拥有的: 两幅图像上点的像素坐标 已知的内部和外部摄像机参数 我想要的是: 在3D中坐标此点我不知道opencv是否对此有构造。然而,我知道你可以使用正弦定律的角度-侧角来构造平行于相机的线性距离,使用点->相机->其他相机的内角作为参考点 然后,一旦获得距离,就可以使用相同的构造计算垂直定位:从死点到该点相对于任一摄像机的上下距离计算角度,到第一步中找到的对象的距离,并且可以使用90度作为

OpenCV包含很多对立体相机三维重建的支持。在我的例子中,我有两个摄像头,我想知道某个点的三维坐标

我所拥有的:

  • 两幅图像上点的像素坐标
  • 已知的内部和外部摄像机参数
  • 我想要的是:
    在3D中坐标此点

    我不知道opencv是否对此有构造。然而,我知道你可以使用正弦定律的角度-侧角来构造平行于相机的线性距离,使用点->相机->其他相机的内角作为参考点


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

    我在另一个问题中回答了相同的问题

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


    祝你好运!

    如果你没有从两个视图对点进行三角剖分的经验,你应该读这本书。在这本书中,描述了一种线性三角剖分方法,该方法非常容易实现,具有2D点对应、相机姿势和相机校准

    给出了该方法的示例代码,它基于上述书籍


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

    您的答案处理的情况与此不同据我所知。