← 返回标定原理

什么是焦距?为什么会有 $f_x$ 和 $f_y$?

1. 物理焦距 ($F$) vs 像素焦距 ($f_x, f_y$)

在摄影中,我们常听到的“50mm镜头”指的是物理焦距 (F),单位是毫米。它是指光线穿过镜头中心后,汇聚在感光元件(Sensor)上的物理距离。

但在计算机视觉(比如刚才的内参矩阵 $K$)中,计算机不认识“毫米”,它只认识“像素”。所以我们需要把物理距离转换成像素单位

$$ f_x = \frac{F}{d_x} \quad , \quad f_y = \frac{F}{d_y} $$

2. 为什么 $f_x$ 和 $f_y$ 不一样?

通过上面的公式我们可以看出,如果 $f_x \neq f_y$,根本原因是 $d_x \neq d_y$

在早期的模拟摄像机或某些特殊的工业相机中,感光元件上的像素点不是正方形的,而是长方形的。也就是说,一个像素的物理宽度和高度不相等。

现代相机的真相:

现在我们用的手机相机、USB 摄像头,其感光元件制造工艺非常高,像素几乎都是完美的正方形($d_x \approx d_y$)。

因此,在绝大多数现代相机的标定结果中,你会发现 $f_x$ 和 $f_y$ 的数值非常接近,几乎相等。如果标定出来差距很大,通常说明标定过程出了错(比如照片太少、角度单一,或者提取角点失败)。

3. 焦距如何影响画面? (左侧 3D 演示)

在左侧的 3D 动画中,你可以看到:

互动: 拖动下方的滑块改变焦距。你会发现,焦距越大,成像平面离小孔越远,物体在平面上的投影就越大(这就是为什么长焦镜头能把远处的物体“拉近”放大的原理)。

10.0
1.0 (正方形)