2、光源与色温:常见光源色温表与RGB响应关系

做图像传感器调试,第一个要打交道的概念就是色温。说白了,色温就是描述光源颜色的一个数值。你想想看,为什么同一张白纸,在室内灯光下拍出来偏黄,在室外阴天拍出来偏蓝?这就是光源色温在作怪。

我个人习惯把色温理解成「光的性格」。低色温的光偏暖,像火焰;高色温的光偏冷,像阴天的天空。这个直觉对调试很有帮助。

2.1 色温的物理本质

色温的单位是开尔文(K)。它的定义来自一个理想黑体:当你加热一个黑体,温度升高到某个值时,它发出的光的颜色就和某个光源的颜色一样。这个温度值就是该光源的色温。

举个例子:

  • 蜡烛火焰约 1800K,偏橙红色
  • 白炽灯约 2800K,偏黄色
  • 正午日光约 5500K,接近白色
  • 阴天天空约 6500K,偏蓝色

这里有个容易搞混的点:色温越高,颜色越冷(偏蓝);色温越低,颜色越暖(偏红)。我刚入行时总记反,后来想了个办法——「高温烧蓝」,温度高了烧出蓝色,这样就记住了。

2.2 常见光源色温表

调试白平衡,必须熟记几个标准光源。这些光源在实验室和产线上天天见。我整理了一张表,建议你存下来:

光源名称 色温(K) 特点 典型场景
D65 6500 标准日光,CIE 推荐 户外晴天、显示屏白点
D50 5000 印刷行业标准 印刷品对色、摄影灯箱
A 光源 2856 白炽灯,暖黄 室内钨丝灯环境
TL84 4000 荧光灯,冷白 办公室、商场
CWF 4150 北美商用荧光灯 北美超市、仓库
U30 3000 暖白荧光灯 酒店、餐厅
H 光源 2300 高压钠灯 路灯、停车场
我的习惯:调试时至少准备 D65、A 光源、TL84 三组数据。这三个覆盖了高、中、低色温,能快速判断白平衡算法是否跑偏。

2.3 色温与 RGB 响应的关系

好了,现在进入核心问题:色温怎么影响传感器的 RGB 输出?

传感器的每个像素只能感知光的强度,不能直接知道颜色。我们靠滤色片(CFA)让不同像素分别对红、绿、蓝光敏感。但滤色片不是完美的——它对不同波长的光响应不一样。

当光源色温变化时,光谱能量分布会变。举个例子:

  • 低色温(A 光源 2856K):红光能量强,蓝光能量弱。传感器 R 通道输出高,B 通道输出低。
  • 高色温(D65 6500K):蓝光能量强,红光能量弱。传感器 B 通道输出高,R 通道输出低。
  • 中间色温(TL84 4000K):红绿蓝相对均衡,但绿光略占优势。

这就是白平衡要解决的问题——把不同光源下的 R/G/B 比例拉回到标准值。

关键公式:白平衡的本质就是找到一组增益 (R_gain, G_gain, B_gain),使得校正后的 R' = R × R_gain,G' = G × G_gain,B' = B × B_gain,最终让中性色(灰卡)的 R':G':B' ≈ 1:1:1。

2.4 色温与 R/G、B/G 比值的可视化

我在项目中经常用一张图来向团队解释色温对 RGB 的影响。下面这张 SVG 图展示了不同光源下 R/G 和 B/G 的典型比值:

不同光源下 R/G 与 B/G 比值分布 R/G 比值 B/G 比值 0.5 1.0 1.5 2.0 2.5 0.5 1.0 1.5 2.0 A 光源 2856K TL84 4000K D65 6500K 色温变化方向 低色温 → 高色温 R/G 下降 B/G 上升

从这张图可以清楚看到:随着色温升高,R/G 比值下降,B/G 比值上升。白平衡算法要做的就是沿着这条轨迹反向校正。

2.5 实战中的注意事项

我曾经踩过的坑:有一次在产线上调试,发现同一批模组在 D65 下白平衡正常,换到 TL84 下就偏绿。查了两天才发现,是滤色片批次差异导致 G 通道灵敏度偏高。从那以后,我每次换 sensor 批次都会重新标定光源响应。

几个实战要点:

  • 光源稳定性:实验室用的灯箱要定期校准。我见过灯管老化导致色温漂移 200K 的情况,白平衡数据全废了。
  • 环境光干扰:暗室不是全黑,显示器、仪器指示灯都会引入杂散光。调试时记得用遮光布。
  • 光源均匀性:灯箱边缘和中心色温可能差 100-300K。用灰卡放在 sensor 正前方测,别放角落。
  • 色温计 vs 软件估算:我习惯先用色温计实测灯箱,再用软件估算做对比。两者偏差超过 100K 就要查原因。

2.6 色温与白平衡增益的换算

实际调试中,我们经常需要根据目标色温反推白平衡增益。这里给一个简化模型:

// 假设 sensor 在 D65 下的 R/G 和 B/G 为基准
// 目标:将 A 光源下的图像校正为 D65 效果

// 已知:
// D65 下:R/G_ref = 0.8, B/G_ref = 1.2
// A 光源下:R/G_raw = 1.6, B/G_raw = 0.5

// 计算增益:
R_gain = (R/G_ref) / (R/G_raw) = 0.8 / 1.6 = 0.5
B_gain = (B/G_ref) / (B/G_raw) = 1.2 / 0.5 = 2.4
G_gain = 1.0  // 通常固定 G 通道

// 最终增益:R:0.5, G:1.0, B:2.4
// 注意:实际应用中需要做归一化,防止增益过大导致噪声放大
我的经验:B 通道增益超过 3.0 时,蓝色通道的噪声会明显放大。这时候要考虑是不是 sensor 的 B 通道灵敏度太低了。如果经常出现这种情况,建议和 sensor 厂商沟通调整 CFA 设计。

2.7 不同色温下的调试策略

调试白平衡不是对所有色温一视同仁。我一般按色温区间制定不同策略:

色温区间 典型光源 调试重点 常见问题
2000-3000K A 光源、H 光源 B 通道增益控制,防止蓝色噪声 偏黄、暗部偏绿
3000-4500K TL84、CWF G 通道平衡,荧光灯频闪抑制 偏绿、肤色失真
4500-5500K D50、正午日光 整体白平衡精度,灰卡还原 轻微偏色
5500-7500K D65、阴天 R 通道增益控制,防止红色噪声 偏蓝、高光偏紫

嗯,这里要注意:不同 sensor 对不同色温的响应曲线不一样。CMOS 和 CCD 的差异、背照式和前照式的差异,都会影响实际增益值。所以上面的表格只是一个起点,具体数值要靠实测来标定。

好了,关于光源和色温的基础知识就讲到这里。记住一句话:白平衡调试的本质,就是理解光源、理解 sensor、然后找到它们之间的平衡点。