使用OpenCV从两组输入点查找新的摄像机矩阵

时间:2016-06-07 20:44:48

标签: c++ opencv

考虑以下输入数据:

  • CP:相机内部参数(3x3)(more info
  • WP:4x 3D世界坐标(即世界空间中的4个点)

现在考虑以下变量:

  • CM1:当前相机位置&旋转(4x4矩阵)
  • SP1:4x 2D屏幕坐标(即屏幕空间中的4个点)
  • SP2:再次4x 2D屏幕坐标(即屏幕空间中的4个点)

约束SP1来源于CM1相机在CP处使用相机参数WP。为清楚起见,让我们将这种关系表达为以下(虽然这可能不是矩阵数学中的正确公式)。

SP1 = CM1 * CP * WP

我正在努力寻找新的相机位置&旋转CM2,以便

SP2 = CM2 * CP * WP

我一直在尝试使用cvCalibrateCamera(),但没有成功。我很高兴我终于找到了如何转换所有数据,以便该函数不再吐出错误。但是现在我认为在这种情况下函数可能不正确,因为我不知道如何应用输出数据。 (我觉得该功能用于根据输入数据计算摄像机内部参数,但文档对我来说并不清楚。如果您对我的谦虚尝试感兴趣:http://pastebin.com/WC8CKUhZ

有没有办法实现我想用openCV计算的东西?我找不到任何符合我的要求的功能超过cvCalibrateCamera()(从我可以输入的数据中猜出)。

0 个答案:

没有答案