参考: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
旋转矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/66ea16aa7cbc6f553d3c157c8c35f9b6.png)
欧拉角
![](https://i-blog.csdnimg.cn/blog_migrate/2a9741ee3bacd2b6b0e41adf07f6cb6c.png)
四元数
![](https://i-blog.csdnimg.cn/blog_migrate/2601f97f57d25d9be3bef815b5787c74.png)
旋转向量(轴-角)
旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。
![](https://i-blog.csdnimg.cn/blog_migrate/13b1e59d08f4ea528ae1772ae63c81a0.png)
旋转向量与旋转矩阵可以通过罗德里格斯(Rodrigues)变换进行转换。
![](https://i-blog.csdnimg.cn/blog_migrate/cb33484ecc959c52676206677f0ddb36.png)
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>
![](https://i-blog.csdnimg.cn/blog_migrate/e96bc06126793d911535fdb11bf85544.png)