观察矩阵推导

顾名思义,观察矩阵的作用就是将一个点从世界坐标系转换到观察坐标系,这个点的实际位置并不发生变化。参考上一篇文章,问题就转化成了,假设任意点\vec p,它在世界坐标系W下的坐标为(x, y, z),求在观察坐标系V下的坐标(x', y', z')。套用公式,可得:
\vec p = x'\vec i_V + y'\vec j_V + z'\vec k_V + \vec o_V = x\vec i_W + y\vec j_W + z\vec k_W + \vec o_W
其中o为坐标系的原点坐标。将上述基向量看作世界坐标系W下的向量,可以写成矩阵形式:
[x,y,z,1] = [x',y',z', 1] \cdot \begin{bmatrix} \vec i_V & 0 \\ \vec j_V & 0 \\ \vec k_V & 0 \\ \vec o_V & 1 \end{bmatrix}
其中,\vec i_V,\vec j_V,\vec k_V, \vec o_V是观察坐标系V的基向量和原点在世界坐标系W的表示。一般来说,建立观察矩阵提供的参数是摄像机的世界坐标(Q_x, Q_y, Q_z),摄像机观察的目标点的世界坐标(T_x, T_y, T_z),代表世界up方向的向量(U_x, U_y, U_z)。分别求出上面矩阵的各个向量:
\vec o_V = (Q_x, Q_y, Q_z)

\vec k_V = (T_x - Q_x, T_y - Q_y, T_z - Q_Z)

\vec i_V = \vec{up} \times \vec k_v

\vec j_v = \vec k_v \times \vec i_v

注意要将它们进行归一化。归一化之后,可以得到
[x',y',z',1] = [x,y,z,1] \cdot \begin{bmatrix} \vec i_V & 0 \\ \vec j_V & 0 \\ \vec k_V & 0 \\ \vec o_V & 1 \end{bmatrix}^{-1} \\ = [x,y,z,1] \cdot (\begin{bmatrix} \vec i_V & 0 \\ \vec j_V & 0 \\ \vec k_V & 0 \\ 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0\\ & \vec o_V & & 1 \end{bmatrix})^{-1} \\ = [x,y,z,1] \cdot (\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0\\ & -\vec o_V & & 1 \end{bmatrix} \cdot \begin{bmatrix} \vec i_V & \vec j_V & \vec k_V & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}) \\ = [x,y,z,1] \cdot \begin{bmatrix} i_x & j_x & k_x & 0 \\ i_y & j_y & k_y & 0 \\ i_z & j_z & k_z & 0\\ -\vec o_V \cdot \vec i_V & -\vec o_V \cdot \vec j_V & -\vec o_V \cdot \vec k_V & 1 \end{bmatrix}
这就是我们最终要求的观察矩阵。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 理解矩阵一:转载自:http://blog.csdn.net/myan/article/details/64751...
    jiandanjinxin阅读 1,563评论 1 15
  • 如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。”,然而“按照现行的国际标准,线性代数是通过公...
    Drafei阅读 1,610评论 0 3
  • 一个人,到底要什么时候才算真正的离去呢?是当生存的意义消失的时候,肉体毁灭的时候,还是没有人再记得的时候呢? 正如...
    赵澜青阅读 66评论 0 0
  • 我爱我的沉静,像是扑灭大火的雨。 像是行驶在南极冰河的船。 它能扑灭我的怒火,抑制我的悲伤, ...
    WMYZ阅读 171评论 0 0
  • 安装命令,设置超时 相关参数 -F, –onefile 打包一个单个文件,如果你的代码都写在一个.py文件的...
    蕴重Liu阅读 3,727评论 0 0