我尝试使用opencv从基本矩阵确定相机运动 . 我目前正在使用光流来跟踪每个其他帧中点的移动 . 基本矩阵源自基本矩阵和相机矩阵 . 我的算法如下
1 . 使用goodfeaturestotrack功能从帧中检测特征点 .
2 . 跟踪点到下两个或三个帧(Lk光流),在此期间使用对应点计算平移和旋转矢量
3 . 两三帧后刷新点数(使用goodfeaturestotrack) . 再次找到平移和旋转向量 .
据我所知,当我刷新点并重新开始新的跟踪时,我无法添加平移向量以从头开始查找总运动,因为轴不断变化 . 任何人都可以建议我如何计算从原点的运动总和 .
1 回答
将所有相对摄像机位置写入4x4变换矩阵,然后逐个乘以每个矩阵 . 例如:
相对于原点坐标系的第1帧位置= [R1 T1]
相对于第1帧坐标系的第2帧位置= [R2 T2]
相对于第2帧坐标系的第3帧位置= [R3 T3]
相对于原点坐标系的第3帧位置= [R1 T1] * [R2 T2] * [R3 T3]