Opencv恢复默认参数

时间:2020-06-26 09:55:47

标签: python opencv

我正在尝试进行自我运动估计。一旦获得对应点,就使用cv2.findEssentialMat,然后使用cv2.recoverPose

我怀疑cv2.recoverPose的论点。当我仅给出cv2.recoverPose(E, kp1, kp2)而未指定相机内部函数时,代码不会给出任何错误,并且可以运行。

但是,在查看cv2.recoverPose的函数声明时,它具有照相机固有特性作为可选参数。这有什么用。如果我不提供相机内部参数,那么将选择哪些默认值?

在运行实验时,我注意到有两件事,无论是否通过了cv2.recoverPose的cam内在函数。 实验设置的详细信息:安装在汽车上的摄像头(如果熟悉的话,类似于KITTI数据集)。获得了1000帧的视频序列,获得了序列图像的特征对应。

  1. 在第一种情况下(未通过任何照相机内在函数),很多翻译符号都被颠倒了。由于我的相机安装在车辆上,并且总是向前运动,所以如果向前运动为负,我只需将平移乘以-1。虽然这不是一个好方法,但从头开始,它会起作用。
  2. 我注意到的第二个奇怪的事情是,当我通过我的相机内在函数时,更少的平移值为负,因此这肯定是一件好事,但是,轨迹是相当不正确的,这意味着与没有通过相机固有值。经过进一步检查,我发现通过了螯合性检查的点数为零或接近零,我想知道为什么会这样。 (在我没有通过相机内在函数的第一种情况下,返回的点数很多,与上一步找到基本矩阵的步骤中发现的内点数相当,即大约100s)

为什么会这样?任何解释将不胜感激。我是否应该通过相机的内部特性来恢复姿势?在那种情况下,为什么我会得到不正确的值?

谢谢

0 个答案:

没有答案