立体相机的opencv世界坐标

时间:2021-07-14 21:02:46

标签: opencv computer-vision coordinate-transformation visual-odometry

您好,我正在尝试计算立体相机的世界坐标,但不确定我是否完全正确。

在特征匹配之后,获得 3D 点并过滤内点,我使用了 solvePNPRansac 并获得了一个旋转和平移向量。

cv::solvePnPRansac(points3DIn_Left, currMatchesIn_Left, camMatLeft, emptyDistCoeff, rVec_Left, tVec_Left);
cv::solvePnPRansac(points3DIn_Right, currMatchesIn_Right, camMatRight, emptyDistCoeff, rVec_Right, tVec_Right);

这些已经是真实世界坐标了吗?

在其他来源中,他们使用 Rodrigues,然后将平移向量与转置旋转矩阵相乘。

cv::Mat R = cv::Mat(3, 3, CV_64F, double(0));;
cv::Rodrigues(r, R);
cv::Mat result = -(R.t() * t);

在另一个来源中,他们将值放入转换矩阵中。

cv::Mat R = cv::Mat(3, 3, CV_64F, double(0));;
cv::Rodrigues(r, R);
cv::Mat T = cv::Mat::eye(4, 4, R.type());
T(cv::Range(0,3), cv::Range(0,3) ) = R;
T(cv::Range(0,3), cv::Range(3,4) ) = -(R.t() * t;

这是否需要计算相机的真实世界坐标? 也许你可以帮助我了解我的相机的真实世界坐标是什么。非常感谢任何帮助。

0 个答案:

没有答案
相关问题