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