您的位置:首页 > 其它

【图像处理】一种求三维空间中两单位向量之间旋转矩阵的方法

2016-06-02 00:31 836 查看
矩阵相乘有多种含义,比如:从一种坐标系切换到另外的坐标系;空间中的运动。其中旋转矩阵相乘会改变物体的旋转角度,但不会改变物体形状和位置。单位向量可以看做一维物体,单位向量实际只有一个坐标轴,垂直于该坐标轴的其他两个坐标轴,无论怎么修改,对该单位向量并没有影响。现在我们已知两个单位向量,要求解一个向量va到另外一个向量vb的旋转矩阵,本质上可以理解为从前者对应的坐标系切换到后者对应的坐标系,与向量坐标轴相互垂直的两个坐标轴,只要满足垂直的要求即可,因为向量在垂直于向量方向上的旋转没有意义。

为了方便求解,我先考虑从[1,0,0]向量转换到va向量的旋转矩阵。显然[1,0,0]向量对应的是x轴,旋转到va向量等价于将x轴变换到va向量的坐标轴,那么新坐标系的x轴就是va,令新坐标系的x轴为va1=va。接下来我们要求得垂直于va的单位向量,那么应用叉乘计算可以得到va2=va1×[1,0,0]),va3=va1×va2→va2⊥va1,va3⊥va1,va2⊥va3将va2和va3都归一化,就得到了一个新坐标系,也可以说是旋转矩阵RotateMatrixA=[va1Tva2Tva3T]→RotateMatrixA⋅⎡⎣⎢100⎤⎦⎥=vaT用同样的方法获得[1,0,0]到vb的旋转矩阵RotateMatrixB,那么从va到vb的旋转矩阵为:RotateMatrixB⋅RotateMatrixA−1⋅vaT=vbT→RotateMatrix=RotateMatrixB⋅RotateMatrixA−1

其中需要2+2=4次叉乘,2+2=4次向量归一化,1次矩阵求逆和1次矩阵乘法才能获得旋转矩阵。这是一个笨办法,但是对数学苦手要友好的多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图像处理 三维