我想使用Optical Flow跟踪OpenCV中对象的旋转和平移。到目前为止,我有这样的事情:
此时我正试图区分图像之间的旋转和平移Mat,并将它们添加到初始旋转和平移矩阵中。
cv::solvePnPRansac(pattern.points3d, _points2d, calibration.getIntrinsic(), calibration.getDistorsion(), raux, taux);
raux.convertTo(Rvec, CV_32F);
taux.convertTo(Tvec, CV_32F);
cv::Mat_<float> rotMat(3, 3);
cv::Rodrigues(Rvec, rotMat);
cv::Mat_<float> transDiff = _prevTranslation - Tvec;
cv::Mat_<float> rotDiff = _prevRotation - rotMat;
_absRotation += rotDiff;
_absTranslation += transDiff;
这种方法的问题是翻译矢量不遵循图像。向量倾向于保持在该范围内 [0.02 0.2 -1.5]
它并不偏离这个位置。
感谢。