使用特征提取器和描述符,我已经计算了两个视图(图像)之间的基本矩阵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的坐标。
发布于 2020-11-30 11:51:27
简短的回答是:你不能。
漫长的答案:你需要解决3d结构和运动,使用图像空间作为两者的证据得到验证的地方。显然,您处于已校准的场景中,因此您可能希望进行立体重建,或者,如果是在多视图场景中,则需要进行捆绑调整。
https://stackoverflow.com/questions/65065224
复制相似问题