参考:http://www.cppblog.com/Tongy0/archive/2012/09/10/190126.html
转载自:http://blog.csdn.net/shenxiaolu1984/article/details/50639298 http://blog.csdn.net/tanmengwen/article/details/8477556
使用matlab中Aerospace工具箱函数进行变换:http://www.mamicode.com/info-detail-1308422.html
旋转矩阵
欧拉角
四元数
旋转向量(轴-角)
旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。
旋转向量与旋转矩阵可以通过罗德里格斯(Rodrigues)变换进行转换。
Matlab中旋转向量到旋转矩阵的转换为:
rotationMartrix=rotationVectorToMatrix([rotationVector])
<span style="font-size:14px;">#include <stdio.h>
#include <cv.h>
void main()
{
int i;
double r_vec[3]={-2.100418,-2.167796,0.273330};
double R_matrix[9];
CvMat pr_vec;
CvMat pR_matrix;
cvInitMatHeader(&pr_vec,1,3,CV_64FC1,r_vec,CV_AUTOSTEP);
cvInitMatHeader(&pR_matrix,3,3,CV_64FC1,R_matrix,CV_AUTOSTEP);
cvRodrigues2(&pr_vec, &pR_matrix,0);
for(i=0; i<9; i++)
{
printf("%f\n",R_matrix[i]);
}
}
</span>