Computer vision 如果两幅图像之间的变换已知,则查找相机位置之间的变换

Computer vision 如果两幅图像之间的变换已知,则查找相机位置之间的变换,computer-vision,css-position,camera-calibration,matlab-cvst,vision,Computer Vision,Css Position,Camera Calibration,Matlab Cvst,Vision,我得到了两幅建筑物的图像,我知道这两幅图像之间的转换,我也知道第一个摄像机位置相对于某个坐标系的坐标,如何才能得到第二幅图像在同一坐标系下的摄像机坐标。我没有得到任何其他信息。如果您有两张图像,则可以执行以下步骤来生成第二个摄影机的坐标: 提取每个图像的特征点(以及描述符)(可以使用SIFT特征) 匹配两个图像的特征点(可以使用flann库或蛮力匹配)。这些匹配对中的每一对都是连接点 可以使用连接点来计算一个摄影机在另一个摄影机之间的相对位置。(可以使用5点方法,但此方法至少需要5个连接点-)

我得到了两幅建筑物的图像,我知道这两幅图像之间的转换,我也知道第一个摄像机位置相对于某个坐标系的坐标,如何才能得到第二幅图像在同一坐标系下的摄像机坐标。我没有得到任何其他信息。

如果您有两张图像,则可以执行以下步骤来生成第二个摄影机的坐标:

  • 提取每个图像的特征点(以及描述符)(可以使用SIFT特征)
  • 匹配两个图像的特征点(可以使用flann库或蛮力匹配)。这些匹配对中的每一对都是连接点
  • 可以使用连接点来计算一个摄影机在另一个摄影机之间的相对位置。(可以使用5点方法,但此方法至少需要5个连接点-)
  • 使用第一个相机位置的相对方向(在步骤3中生成)来计算第二个相机的位置
  • 但是您需要一些相机信息,如用于准确执行步骤4的内部信息,如果您没有这些信息,则有一些方法可以估计它们(如估计相机的内部信息)

    实际上,每个步骤所需的实现都可以在非常流行的库中找到,如opencv和libmv(都是用C、C++实现的),但它们可能没有这些方法的matlab包装器,如果您愿意,可以找到它们


    注意:使用此解决方案,您不能使用以前计算的图像变换结果。

    您说您知道两个图像之间的变换是什么意思?您是否正在查看平面,并且知道将一个图像映射到另一个图像的单应/投影函数?因为通常要知道图像之间的转换,你需要知道场景的几何结构……我使用了matlab中vision package的step函数来获得两幅图像之间的转换。假设我有一幅建筑物的图像,并且我知道该图像的相机相对于某个坐标系的位置。现在,我从另一个未知位置拍摄了同一栋建筑的另一张照片。现在,从这两幅图像中,我必须找到第二幅图像相对于同一坐标系的相机位置。