我希望使用
我知道我需要做以下三步:
1)检测两个帧上的特征(例如使用
但是,我不知道如何使用
我的目标是计算相机的轨迹。
OpenCV
计算两个帧之间的旋转-平移矩阵[R|t](请参见http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html?highlight=fundamentalmat#camera-calibration-and-3d-reconstruction)。我知道我需要做以下三步:
1)检测两个帧上的特征(例如使用
SURF
),
2)匹配特征(例如使用ORB
和BFMatcher
),
3)计算[R|t]矩阵。已知内部参数。但是,我不知道如何使用
OpenCV
完成第三步。是否有一种常规/简单的方法来完成这个过程?我的目标是计算相机的轨迹。
cv::findHomography()
函数了吗? - Iwillnotexist IdonotexistfindHomography()
接收vector<Point2f>
来源和目标点,并找到将源映射到目标点的3x3投影矩阵。我强烈建议在findHomography()
中使用默认参数的 RANSAC 方法。因为它接受的点是2D的,所以它完全忽略了深度。对于2D-to-3D对应关系,您需要solvePnP()
或solvePnPRANSAC()
,但首先您需要知道3D对象坐标空间中目标的实际坐标。 - Iwillnotexist Idonotexist