1. 色彩科学基础:人眼视觉特性、色彩空间与白平衡原理

做图像算法这些年,我越来越觉得——色彩科学是HDR合成的"地基"。地基没打牢,后面调再多参数也是白搭。今天咱们就从最底层开始,把这三个核心概念掰开揉碎了讲清楚。

1.1 人眼视觉特性:为什么相机拍不出你看到的样子?

你有没有遇到过这种情况:明明肉眼看着很美的夕阳,拍出来却一片惨白?这不是相机坏了,是人眼和传感器的"底层逻辑"不一样。

人眼有几个关键特性,做HDR合成时必须刻在脑子里:

  • 亮度适应范围极广:人眼能同时感知约10^5:1的动态范围,而普通相机传感器只有10^3:1左右。这就是为什么HDR合成要拍多张不同曝光的照片。
  • 局部对比度敏感:人眼对边缘和纹理特别敏感,但对大面积均匀区域的亮度不敏感。所以HDR合成时,边缘处理比整体亮度更重要。
  • 色彩恒常性:不管在日光灯下还是烛光下,你看到的白纸都是白的。但相机不会——它老老实实记录光谱。这就是白平衡要解决的问题。

核心结论:HDR合成的本质,就是用多张低动态范围图像,去模拟人眼的高动态范围感知能力。不是"还原真实",而是"还原人眼看到的真实"。

我记得刚入行时做过一个项目,在黄昏时分拍城市天际线。单张RAW怎么调都像"假HDR"——要么天空过曝,要么建筑死黑。后来我才明白,问题出在没理解人眼的局部适应机制。你想想看,人眼看天空时瞳孔会缩小,看地面时瞳孔会放大,而相机只有一个全局曝光时间。这就是HDR多帧合成的生物学基础。

1.2 色彩空间:RGB/XYZ/Lab 到底怎么选?

色彩空间说白了,就是"用数学描述颜色"的坐标系。不同的坐标系,适合不同的任务。

1.2.1 RGB:最直观,但最不"人眼"

RGB是显示器的原生语言。每个像素用R、G、B三个通道的强度表示颜色。但RGB有个致命问题——通道之间高度相关。你调整亮度,色相也跟着变;你调整饱和度,亮度也跟着变。这在图像处理中非常麻烦。

我的习惯:RGB只用于最终显示和存储。做算法处理时,我几乎不用RGB空间。除非是做白平衡增益——因为白平衡本质上就是调整R、G、B三个通道的增益系数,在RGB空间做最直接。

1.2.2 XYZ:色彩科学的"通用语"

XYZ是CIE在1931年定义的标准色彩空间。它基于人眼三种锥体细胞的响应曲线设计。XYZ最大的价值是——它不依赖任何设备。不管你的显示器是OLED还是LCD,不管你的相机是索尼还是佳能,XYZ都是同一个坐标系。

做HDR合成时,我建议把多张曝光图像先转换到XYZ空间再做融合。为什么?因为XYZ的Y通道直接对应亮度,而X和Z对应色度。这样你可以独立处理亮度和色度,不会互相干扰。

色彩空间 优点 缺点 HDR合成中的用途
RGB 直观、硬件友好 通道相关、非线性 白平衡增益、最终输出
XYZ 设备无关、亮度分离 不直观、色域有限 多帧融合、色域映射
Lab 感知均匀、通道独立 计算复杂、有奇异点 色调映射、色彩增强

1.2.3 Lab:最接近人眼感知的空间

Lab空间的设计目标就是"感知均匀"——意思是,你在Lab空间里移动相同的距离,人眼感受到的颜色变化是相同的。这在RGB空间里完全做不到。

Lab的L通道代表亮度,a和b代表色度。做色调映射(Tone Mapping)时,我通常只在L通道上做压缩,a和b通道保持不变。这样能最大程度保留色彩信息,避免出现"HDR假色"。

避坑指南:我曾经在Lab空间里直接做色域裁剪,结果出现了严重的色相偏移。后来才发现,Lab空间的色域边界不是规则的立方体,而是复杂的曲面。裁剪时一定要做色域映射,不能简单截断。

1.3 色温与白平衡原理:让白色"变回"白色

色温的概念其实很简单——黑体加热到不同温度时发出的颜色。温度越低越偏红(烛光约2000K),温度越高越偏蓝(阴天约7000K)。

白平衡的本质,就是找到场景中的"中性灰"区域,然后调整R、G、B增益,让这个区域变成纯白(R=G=B)。

常见的白平衡算法有几种:

  1. 灰度世界法:假设场景中所有颜色的平均值是灰色。计算R、G、B通道的平均值,然后调整增益使三者相等。
  2. 完美反射法:假设场景中最亮的像素是白色。找到最亮的像素点,以其RGB值作为白点参考。
  3. 色温曲线法:根据色温查表,直接应用预设的R、G增益比。这是相机自动白平衡的常用方法。

实战经验:做HDR合成时,白平衡必须在多帧融合之前完成。因为不同曝光帧的亮度不同,如果先融合再调白平衡,暗部区域的色彩噪声会被放大。我习惯在RAW域先做白平衡,再转成线性RGB,最后做HDR融合。

嗯,这里要注意一个细节——白平衡增益不能太大。如果某个通道的增益超过2.0,说明色温估计偏差太大,强行校正会引入严重的色彩噪声。我一般会设置一个增益上限,超过上限就改用相邻色温的插值结果。

1.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。你可以把它当作后续章节的"导航图"。

色彩科学基础 - 知识体系 色彩科学基础核心逻辑 人眼视觉特性 亮度适应 · 局部对比度 · 色彩恒常 色彩空间 RGB · XYZ · Lab 白平衡原理 色温估计 · 增益校正 亮度适应范围 10^5:1 动态范围 局部对比度敏感 边缘优先处理 色彩恒常性 白平衡的生物学基础 RGB 显示/存储 XYZ 多帧融合 Lab 色调映射 灰度世界法 均值假设 完美反射法 最亮点假设 色温曲线法 查表预设 HDR合成核心流程 多帧RAW → 白平衡校正 → 转换到XYZ空间 → 多帧融合 → 色调映射(Lab空间L通道压缩) → 色域映射 → 输出RGB 每一步的色彩空间选择,都基于人眼视觉特性的数学建模

从这张图可以看得很清楚:人眼视觉特性是"为什么",色彩空间是"用什么工具",白平衡是"第一步怎么走"。三者环环相扣,缺一不可。

给新手的建议:别急着调参数。先把这三个概念吃透。我见过太多人花几周调HDR参数,最后发现是色彩空间选错了。磨刀不误砍柴工,色彩科学值得你花时间。