連続するフレーム間に正しい対応があり、それらの間の変換を推定して軌道を生成する必要があります。次の 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 ユーティリティを使用して、2 つの連続するフレーム間の変換を正しく回復する方法は? そのために追加の手順が必要ですか?