使用特征提取器和描述符,我计算了两个视图(图像)之间的基本矩阵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,即视图2中pt1的坐标
简单回答:你不能
详细回答:您需要解决三维结构和运动,使用图像空间作为验证两者证据的地方。很明显,您处于校准场景中,因此您可能希望进行立体重建,或者,如果是在多视图场景中,则需要进行束调整
相关问题 更多 >
编程相关推荐