2. 光学成像基础:透镜成像原理、景深与焦深、分辨率与放大倍率

各位同学,欢迎来到第二章。这一章是后面所有自动对焦算法的物理基础。说白了,如果你不懂透镜怎么成像,那后面写的对焦代码就是空中楼阁。我个人习惯,在讲算法之前,一定先把光学底子打扎实。

2.1 透镜成像原理

先聊最核心的。一个凸透镜,能把物体发出的光汇聚到一点,形成实像。这就是我们显微镜成像的基本原理。

公式很简单,就是高斯成像公式:

1/f = 1/u + 1/v

其中:

  • f:透镜焦距
  • u:物距(物体到透镜的距离)
  • v:像距(像到透镜的距离)

嗯,这里要注意。在显微镜里,物体通常放在 f2f 之间。这样成的像是倒立、放大的实像。你想想看,如果物体刚好在 f 上,那像就在无穷远,根本没法成像在传感器上。

关键点: 自动对焦的本质,就是调整物距 u 或像距 v,让像平面刚好落在图像传感器上。

我在项目中遇到过一个问题:有个同学调了半天对焦算法,发现图像始终模糊。最后排查出来,是镜头装反了。嗯,别笑,真事。透镜的曲率半径不一样,装反了成像质量会严重下降。

2.2 景深与焦深

这两个概念经常被混淆。我简单说一下。

  • 景深 (Depth of Field, DoF):物体在光轴方向上能移动多远,像还能保持清晰。
  • 焦深 (Depth of Focus):像平面能移动多远,像还能保持清晰。

说白了,景深是物体侧的事,焦深是传感器侧的事。它们通过放大倍率 M 关联:

焦深 ≈ M² × 景深

为什么会这样?因为显微镜的放大倍率通常比较大,所以焦深往往比景深大得多。这意味着,传感器位置稍微偏一点,可能还能接受;但物体位置稍微动一下,图像就糊了。

避坑指南: 我曾经在做一个高倍率显微对焦项目时,发现步进电机每次移动0.1mm,图像变化剧烈。后来一算,景深只有0.05mm。所以,步进电机的步长必须小于景深,否则永远对不准焦。

景深的计算公式:

DoF = (2 × λ × f²) / (A²)

其中 λ 是波长,f 是焦距,A 是数值孔径。你看,数值孔径越大,景深越小。这就是为什么高倍镜对焦特别难。

2.3 分辨率与放大倍率

很多人以为放大倍率越大,看得越清楚。其实不是。分辨率才是决定清晰度的关键。

根据瑞利判据,光学系统的极限分辨率:

δ = 0.61 × λ / NA

其中:

  • δ:能分辨的最小距离
  • λ:照明光波长
  • NA:数值孔径

举个例子。用绿光(λ=550nm)照明,NA=0.65的物镜,分辨率大约是:

δ = 0.61 × 550 / 0.65 ≈ 516 nm

也就是说,两个点距离小于516nm,你就分不开了。这时候你就算把放大倍率提到1000倍,看到的也是一团糊。

注意: 放大倍率不能超过数值孔径的1000倍。这是经验法则。比如NA=0.65,有效放大倍率上限就是650倍。再大就是「空放大」,没有意义。

我建议你在设计自动对焦系统时,先算清楚这个。否则你花大价钱买了高倍镜头,结果传感器像素密度不够,或者照明波长不对,分辨率根本提不上去。

2.4 三者关系总结

把这三个概念串起来,你会发现:

参数 对景深的影响 对分辨率的影响 对放大倍率的影响
数值孔径 NA ↑ 景深 ↓ 分辨率 ↑ 有效倍率 ↑
焦距 f ↑ 景深 ↑ 分辨率 ↓ 倍率 ↓
波长 λ ↑ 景深 ↑ 分辨率 ↓ 无影响

你看,这是一个权衡。想要高分辨率,就得接受小景深。而小景深意味着对焦精度要求更高。这就是为什么自动对焦算法在高倍显微镜下特别重要。

核心思路: 自动对焦算法,本质上是在小景深条件下,快速找到最佳像平面。你理解了景深和分辨率的关系,就能理解为什么有些对焦算法在低倍镜下跑得飞快,到了高倍镜就卡壳。

我记得有一次调试一个40倍物镜的对焦系统。景深只有1.2微米,步进电机每走一步是0.5微米。结果每次对焦都要来回扫好几遍,因为稍微过冲一点,图像就完全糊了。后来我改用了闭环控制,加上实时图像反馈,才稳定下来。

嗯,这一章的内容就到这里。下一章我们会讲图像清晰度评价函数,也就是怎么用算法判断「图像是否清晰」。那是自动对焦的核心环节。