'''
自己整理备忘,也供后人参考。
KZ@njucs.onMicrosoft.com
本节记录了cv姿态评估的常见思路,建立模型的方法与Levenberg-Marquardt优化原理。
在下一节中,我们将讨论如何在工程上将旋转向量、欧拉角与四元数之间进行转换。
'''
基础知识:
仿射变换是计算机视觉领域应用十分广泛的特殊变换。是指在几何中,一个向量进行一次线性变换并接上一个平移,变换为另一个向量。对于一个三维直角坐标系,基于每个坐标轴的旋转具有的规则旋转空间的集合,可以表示任何三维向量。在有限维的情况,每个仿射变换可以由一个矩阵A和一个向量b给出,对应于一个矩阵和一个向量的乘法,而仿射变换的复合对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是0除了最右边是一个1,而列向量的底下要加上一个1。
一个对向量平移向量b,与旋转放大缩小 A的仿射映射为
在齐次坐标上,等价于
在分形的研究里,收缩平移仿射映射可以制造制具有自相似性的分形。一个在两个仿射空间之间的仿射变换,是在向量上呈现线性之坐标点的变换(即为空间中点与点之间的向量)。以符号表示的话, 使得
,决定任一对点的线性变换:
或者
在二维坐标系上绕原点进行的二维旋转:
如图所示,当点v绕原点转动θ至v',假设v点的坐标是(x,y),那么可以推导得到v'(x',y'),过程如下:
参数如图,我们发现:
x=rcosϕ
y=rsinϕ
x′=rcos(θ+ϕ)
y′=rsin(θ+ϕ)
通过三角函数展开得:
x′=rcosθcosϕ−rsinθsinϕ
y′=rsinθcosϕ+rcosθsinϕ
代入x,y表达式可得:
x′=xcosθ−ysinθ
y′=xsinθ+ycosθ
使用矩阵表示:
绕任意轴的三维旋转
绕任意轴的三维旋转可以将旋转分解为一系列基本的二维旋转,如图所示:
</