Multiple View Geometry in Computer Vision A.4.1.1 (page 579)
将一个 3x3 矩阵 A进行 RQ 分解是将其分解成为一个上三角阵 R与一个正交阵(orthogonal matrix) Q的乘积。要求矩阵 A的秩为3,即满秩。
所谓矩阵 Q正交是指 QTQ=I, Q可以看作是一个旋转矩阵。此旋转矩阵由三个子旋转矩阵点乘而来,即 Q=QxQyQz。Qx,Qy,Qz如下:
Qx=⎡⎣⎢⎢1000cos(roll)sin(roll)0−sin(roll)cos(roll)⎤⎦⎥⎥
Qy=⎡⎣⎢⎢cos(pitch)0−sin(pitch)010sin(pitch)0cos(pitch)⎤⎦⎥⎥
Qz=⎡⎣⎢⎢cos(yaw)sin(yaw)0−sin(yaw)cos(yaw)0001⎤⎦⎥⎥
将矩阵 A右乘一个矩阵,相当于将 A进行一次初等列变换。
由
A=RQ=RQTzQTyQTx
得 AQxQyQz=R
将 A右乘 Qx是将 A的第一列保持不变,第二列和第三列进行线性组合,解释如下:
A=⎡⎣⎢⎢A11A21A31A12A22A32A13A23A33⎤⎦⎥⎥
AQx=⎡⎣⎢⎢A11A21A31cA12+sA13cA22+sA23cA32+sA33−sA12+cA13−sA22+cA23−sA32+cA33⎤⎦⎥⎥
上式省略了 roll,将 [AQx]32置为0。加上 c2+s2=1的条件,可以算出 c,s,求得 Qx。
AQx的结果右乘 Qy是将第二列保持不变,第一列和第三列进行线性组合,将 [AQxQy]31置为0,求得 Qy。
AQxQy的结果右乘 Qz是将第三列保持不变,第一列和第二列进行线性组合,将 [AQxQyQz]21置为0,求得 Qx。
经过三次右乘(初等列变换)可以得到上三角阵 R。
最后由计算得到的 Qx,Qy,Qz通过 Q=QTzQTyQTx,得到 A的 RQ 分解。
对于 QR、LQ、QL 分解使用类似的方式进行计算。QR 与 QL 分解是将矩阵 A进行初等行变换。
版权声明:本文为u011306452原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。