您的位置:首页 > 其它

推导相机变换矩阵

2017-03-26 13:27 232 查看
参考 推导相机变换矩阵 : 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是正交矩阵,所以逆就是转置)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  3D数学