相机模型与校准技术详解
1. 罗德里格斯变换(Rodrigues Transform)
在处理三维空间的旋转问题时,通常会使用 3×3 矩阵来表示旋转。虽然这种表示方式在计算向量旋转时很方便,通过矩阵与向量相乘就能实现向量的旋转,但有时很难直观地理解具体的矩阵对应着怎样的旋转。
罗德里格斯变换提供了一种替代的表示方法,它用一个向量和一个角度来表示旋转。具体来说,使用一个三维向量 $\vec{r} = [r_x, r_y, r_z]$,向量的方向表示旋转轴的方向,向量的长度(模)表示旋转的大小(角度)。
罗德里格斯变换建立了矩阵表示和向量表示之间的关系。OpenCV 提供了 cv::Rodrigues() 函数来实现这两种表示之间的转换:
void cv::Rodrigues(
cv::InputArray src, // Input rotation vector or matrix
cv::OutputArray dst, // Output rotation matrix or vector
cv::OutputArray jacobian = cv::noArray() // Optional Jacobian (3x9 or 9x3)
);
操作步骤如下:
- 若要将向量 $\vec{r}$ 转换为对应的旋转矩阵 $R$,将 src 设置为 3×1 向量 $\vec{r}$,将 dst
超级会员免费看
订阅专栏 解锁全文
52

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



