[笔记]相机成像

Abstract: 有些忘记了,查了一下重新回顾,以后再查就自查笔记即可。

以pinhole模型为例

假设我们有一个世界坐标系下的3D点 $P_w=(X_w,Y_w,Z_w)^T$。

第1步:外参变换(世界坐标系 -> 相机坐标系)

  • 使用相机的外参(旋转矩阵 R 和平移向量 t )将点变换到相机坐标系。

  • $P_c=R⋅P_w+t$, 得到 $P_c=(X_c,Y_c,Z_c)^T$。

  • 注意:这里的 $Z_c$​ 就是点到相机光心的深度,必须为正(点在相机前方)。

第2步:投影到归一化平面(理想情况)

  • 这是第一次归一化,目的是摆脱深度信息,得到一个在“理想”的、无畸变的归一化成像平面上的2D点。

  • $p_{ideal}=(x,y)^T=(X_c/Z_c,Y_c/Z_c)^T$。

  • 这个 $p_{ideal}$ 对应的是一个 f=1 的理想针孔相机模型下的坐标。

第3步:应用镜头畸变模型(关键步骤)

  • 真实的镜头有畸变,主要是径向畸变和切向畸变。畸变模型作用在归一化平面坐标上。

  • 径向畸变:与像主点的距离有关,通常用多项式模型(如 k1,k2,k3,…)校正。

  • $r^2=x^2+y^2$

  • $x_{distorted}=x⋅(1+k_1r^2+k_2r^4+k_3r^6)$

  • $y_{distorted}=y⋅(1+k_1r^2+k_2r^4+k_3r^6)$

  • 切向畸变:由镜头与传感器不平行引起(如 p1,p2​)。

  • $x_{distorted}+=2p_1xy+p_2(r^2+2x^2)$

  • $y_{distorted}+=p_1(r^2+2y^2)+2p_2xy$

  • 最终得到带畸变的归一化坐标:

  • $p_{distorted}=(x_d,y_d)^T$

  • $p_{distorted}$ 已经是有畸变的归一化坐标了,它并不直接等于 $(X_c / Z_c, Y_c / Z_c)$。它已经从理想坐标 $p_{ideal}$ “扭曲”成了真实镜头对应的坐标 $p_{distorted}$。

第4步:从畸变归一化平面到像素平面

  • 这是第二次用内参进行变换,但对象不再是 $p_{ideal}$,而是 $p_{distorted}$。

  • 使用相机内参矩阵 K: $$ K = \begin{bmatrix} fx & 0 & cx \\ 0 & fy & cy \\ 0 & 0 & 1 \end{bmatrix} $$

  • 计算像素坐标 $p_{pixel}=(u,v)^T$: $$ \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K · \begin{bmatrix} x_d \\ y_d \\ 1 \end{bmatrix} $$

  • 即:

  • $u=fx∗x_d+cx$

  • $v=fy∗y_d+cy$


Last modified on 2026-01-27