推导相机变换矩阵

来源:互联网 发布:淘宝男装品牌 知乎 编辑:程序博客网 时间:2024/06/05 20:45

参考 推导相机变换矩阵 : http://blog.csdn.net/popy007/article/details/5120158


在上面的文章中,了解到坐标转换公式。


具体的公式: P = MA * PA = MB * PB 

(其中 MA 是一个矩阵,代表一个坐标系,MB也是一个矩阵,代表一个坐标系,那么PA,PB就是各自坐标系的点)


开始推导:

1. 相机的变换矩阵,其实就是为了把 世界坐标系中的 物体 变换到 相机坐标系中,简单地所就是,PW * M = PC, 其中 PW就是世界坐标系中的一个点,M就是这个相机的变换矩阵,得到的PC就是PW在相机坐标系中对应的点。


2. 所以,我们要求的就是这个矩阵M,由坐标转换公式得到,P = MW * PW = MC * PC ,其中,MW 是世界坐标系矩阵,PW是世界坐标系的点,MC是相机坐标系的矩阵,PC是相机坐标系下的点。


MW * PW = MC * PC 

=》 PW = MC * PC  (由于MW是单位矩阵)


3. PW = MC * PC

那么怎么表示MC ,MC其实利用相机的UVN, pos就可以表示,

MC =  |    Ux     Vx    Nx   Tx  |

          |     Uy     Vy    Ny   Ty  |

          |    Uz    Vz    Nz     Tz    |

          |     0       0      0       1  |


上面的 MC 其实可以表示为两个矩阵相乘

 

MC =  |    Ux     Vx    Nx   Tx  |    =>      |   1     0   0  Tx  |      *      |    Ux     Vx    Nx   0  | 

          |     Uy     Vy    Ny   Ty  |               |    0    1    0  Ty  |              |    Uy     Vy    Ny   0  | 

          |    Uz    Vz    Nz     Tz    |             |   0     0    1   Tz  |               |    Uz     Vz    Nz   0  | 

          |     0       0      0       1  |                |    0    0    0   1  |              |    0     0    0   1  | 


MC             =  (MT) * (MR)

4.  看回 PW = MC * PC 其实,我们要求的是PC,所以得到,


 PC = MC^(-1) * PW


看到这里,其实,MC^(-1) 就是我们需要求的相机变换矩阵。


根据上面的MC的表示,(如果A,B,C都是方阵 , (ABC)^(-1)=(C^-1)(B^-1)(A^-1))


MC^(-1)  =  (MT * MR) ^(-1)

                = MR ^(-1)   *  MT^(-1)     


      |    Ux     Vx    Nx   0  |                              |   1     0   0  Tx  |  

   (  |    Uy     Vy    Ny   0  |   )  ^(-1) *     (    |    0    1    0  Ty  |   ) ^ (-1)

      |    Uz     Vz    Nz   0  |                               |   0     0    1   Tz  |    

       |    0     0    0   1  |                                    |    0    0    0   1  | 


(因为MR是正交矩阵,所以逆就是转置)






0 0
原创粉丝点击