-1

我在连续帧之间有正确的对应关系,并且需要估计它们之间的转换以生成轨迹。下面的 C++ 管道,生成的轨迹毫无意义。

auto EssentialMatrix = cv::findEssentialMat(points_previous,
                                            points_current, 
                                            camera_focal_length, 
                                            camera_principal_point,
                                            cv::RANSAC, 
                                            0.999, 
                                            1.0, 
                                            mask);

auto inliers = cv::recoverPose(EssentialMatrix, 
                points_previous, 
                points_current, 
                CameraMatrix, 
                R, 
                t, 
                mask);

t_pos_ = t_pos_ + 1.0 *(R_pos_*t);  
R_pos_ = R * R_pos_;             

所以,我的问题是:如何使用 C++ OpenCV 实用程序正确恢复两个连续帧之间的转换?是否需要额外的步骤来这样做?

4

1 回答 1

0

我真的不知道你的问题是什么。试着给出什么输入,什么是“你的预期输出”什么是实际输出。

但我确实知道在哪里可以找到样本 https://github.com/avisingh599/mono-vo

尝试在这里查看示例。它是纯 2D 到 2D 基于 opencv 的估计。唯一不同的是他们使用数据集 saclaing 来调整平移向量比例。2D 到 2D 仅给出相对平移。

http://www.youtube.com/watch?v=homos4vd_Zs

在此处输入图像描述

于 2020-06-26T12:52:52.717 回答