在谈到针孔相机模型时,首先要搞清楚以下几个坐标系:
世界坐标系:世界坐标系也称绝对坐标系,是一个基准坐标系,可以根据根据实际情况进行指定。世界坐标系中的点我们用( X w X_w Xw, Y w Y_w Yw, Z w Z_w Zw)T表示。
相机坐标系:图中的O-x-y-z为相机坐标系,以光心O(也是相机的针孔)为原点,相机坐标系会随着相机的运动不断发生变化。相机坐标系中的点我们用( X c X_c Xc, Y c Y_c Yc, Z c Z_c Zc)T表示。
图像物理坐标系:图中的O’-x’-y’为图像物理坐标系,位于CCD/CMOS的成像平面上。图像物理坐标系中的点我们用 ( X ′ , Y ′ ) (X', Y') (X′,Y′)表示。
像素坐标系:图中的O’‘-u-v为图像像素坐标系,像素坐标系中的点用 ( u , v ) (u, v) (u,v)表示,它表征的是像素所在的行和列。
针孔相机模型实际是将世界坐标系中的空间点映射到像素坐标系中,那么如果已知 P P P点在世界坐标系中的坐标为( X w X_w Xw, Y w Y_w Yw, Z w Z_w Zw)T,怎么求 P P P点在像素坐标系下投影的坐标 ( u , v ) (u, v) (u,v)呢?
1、世界坐标系 —> 相机坐标系
世界坐标系与相机坐标系之间的关系为欧式变换关系,将世界坐标系下的点( X w X_w Xw, Y w Y_w Yw, Z w Z_w Zw)T转换到相机坐标系,可以通过旋转矩阵 R R R和平移向量 t t t进行变换得到:
[ X c Y c Z c 1 ] 4 ∗ 1 = [ R 3 ∗ 3 t 3 ∗ 1 0 1 ] 4 ∗ 4 . [ X w Y w Z w 1 ] 4 ∗ 1 = M 4 ∗ 4 . [ X w Y w Z w 1 ] 4 ∗ 1 (1) \left[ \begin{matrix} X_c \\ Y_c \\ Z_c \\ 1 \\ \end{matrix} \right] _{4*1} = \left[ \begin{matrix} R_{3*3} & t_{3*1} \\ 0 & 1 \\ \end{matrix} \right]_{4*4} . \left[ \begin{matrix} X_w \\ Y_w \\ Z_w \\ 1 \\ \end{matrix} \right] _{4*1} = M_{4*4} . \left[ \begin{matrix} X_w \\ Y_w \\ Z_w \\ 1 \\ \end{matrix} \right] _{4*1}\tag{1} ⎣⎢⎢⎡XcYcZc1⎦⎥⎥⎤4∗1=[R3∗30t3∗11]4∗4.⎣⎢⎢⎡XwYwZw1⎦⎥⎥⎤4∗1=M4∗4.⎣⎢⎢⎡XwYwZw1⎦⎥⎥⎤4∗1(1)
其中 M 4 ∗ 4 M_{4*4}