我正在开展一个涉及 Aruco 标记和 openCV 的项目。我的项目进展还很远。我可以读取旋转向量并使用 openCV 将它们转换为罗德里格斯矩阵rodrigues()。
这是我得到的罗德里格斯矩阵的示例:
[0,1,0;
1,0,0;
0,0,-1]
Run Code Online (Sandbox Code Playgroud)
我使用以下代码。
Mat m33(3, 3, CV_64F);
Mat measured_eulers(3, 1, CV_64F);
Rodrigues(rotationVectors, m33);
measured_eulers = rot2euler(m33);
Degree_euler = measured_eulers * 180 / CV_PI;
Run Code Online (Sandbox Code Playgroud)
我使用预定义的 rot2euler 将罗德里格斯矩阵转换为欧拉角。我将收到的弧度转换为度数。
rot2euler 如下所示。
Mat rot2euler(const Mat & rotationMatrix)
{
Mat euler(3, 1, CV_64F);
double m00 = rotationMatrix.at<double>(0, 0);
double m02 = rotationMatrix.at<double>(0, 2);
double m10 = rotationMatrix.at<double>(1, 0);
double m11 = rotationMatrix.at<double>(1, 1);
double m12 = rotationMatrix.at<double>(1, 2);
double m20 = rotationMatrix.at<double>(2, 0);
double …Run Code Online (Sandbox Code Playgroud)