从世界坐标系到像素坐标系的齐次坐标形式:
s [ u v 1 ] = K [ R t ] [ X w Y w Z w 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \, [\, R \quad t \,] \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} s uv1 =K[Rt] XwYwZw1
其中 s s s 是尺度因子,内参矩阵 K K K 为:
K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1
2. 单应性矩阵
3 × 3 3\times3 3×3 的透视(或称单应性)变换矩阵 H H H :
H = ( A t v T 1 ) = ( h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 1 ) H = \begin{pmatrix} A & t \\ v^T & 1 \end{pmatrix}= \begin{pmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & 1 \end{pmatrix} H=(AvTt1)= h11h21h31h12h22h32h13h231
其中:
仿射部分(Affine Component):
线性变换( 2 × 2 2\times2 2×2 部分 A A A): 这部分包含旋转、缩放和剪切。 A = ( h 11 h 12 h 21 h 22 ) A = \begin{pmatrix} h_{11} & h_{12} \\ h_{21} & h_{22} \end{pmatrix} A=(h11h21h12h22)
平移( 2 × 1 2\times1 2×1 向量 t t t): H H H 的第一、二行第三列构成了平移分量。 t = ( h 13 h 23 ) t = \begin{pmatrix} h_{13} \\ h_{23} \end{pmatrix} t=(h13h23)
透视(项目)部分(Projective Component):
假如 v T = [ h 31 , h 32 ] v^T=[h_{31},\,h_{32}] vT=[h31,h32] 不为零,则会引入额外的除法操作(透视除法):
变换后,一个点 ( x , y , 1 ) (x,\,y,\,1) (x,y,1) 会变为 ( x ′ , y ′ , w ′ ) (x',\,y',\,w') (x′,y′,w′),末了映射到实际图像坐标为 ( x ′ w ′ , y ′ w ′ ) \left(\frac{x'}{w'},\,\frac{y'}{w'}\right) (w′x′,w′y′)。 假如 v T = [ h 31 , h 32 ] v^T=[h_{31},\,h_{32}] vT=[h31,h32] 为零,则 w ′ w' w′为1,没有透视结果。
当观察角度改变或相机位置不在正火线时,物相识出现远处变小、近处变大的结果。矩阵中 h 31 h_{31} h31 和 h 32 h_{32} h32 控制了这种“深度依赖性”的变化,最终通过除以 w = h 31 x + h 32 y + 1 w = h_{31}x + h_{32}y + 1 w=h31x+h32y+1 实现非线性映射,使得平行线汇聚于消失点。
2.3. 单应性矩阵的求解