【发布时间】:2020-11-29 21:12:00
【问题描述】:
使用特征提取器和描述符,我计算了两个视图(图像)之间的基本矩阵E。因为我有相机内在函数K,所以我也可以获得基本矩阵F。
给定一个图像坐标(x,y),我可以得到第二个视图中点的(x', y')坐标吗?如果是这样,如何做到这一点?
通过文献,我似乎可以获得极线而不是确切的点,但我并不完全确定。如果能得到(x,y)坐标的深度,即得到坐标的3D位置,能解决问题吗?
一个明显的解决方案是从基本矩阵中找到R 和t,变换3D 点并将其重新投影到新图像上。但是在单目设置中,平移总是单位长度,因此尺度是模棱两可的,这可能无济于事。因此,在保留图像空间本身的同时获得解决方案的最佳方法是什么,即单独使用E 和F?
示例:
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