2. 光源与色温:黑体辐射、标准光源D65/A、色温与相关色温(CCT)

好,我们正式开始第二讲。光源与色温,这俩概念是自动白平衡的根基。说白了,你连「光是什么颜色」都没搞清楚,后面调白平衡、调CCM(色彩校正矩阵)就是瞎忙活。

我刚开始做图像算法那会儿,就犯过这个错。拿着一个色温计测出来的数据,直接往算法里怼,结果拍出来的照片偏蓝偏得一塌糊涂。后来才明白,我测的是「相关色温」,不是真正的「色温」。这俩差一个字,物理意义完全不同。

2.1 黑体辐射:光的颜色从哪来?

先聊黑体辐射。你想象一个理想物体,它能吸收所有照射到它身上的电磁波,不反射、不透过。然后你加热它——它就开始发光了。

温度低的时候,发红光。温度再高点,发黄光。再高,发白光。再高,发蓝光。这就是黑体辐射的轨迹。

普朗克公式描述了这件事:

M(λ, T) = (2πhc² / λ⁵) × 1 / (e^(hc/λkT) - 1)

其中:

  • M:光谱辐射出射度
  • λ:波长
  • T:温度 (K)
  • h:普朗克常数
  • c:光速
  • k:玻尔兹曼常数

公式看着复杂,但核心就一句话:温度决定颜色。温度越高,峰值波长越短,颜色越偏蓝。

关键理解:黑体辐射的色度坐标在CIE 1931色度图上形成一条连续的曲线,这就是「普朗克轨迹」。所有真实光源的色度点,要么落在这条线上,要么落在附近。

2.2 色温 vs 相关色温 (CCT)

这里有个坑,我踩过,所以必须讲清楚。

色温:只有黑体辐射光源才有真正的色温。比如白炽灯,它的光谱接近黑体辐射,所以可以说它的色温是2800K。

相关色温 (CCT):对于非黑体辐射光源(比如荧光灯、LED),它的色度点不在普朗克轨迹上。这时候我们找一条「等温线」,把它的色度点投影到普朗克轨迹上,投影点对应的温度就是相关色温。

你想想看,一个荧光灯管,它的光谱是离散的线状谱,跟黑体辐射完全不是一回事。但我们还是说它「色温5000K」,其实严格来讲是「相关色温5000K」。

概念 适用光源 物理意义 精度
色温 (CCT) 黑体辐射光源(白炽灯、卤素灯) 实际温度 精确
相关色温 (CCT) 非黑体辐射光源(荧光灯、LED、日光) 等效温度 近似

避坑指南:我曾经在调试一个手机摄像头时,发现AWB算法在荧光灯下总是偏绿。查了半天,发现算法把荧光灯的CCT当成了真实色温,直接用普朗克轨迹上的白平衡增益去校正。荧光灯的光谱在绿色波段有尖峰,这么校正当然偏绿。后来我加了一个「光源类型识别」模块,先判断光源类型,再选择对应的校正策略,问题才解决。

2.3 标准光源:D65 和 A

做图像处理,必须要有「标准」作为参考。CIE(国际照明委员会)定义了几种标准光源,其中D65和A是最常用的。

2.3.1 标准光源 D65

D65代表平均日光,相关色温6500K。它是我们做白平衡校正的「黄金标准」。几乎所有图像传感器的参考白点,都是基于D65定义的。

D65的光谱分布是连续的,覆盖了整个可见光波段。它的色度坐标在CIE 1931色度图上是:

x = 0.3127, y = 0.3290

这个点,就是我们在AWB算法中常说的「理想白点」。

2.3.2 标准光源 A

光源A代表白炽灯,相关色温2856K。它的光谱偏向红色/黄色波段,是典型的「暖色」光源。

光源A的色度坐标:

x = 0.4476, y = 0.4074

你看,跟D65比,x和y都大了不少,说明它更偏红黄。

标准光源 相关色温 (K) CIE 1931 (x, y) 典型场景
D65 6500 (0.3127, 0.3290) 晴天户外、标准日光
A 2856 (0.4476, 0.4074) 白炽灯、暖色室内

个人习惯:我在做AWB算法评估时,一定会准备D65和A两个标准光源下的灰卡图像。这两个极端(冷色和暖色)能快速暴露算法的偏差。如果D65下白平衡准确,但A下偏蓝,说明算法对低色温的补偿不够。

2.4 色温与白平衡的关系

色温直接影响白平衡增益的计算。简单来说:

  • 低色温(暖色):光源偏红黄,图像偏暖。白平衡需要增加蓝色增益,减少红色增益。
  • 高色温(冷色):光源偏蓝,图像偏冷。白平衡需要增加红色增益,减少蓝色增益。

用公式表示就是:

R_gain = G / R_avg
B_gain = G / B_avg

其中R_avg、B_avg是图像中参考白点的红色和蓝色通道平均值,G是绿色通道平均值(通常作为基准)。

但这里有个问题:你怎么知道当前场景的色温?

嗯,这就是AWB算法的核心——色温估计。常用的方法有:

  1. 灰度世界法:假设场景中所有颜色的平均是灰色,从而估计色温。
  2. 完美反射法:假设场景中最亮的点是白色,从而估计色温。
  3. 色温查找表法:预先在不同色温下拍摄灰卡,建立色温到增益的映射表。

我个人更倾向于第三种。前两种在复杂场景下容易翻车,比如大面积单色物体(蓝天、绿草)会让灰度世界法完全失效。

2.5 知识结构图:光源、色温与白平衡

下面这张图,把本章的核心逻辑串起来了。你看一遍,应该能明白色温在整个白平衡流程中的位置。

光源、色温与白平衡知识结构 黑体辐射光源 非黑体辐射光源 标准光源 真实色温 (K) 相关色温 (CCT) D65 / A 标准 灰度世界法 完美反射法 色温查找表法 白平衡增益计算 (R_gain, B_gain) 校正后图像(色彩还原) 注意:非黑体光源 需先识别光源类型 再选择校正策略

2.6 实战中的色温处理

最后聊点实战经验。你在实际项目中处理色温,有几个点必须注意:

  • 色温计不是万能的:消费级的色温计精度有限,而且只能测单点。场景中不同区域的色温可能不同(比如窗口边和室内深处)。
  • 混合光源是噩梦:室内既有日光(从窗户进来),又有白炽灯,还有LED屏幕。这时候整个场景的色温是空间变化的,单一色温值无法描述。
  • 人眼有适应性:人眼会自动校正色温,但相机不会。所以有时候你觉得「挺正常的」场景,拍出来偏色严重。

我的建议:在做AWB算法时,不要只依赖色温估计。结合场景识别(室内/室外、白天/夜晚、有无主光源)和统计信息(直方图、色度分布),综合判断。单一方法在真实场景中很容易翻车。

好,这一讲就到这里。色温的概念搞清楚了,后面讲白平衡算法和CCM调优时,你就能理解为什么不同色温下需要不同的校正参数了。