OpenCV 旋转向量与旋转矩阵转化(罗德里格斯 )
2015-03-17 10:58
1351 查看
一 知识点
处理三维旋转问题时,通常采用旋转矩阵的方式来描述。一个向量乘以旋转矩阵等价于向量以某种方式进行旋转。除了采用旋转矩阵描述外,还可以用旋转向量来描述旋转,旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。旋转向量与旋转矩阵可以通过罗德里格斯(Rodrigues)变换进行转换。
算法过程如下:
式中,norm为求向量的模。反变换也可以很容易的通过如下公式实现:
OpenCV实现Rodrigues变换的函数为
src为输入的旋转向量(3x1或者1x3)或者旋转矩阵(3x3)。
dst为输出的旋转矩阵(3x3)或者旋转向量(3x1或者1x3)。
jacobian为可选的输出雅可比矩阵(3x9或者9x3),是输入与输出数组的偏导数。
可以用上述方式法验证以下例子
二实现
1 配置openCV
2运行vs2010,新建一个空工程
新建一个文件
4 在空的cpp代码页加入代码
#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]);
}
}
生成:
快捷键:ctrl+F5
处理三维旋转问题时,通常采用旋转矩阵的方式来描述。一个向量乘以旋转矩阵等价于向量以某种方式进行旋转。除了采用旋转矩阵描述外,还可以用旋转向量来描述旋转,旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。旋转向量与旋转矩阵可以通过罗德里格斯(Rodrigues)变换进行转换。
算法过程如下:
式中,norm为求向量的模。反变换也可以很容易的通过如下公式实现:
OpenCV实现Rodrigues变换的函数为
int cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian=0 );
src为输入的旋转向量(3x1或者1x3)或者旋转矩阵(3x3)。
dst为输出的旋转矩阵(3x3)或者旋转向量(3x1或者1x3)。
jacobian为可选的输出雅可比矩阵(3x9或者9x3),是输入与输出数组的偏导数。
可以用上述方式法验证以下例子
二实现
1 配置openCV
2运行vs2010,新建一个空工程
新建一个文件
4 在空的cpp代码页加入代码
#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]);
}
}
生成:
快捷键:ctrl+F5
相关文章推荐
- OpenCV 旋转向量与旋转矩阵转化(罗德里格斯 )
- OpenCV--旋转向量与旋转矩阵相互转化
- 旋转向量-旋转矩阵
- 刚体在三维空间的旋转(关于旋转矩阵、DCM、旋转向量、四元数、欧拉角)
- 刚体在三维空间的旋转(关于旋转矩阵、DCM、旋转向量、四元数、欧拉角)
- 三维坐标变换——旋转矩阵与旋转向量
- 根据旋转前后的向量值求旋转矩阵
- openCV---旋转向量转旋转矩阵
- 刚体在三维空间的旋转(关于旋转矩阵、DCM、旋转向量、四元数、欧拉角)
- 旋转向量与旋转矩阵相互转化
- 旋转矩阵及旋转向量相互转化 Rodrigues矩阵
- 旋转向量和旋转矩阵的互转换
- 根据旋转前后的向量值求旋转矩阵
- OpenCV学习笔记(一)——旋转向量与旋转矩阵相互转化
- OpenCV中向量是可以转化为MAT类型的~
- 旋转矩阵和旋转向量
- 旋转向量与旋转矩阵的联系、点乘点积的意义、飞机的姿态角
- 根据旋转前后的向量值求旋转矩阵
- OpenCV学习笔记(一)——旋转向量与旋转矩阵相互转化
- 坐标系转换之三:欧拉角、四元数、旋转矩阵、方向余弦矩阵、旋转向量、轴角表示