1. 白平衡基础概念

做图像处理这些年,我经常遇到刚入行的同学问:「白平衡不就是把画面调暖或调冷吗?」嗯,这么说也对,但太表面了。今天咱们从根上聊清楚——色温是什么、白平衡在解决什么问题、人眼为什么那么厉害,以及相机传感器为啥就做不到。

1.1 什么是色温

色温这个概念,最早来自物理学家对黑体辐射的研究。说白了,就是给一个黑体加热,随着温度升高,它会发出不同颜色的光。这个温度值,就用开尔文(K)来表示。

核心记忆点:色温越低,光越偏红/黄;色温越高,光越偏蓝。别记反了。

举个例子:

  • 烛光:约 1800K,暖黄色
  • 白炽灯:约 2800K,暖白色
  • 日光:约 5500K,中性白
  • 阴天:约 6500K,偏蓝色
  • 蓝天阴影:约 8000K-10000K,冷蓝色

我在项目中遇到过最典型的场景:室内暖光灯下拍出来的照片,人脸像煮熟的螃蟹。这就是色温偏低导致的偏色问题。

光源类型 色温范围(K) 视觉感受
烛光/火焰 1500 - 2000 暖黄
白炽灯 2500 - 3000 暖白
荧光灯 4000 - 5000 中性白
正午日光 5000 - 6000 标准白
阴天 6000 - 7500 冷白
蓝天阴影 8000 - 10000 冷蓝

1.2 什么是白平衡

白平衡,说白了就是让相机在不同色温的光源下,都能把「白色」还原成白色。你想想看,一张白纸在烛光下是暖黄色的,在阴天是偏蓝的。但人眼看起来,它始终是白的。相机可没这个本事,它需要算法来帮忙。

白平衡的本质,就是调整图像中 R、G、B 三个通道的增益,让中性色(灰、白)在色温变化下保持中性。数学上很简单:

R_out = R_in * gain_R
G_out = G_in * gain_G
B_out = B_in * gain_B

其中 gain_R、gain_G、gain_B 就是我们要算的三个系数。通常固定 G 通道增益为 1.0,只调 R 和 B。

我的习惯:调试白平衡时,先找画面中的中性色块(灰卡、白墙、云朵),看它们的 R/G/B 比值是否接近 1:1:1。如果偏红,说明 R 增益太高了。

1.3 人眼的白平衡机制

人眼为什么这么强?因为它有一套叫「色彩恒常性」的机制。简单说,人眼会主动补偿光源色温带来的偏色。

具体怎么做到的?靠两种细胞配合:

  • 视锥细胞:三种类型,分别对红、绿、蓝光敏感
  • 视杆细胞:负责亮度感知,不参与颜色

人眼会「自适应」调整三种视锥细胞的敏感度。比如在暖光下,它会降低对红色的敏感度,提高对蓝色的敏感度。这样一来,白色看起来还是白色。

但人眼也有局限。我记得有一次在混合光源下做实验——一边是暖色台灯,一边是冷色日光灯。人眼会「顾此失彼」,看左边觉得正常,看右边就觉得偏色。这就是为什么混合光源场景最难处理。

注意:人眼的白平衡适应需要时间。从室内走到室外,你会觉得画面偏蓝,过几秒才恢复正常。相机可没这个「适应期」,它必须一帧一帧地算。

1.4 相机传感器与白平衡的关系

相机传感器是「死脑筋」。它只记录每个像素的 R、G、B 值,根本不管光源是什么颜色。这就带来了两个问题:

  1. 传感器响应曲线不匹配人眼:CMOS 的 R/G/B 滤镜透光率在不同波长下差异很大
  2. 传感器没有「色彩恒常性」:它不会自动补偿光源色温

所以,白平衡算法必须做两件事:

  • 估计光源色温:判断当前场景是什么光源
  • 计算增益系数:根据色温调整 R/B 通道

我做过一个项目,在工业相机上跑白平衡。传感器是 Sony IMX334,它的 B 通道在低色温下响应特别弱。如果不做白平衡,拍出来的暖色场景全是红彤彤的。后来我加了一个「色温查找表」,把不同色温下的增益系数提前标定好,效果才稳定下来。

1.5 本章知识体系

下面这张图,把色温、白平衡、人眼机制和传感器关系串起来了。我建议你多看几遍,理解它们之间的逻辑链条。

白平衡基础概念知识体系 白平衡 色温定义 人眼色彩恒常性 传感器响应 低色温→暖色 高色温→冷色 视锥细胞自适应 混合光源局限 无色彩恒常性 需增益补偿 核心逻辑:光源色温 → 人眼自动补偿 vs 传感器需算法补偿 白平衡算法 = 估计色温 + 计算增益 + 补偿偏色

1.6 小结

这一章我们聊了四个核心概念:

  • 色温:光源颜色的量化指标,低暖高冷
  • 白平衡:让白色在不同光源下保持白色的算法
  • 人眼机制:色彩恒常性,自动补偿色温
  • 传感器局限:没有自适应能力,必须靠算法

理解这些基础,后面讲灰度世界、完美反射、色温估计这些算法时,你才能知道它们到底在解决什么问题。我曾经带过一个新人,他调白平衡调了三天都没调好,后来发现是他连色温和增益的关系都没搞懂。嗯,基础打牢了,后面才走得快。