上篇聊完衍射,镜头这块还剩接口这件小事。说它小,是因为接口一般没人专门去算;可现场因为它耽误的时间真不少。
挺常见的一种情况:新到一台相机,顺手拿了支库里的镜头拧上去,从近拧到远,图一直是糊的,怀疑镜头坏了,又换一支,还是糊。最后翻出来一看,相机是 CS 口,镜头是 C 口,中间少了个 5 mm 的转接环。螺纹是一样的,拧得上去,所以谁也没往这上面想。
法兰距是怎么回事
法兰距,有的厂家叫后截距或者机械后焦,说白了就是镜头安装面到传感器表面的距离。镜头厂设计的时候默认了这个距离,镜头拧上去,安装面一贴死,焦距刻度、对焦行程才对得上。这个距离错了,镜头就工作在它没设计过的位置。
工业上常见的几种:
- C 口:1 英寸、每英寸 32 牙的螺纹,法兰距 17.526 mm,面阵相机里最多;
- CS 口:螺纹和 C 口一模一样,法兰距 12.526 mm,比 C 口短 5 mm,安防相机用得多,工业相机里一些小靶面型号也有;
- F 口:尼康的卡口,法兰距 46.5 mm,大靶面、线扫相机上常见;
- M42、M58、M72 这类:大螺纹口,线扫和大靶面面阵用。M42 的法兰距各家不统一,这个一定要翻相机手册,别凭印象。

图里最下面那种就是开头说的坑。C 口镜头直接拧到 CS 口相机上,镜头比设计位置往传感器方向多进去了 5 mm。镜头要成清楚的像,像距至少得等于焦距(物体在无穷远时),现在后面的空间短了 5 mm,像面落在了传感器后头,从近拧到远都够不着。反过来 CS 口镜头上 C 口相机,镜头离传感器远了 5 mm,相当于自带一个 5 mm 接圈,远处对不上焦,凑得很近倒能对上,视野会小得离谱,一样不好用。
转接环的长度就是两边法兰距的差。F 口镜头上 C 口相机,转接环要 46.5−17.526=28.97446.5-17.526=28.97446.5−17.526=28.974 mm,买现成的就行,但要认准是给工业相机做的,精度差的转接环一歪,图一边实一边虚。
接圈为什么能改倍率
接圈就是一段空心的筒,夹在镜头和相机之间,把镜头往前推,让像距变长。薄透镜那篇推过,放大倍率可以写成:
β=v−ff \beta = \frac{v - f}{f} β=fv−f
物体在无穷远时 v=fv=fv=f,β=0\beta=0β=0;镜头自己调焦,就是在把镜片往前推一点点,vvv 稍微大于 fff。接圈干的是同一件事,只是推得更多。加一个厚度为 eee 的接圈,vvv 直接多出 eee,所以:
Δβ=ef \Delta\beta = \frac{e}{f} Δβ=fe
这个式子值得记一下,它说明接圈对短焦镜头特别敏感。同样 1 mm 的接圈,50 mm 镜头倍率只多 0.02,25 mm 多 0.04,8 mm 镜头一下多 0.125。8 mm 的镜头加个 5 mm 接圈,倍率多出 0.625,基本就是凑到镜头跟前拍了,工作距离短到光源都塞不进去。所以短焦镜头我很少加接圈,要拍小视野就直接换长焦或者微距。
加了接圈之后,镜头能调到的倍率范围整体往上挪了 e/fe/fe/f:最远只能对到 β=e/f\beta=e/fβ=e/f 那个位置,再也对不了无穷远;最近是 e/fe/fe/f 再加上镜头自身调焦能给的那一段。
例题:25 mm 镜头拍 40 mm 视野
还是前面那台 2448×2048、3.45 µm 的相机,靶面宽 8.45 mm。手上只有 25 mm 镜头,原来拍 120 mm 视野,β≈0.0704\beta\approx0.0704β≈0.0704,物距约 380 mm。现在要拍 40 mm 宽的小件,需要的倍率:
β=8.4540≈0.211 \beta = \frac{8.45}{40} \approx 0.211 β=408.45≈0.211
像距要比焦距多 0.211×25≈5.280.211\times25\approx5.280.211×25≈5.28 mm。假设这支镜头手册上的最近对焦距离对应 β\betaβ 大约 0.1(具体看你那支镜头的手册),也就是它自己最多只能把像距推出 2.5 mm 左右,不加接圈到不了 0.211。
接圈厚度要满足:最远端不超过目标,最近端能覆盖目标,
(0.211−0.1)×25≤e≤0.211×25⟹2.78 mm≤e≤5.28 mm (0.211-0.1)\times 25 \leq e \leq 0.211\times 25 \quad\Longrightarrow\quad 2.78\ \mathrm{mm} \leq e \leq 5.28\ \mathrm{mm} (0.211−0.1)×25≤e≤0.211×25⟹2.78 mm≤e≤5.28 mm

图里绿色的几档都能用。常见的接圈套装一般有 0.5、1、5、10 mm 这些规格,直接上一个 5 mm 最省事,这时倍率能调的范围是 0.20 到 0.30,对应视野 28 到 42 mm,40 mm 刚好在里面,只是偏在调焦环快拧到无穷远那一头。我习惯让目标落在调焦行程中间一点,用几节薄的凑个 3 到 4 mm,留一点余量给现场微调。
物距这时候变成 u=f(1+1/β)≈143u=f(1+1/\beta)\approx143u=f(1+1/β)≈143 mm(从镜头前主面算起,不是从镜头前端,这个前面几篇说过),比原来近了一大截,光源和机构要提前留空间。还有一个容易忘的,工作 F 数变成 (1+0.211)F(1+0.211)F(1+0.211)F,同样的光圈刻度,像面亮度只剩无穷远时的 68% 左右,曝光要补。
脚本放这,换自己的参数跑:
python
f, sensor_w, fov = 25.0, 8.45, 40.0 # 焦距 mm、靶面宽 mm、要的视野 mm
beta_lens_max = 0.1 # 镜头自己最近对焦时的倍率,查手册
beta = sensor_w / fov
e_min, e_max = (beta - beta_lens_max) * f, beta * f
print(f"需要 β={beta:.3f},接圈厚度 {max(e_min,0):.2f} ~ {e_max:.2f} mm")
for e in [3, 5]:
lo, hi = e / f, e / f + beta_lens_max
print(f"{e} mm 接圈:β {lo:.3f}~{hi:.3f},视野 {sensor_w/hi:.1f}~{sensor_w/lo:.1f} mm")
print(f"物距约 {f*(1+1/beta):.0f} mm,亮度剩 {(1+beta)**-2:.0%}")
靶面、像圈和暗角
接口对上了,还有一个匹配问题:镜头的像圈得罩得住传感器的对角线。2448×2048、3.45 µm 的靶面对角线 11.0 mm,配个标称 2/3 英寸的镜头正好。换成 4096×3000 的 12 兆相机,同样 3.45 µm 像元,对角线变成 17.5 mm,再拧那支 2/3 英寸镜头上去,四个角就黑了,或者看着不黑,边上的 MTF 早就塌了。
有意思的是,加接圈之后像圈会跟着变大,大概放大 (1+β)(1+\beta)(1+β) 倍,所以近摄的时候小像圈镜头有时也能凑合罩住大靶面。但别靠这个,镜头是按远处物体优化的,凑得很近之后像差上来,边缘照样软。我自己的土办法是,接圈加到焦距的五分之一以上,就开始认真考虑换微距或者远心,别硬撑。
再说个现场细节:几个接圈叠起来用,每一节都可能有一点点歪,叠多了光轴就斜了,图一边虚一边实。能用一节就别用三节,叠完拿标定板拍一张,看看四个角的清晰度是不是一致。
下篇聊微距镜头和放大倍率,倍率上到 0.3 以上之后公式哪些地方要改,景深又会掉到多小。