一 知识点
处理三维旋转问题时,通常采用旋转矩阵的方式来描述。一个向量乘以旋转矩阵等价于向量以某种方式进行旋转。除了采用旋转矩阵描述外,还可以用旋转向量来描述旋转,旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。旋转向量与旋转矩阵可以通过罗德里格斯(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),是输入与输出数组的偏导数。
可以用上述方式法验证以下例子


本文介绍三维旋转的基本概念及旋转向量与旋转矩阵之间的转换方法——Rodrigues变换。详细阐述了变换的数学原理及其在OpenCV中的具体实现。
3229

被折叠的 条评论
为什么被折叠?



