2、色温与光源:黑体辐射与色温、常见光源色温表(D65、A、TL84等)、相关色温(CCT)与色温偏移

聊白平衡,绕不开色温。说白了,色温就是描述光源颜色的一个数值。你想想看,为什么日光灯下拍的照片发绿?为什么白炽灯下发黄?这些现象背后,都是色温在作怪。

我刚开始做ISP调试那会儿,总觉得色温是个很玄的概念。后来真正理解了黑体辐射,才发现它其实很直观。

2.1 黑体辐射与色温

什么是黑体?一个理想的物体,能吸收所有入射的电磁辐射,不反射也不透射。给它加热,它会发光。温度不同,发光的颜色也不同。

温度低的时候,黑体发红光。温度升高,变成橙黄。再升高,变成白、蓝白。这个颜色变化的轨迹,在色度图上就是一条曲线——普朗克轨迹。

核心概念:色温就是黑体辐射到某个颜色时对应的开尔文温度。单位是K(开尔文)。

比如:一个光源的颜色和3000K的黑体一样,我们就说它的色温是3000K。

这里有个容易混淆的点——色温越高,颜色越冷(偏蓝);色温越低,颜色越暖(偏红)。我当年第一次接触时也觉得很反直觉。为什么3000K是暖黄,6500K反而是冷白?

嗯,你记住一个场景就好:铁匠打铁。铁块刚开始加热是暗红(低温),烧到白热化(高温)就是亮白。温度再高,就带蓝色了。这样想是不是好理解多了?

2.2 常见光源色温表

实际工作中,我们不会每次都去查黑体辐射曲线。行业内有一些标准光源,它们的色温是固定的。我整理了一张表,这些数值我建议你记下来,调试时经常用到。

光源名称 相关色温 (CCT) 典型场景 特点
D65 6504K 晴天正午日光 标准白光,白平衡基准
D50 5003K 印刷、摄影灯箱 偏暖,常用于印刷行业
A 2856K 白炽灯、钨丝灯 暖黄光,R/G通道增益大
TL84 4000K 商场、办公室荧光灯 冷白光,光谱不连续
CWF 4150K 北美商用荧光灯 偏绿,容易引起色偏
U30 3000K 暖色荧光灯 类似白炽灯,但光谱不同

个人经验:我在调试手机摄像头时,D65和A光源是必测的。这两个光源覆盖了色温的两端。如果这两个光源下白平衡能做好,中间色温基本不会出大问题。

但TL84是个坑。它的光谱有尖峰,不是连续谱。用传统方法估计色温,很容易偏。我建议你单独处理这类荧光灯光源。

2.3 相关色温 (CCT) 与色温偏移

问题来了——现实中的光源,大多数不是完美的黑体辐射。LED灯、荧光灯,它们的光谱和黑体不一样。那怎么描述它们的颜色?

这时候就要引入相关色温(CCT)的概念。

CCT的定义很简单:在色度图上,找一个离该光源颜色最近的黑体辐射轨迹点,那个点的色温就是CCT。

说白了,就是近似匹配。不是精确等于,而是最接近。

注意:CCT相同的两个光源,颜色可能完全不同!

举个例子:一个LED灯和一个荧光灯,CCT都是4000K。但LED可能偏紫,荧光灯可能偏绿。为什么?因为它们的色温偏移方向不同。

所以只看CCT是不够的,还要看色温偏移(Duv)。

Duv表示光源颜色偏离普朗克轨迹的程度。正值表示偏绿,负值表示偏紫。我调试AWB算法时,会把CCT和Duv一起作为输入特征。这样能更准确地描述光源。

下面这张图展示了整个知识体系的结构,我建议你对照着理解:

色温与光源知识结构 色温与光源 黑体辐射 常见光源色温表 CCT与色温偏移 普朗克轨迹 色温定义 D65 / D50 A / TL84 CCT定义 Duv偏移 关键理解 色温描述光源颜色 → CCT近似匹配 → Duv修正偏移 三者结合才能准确描述一个光源

在实际项目中,我遇到过一个问题:同一个场景,用不同相机拍,色温估计结果差很多。为什么?因为每个相机的传感器光谱响应不同。所以色温估计不能只看理论值,还要结合传感器特性做校准。

我曾经调试一个项目,在TL84光源下白平衡总是偏绿。查了很久才发现,是传感器对绿光的响应比标准曲线高。后来我在算法里加了一个光源补偿系数,问题就解决了。

嗯,这里要注意:色温表是死的,但场景是活的。标准光源只是参考,实际环境往往是混合光源。比如窗户进来的日光 + 室内的LED灯,色温怎么算?这时候就要靠AWB算法去估计了。

调试建议:

  • 先校准D65和A光源,确保两端准确
  • 中间色温用插值,但要考虑传感器非线性
  • 荧光灯和LED灯单独处理,不要用黑体轨迹硬套
  • 记录Duv值,它能帮你判断光源类型

最后总结一下:色温是光源颜色的量化描述,CCT是近似匹配,Duv是偏移修正。这三者构成了AWB算法中光源估计的基础。你想想看,如果连光源都描述不准,后面的白平衡校正怎么可能做好?