【问题标题】:Get corresponding point using essential matrix使用本质矩阵获取对应点
【发布时间】:2020-11-29 21:12:00
【问题描述】:

使用特征提取器和描述符,我计算了两个视图(图像)之间的基本矩阵E。因为我有相机内在函数K,所以我也可以获得基本矩阵F

给定一个图像坐标(x,y),我可以得到第二个视图中点的(x', y')坐标吗?如果是这样,如何做到这一点?

通过文献,我似乎可以获得极线而不是确切的点,但我并不完全确定。如果能得到(x,y)坐标的深度,即得到坐标的3D位置,能解决问题吗?

一个明显的解决方案是从基本矩阵中找到Rt,变换3D 点并将其重新投影到新图像上。但是在单目设置中,平移总是单位长度,因此尺度是模棱两可的,这可能无济于事。因此,在保留图像空间本身的同时获得解决方案的最佳方法是什么,即单独使用EF

示例:

E = np.asarray([-5.87054215e-04, -6.95705527e-01, -1.25874334e-01],
 [ 6.95659154e-01, -6.83523163e-04,  1.27646362e-02],
 [ 1.26062967e-01, -1.23362647e-02,  1.03722270e-04]])
K = np.array([[1.06682307e+03, 0.00000000e+00, 6.14908333e+02], [0.00000000e+00 ,1.06935269e+03 ,3.28409838e+02], [0.00000000e+00 ,0.00000000e+00 ,1.00000000e+00]])

pt1 = [140,400]

假设pt1 的深度是6.2。 如何找到 pt2,即 view2 中 pt1 的坐标。

【问题讨论】:

    标签: python opencv computer-vision


    【解决方案1】:

    简短的回答:你不能。

    长答案:您需要求解 3d 结构和运动,使用图像空间作为验证两者证据的地方。您显然处于校准场景中,因此您可能希望寻找立体重建,或者如果在多视图场景中,则寻找捆绑调整。

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 1970-01-01
      • 2013-04-11
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多