Opencv 在给定摄影机移动的情况下,从两幅图像重建三维点

Opencv 在给定摄影机移动的情况下,从两幅图像重建三维点,opencv,camera,computer-vision,projective-geometry,Opencv,Camera,Computer Vision,Projective Geometry,我试图从同一台相机拍摄的两张图像中重建3D点的真实坐标。摄像机未校准,但运动(平移和旋转)已知。简言之: 要求: 无校准 图像点对应以外的其他约束: 已知的摄影机平移和旋转 在所有视图中使用相同的摄影机 我知道,仅从图像点对应关系,场景只能重建为投影变换。使用更多约束,可以进行仿射或相似性重建。在我的例子中,我需要一个相似性重建 鉴于上述限制,是否可以进行相似性重建?如果可能的话,我应该怎么做? 我试图从几个角度来探讨这个问题。由于我数学上不太流利,我尽量使用opencv findFun

我试图从同一台相机拍摄的两张图像中重建3D点的真实坐标。摄像机未校准,但运动(平移和旋转)已知。简言之:

要求:

  • 无校准
图像点对应以外的其他约束:

  • 已知的摄影机平移和旋转
  • 在所有视图中使用相同的摄影机
我知道,仅从图像点对应关系,场景只能重建为投影变换。使用更多约束,可以进行仿射或相似性重建。在我的例子中,我需要一个相似性重建

鉴于上述限制,是否可以进行相似性重建?如果可能的话,我应该怎么做?

我试图从几个角度来探讨这个问题。由于我数学上不太流利,我尽量使用opencv

  • findFundamentalMat()
    从两幅图像中,希望以某种方式提取两个摄影机矩阵,然后
    triangulatePoints()
    。正如你可以猜到的,我陷在中间,无法从基本矩阵获得相机矩阵。 教科书“计算机视觉中的多视图几何”(由Hartley和Zisserman编写)给出了一个表达式(第256页,结果9.14),该表达式用基本矩阵和一个对极表示摄像机矩阵。然而,在不知道相机的内在参数(要求:无校准)的情况下,我不知道如何获得对极

  • 我还尝试将我的问题视为立体声系统,并使用opencv的
    立体声***
    功能。但它们似乎都需要人工干预来校准,这违反了我的要求


  • 所以,这就是我今天在这里问这个问题的原因。关键仍然是,考虑到这些额外的约束,相似性重建是否可能?我不够聪明,无法理解外面的知识财富,也无法想出自己的解决方案。非常感谢您的帮助。

    如果您的相机内置了,您能解决问题吗?通常情况下,猜测校准可能会得到一些结果(可能无法满足您所需的精度),如果给定相机内部参数,我认为问题将变得微不足道。将第一个摄影机位置视为原点,应用平移和旋转以获得第二个摄影机姿势,然后
    triangulatePoints()
    将完成此工作。我说的对吗?如果你的相机内置了,你能解决这个问题吗?通常情况下,猜测校准可能会得到一些结果(可能无法满足您所需的精度),如果给定相机内部参数,我认为问题将变得微不足道。将第一个摄影机位置视为原点,应用平移和旋转以获得第二个摄影机姿势,然后
    triangulatePoints()
    将完成此工作。我说得对吗?