标题有点拗口,但基本上我有两张照片(我正在初始化一个场景图),我想恢复第二张照片的相对姿势。我知道如何从基本矩阵中恢复姿势,但这需要了解焦距(以像素为单位)和原点。原点很简单,但我如何去了解焦距。我要估计它并把它留在那里吗?我可以只使用基本矩阵而不是基本矩阵吗?或者我是否从 f 的估计开始并执行循环,直到来自两个相机的光线通过关键点会聚或它们的距离最小化?
TLDR;不知道如何找到 F 以从极地地理恢复姿势,感谢任何帮助
这是一些代码:
pts_l_norm = cv2.undistortPoints(np.expand_dims(pts_l, axis=1), cameraMatrix=K_l, distCoeffs=None)
pts_r_norm = cv2.undistortPoints(np.expand_dims(pts_r, axis=1), cameraMatrix=K_r, distCoeffs=None)
E, mask = cv2.findEssentialMat(pts_l, pts_r, focal=1.0, pp=(0., 0.), method=cv2.RANSAC, prob=0.999, threshold=3.0)
points, R, t, mask = cv2.recoverPose(E, pts_l, pts_r)
print(R,t)
其中 K_l 是内在矩阵,pts_l 和 r 是通过 SIFT 找到的关键点