计算摄影:颜色

我们所处的世界是一个丰富多彩,五颜六色的世界,蓝天白云,红花绿叶,这些都是色彩信息,人眼有感知不同色彩的能力,而人眼所能感受的光线,只是整个自然界存在的电磁波中,非常狭小的一段,如下图所示,大概从 390nm — 700nm 的一个范围,就是这些可见光波,让人类感受到自然界的多姿多彩,计算摄影中,要研究的波段,主要是可见波段的成像。我们所说的颜色,也就藏在这可见波段中。

计算摄影:颜色_第1张图片
图片来源于 “Understanding the In-Camera Image Processing Pipeline for
Computer Vision”, Michael S. Brown,CVPR 2016 Tutorial

中学物理课上,我们就学过光的色散现象,正如下图所示,白光通过棱镜的折射,分解出很多种不同颜色的光,正是这些不同光谱的光,为我们呈现了多姿多彩的世界。

计算摄影:颜色_第2张图片

我们人眼有两种感光细胞,一种叫视锥细胞,用来感受色彩信息,一种叫视杆细胞,用来感受亮度信息,视锥细胞有三种,可以分别感受红,绿,蓝三种颜色的光,分别对应长波,中波,短波三种波长,如下图所示,人眼的这三种细胞,对不同波长的光,都有不同的响应,在某个波长上,会有一个最高的响应。

计算摄影:颜色_第3张图片

上图的那几条曲线,也称为光谱的能量分布 spectral power distribution (SPD),这种分布,反应了不同波长的光,对视觉细胞的刺激响应,在现实世界里,我们很难看到单一波长的光,真实的物体,总是会反射不同的波长的光线,这些光线在视觉细胞上,会累积下来,从而让人眼感知不同的色彩。

虽然大千世界的色彩很丰富,但是很早就有人发现,这些色彩是可以通过三种基色的组合来实现的,这三种基色,也称为三原色,分别对应 红,绿,蓝。

Radiometry vs. photometry

真实世界里,一种是光源发出或者物体反射的光,一种是人眼接收到的光,前者称为 radiometry,一般用 SPD 来表示,也就是光谱能量分布,这是衡量辐射的能量。而人眼感知到的光,用 photometry 表示,这个也就是我们常说的亮度。下面这张图,非常形象的表示了两者的关系:

计算摄影:颜色_第4张图片

SPD 可以表示环境光的辐射强度,但是人眼感知的强度该如何表示呢,所以 1931 年 CIE (国际照明组织),就制定了一套衡量标准,通过一系列的感光实验,去测定人眼对色彩的感知,通过这些实验,CIE 绘制了人眼对三种基色的响应曲线:
计算摄影:颜色_第5张图片
上图横轴表示波长,纵轴表示响应值,从上图可以看出人眼对三种基色的响应一个大致的分布,后来 CIE 制定了一个标准的 XYZ 体系表示,其中的 Y 表示明度,CIE-XYZ 与 CIE-RGB 有一个转换关系:
计算摄影:颜色_第6张图片
通过这个转换,可以得到新的响应曲线:

计算摄影:颜色_第7张图片
有了响应分布曲线,结合环境光的 SPD 分布,我们就能计算人眼感知的色彩了,

在这里插入图片描述
上图中的 I ( λ ) I(\lambda) I(λ) 表示的是环境光的 SPD 分布,环境光的分布,和人眼响应分布曲线,共同决定了人眼感知色彩的大小,强弱。

XYZ 体系是一套标准体系,独立于各种设备之外的,但是用 XYZ 体系衡量人眼的色彩感光比较合适,但是使用起来不太方便,后来 CIE 又定义了一套 xyY 体系用来表示颜色,xyY 体系中的 Y 和 XYZ 中的 Y 是一样的,xy 表示的是颜色,这套坐标,可以很方便地将颜色绘制在一个二维平面坐标上,如下图所示:

计算摄影:颜色_第8张图片
上图的波长沿着类似抛物线的一条曲线从 380nm 到 700 nm,图中的 E 0 E_0 E0 表示白点,对应于 X = Y = Z = 0.33 X=Y=Z=0.33 X=Y=Z=0.33 的一个点,xyY 和 XYZ 也是存在着一个转换关系的:

x = X X + Y + Z y = Y X + Y + Z x=\frac{X}{X+Y+Z} \quad y = \frac{Y}{X+Y+Z} x=X+Y+ZXy=X+Y+ZY

X = Y y x Z = Y y ( 1 − x − y ) X = \frac{Y}{y} x \quad Z = \frac{Y}{y}(1- x -y) X=yYxZ=yY(1xy)

color constancy

人眼有一个非常鲁棒的视觉系统,其中一个机制就是色彩常恒性,也就是说在任何光照环境下,人眼看到的物体的颜色不会有太大的差异,就像下图所示:
计算摄影:颜色_第9张图片
色彩的常恒性,其实和 SPD 有很大关系,前面说了,SPD 表示光谱的辐射分布,物体在不同温度下,可能会辐射出不同波长的光,这就是我们常说的 色温,中学物理的黑体辐射中,我们也学过色温这个概念,一个经典的例子,就是把铁加热,不同温度下,我们看到的颜色也不一样,从红色到蓝紫色,温度越高,辐射的波长越短,人眼的一个神奇之处就在于,可以自适应的去调整这个颜色的偏差,使得颜色在任何光照下所感知的色彩基本一致。而相机没有这个自适应调整的功能,所以相机里面都有一个称为 “白平衡” 的技术,去校正这个色彩。

CIE-XYZ 与 sRGB

虽然 XYZ 是一个标准的颜色体系,但是工业界很少直接用 XYZ,我们见到的最多的还是 RGB 颜色体系,RGB 颜色体系可以看成是 XYZ 体系的一个子空间,如下图所示,RGB 颜色体系本身是没有标准的量化的,这就造成了一个使用上的麻烦,各个厂家定义的 RGB 颜色可能会有所偏差,这个给跨设备的使用带来很多麻烦。
计算摄影:颜色_第10张图片
为了统一标准,后来微软和惠普定义了一个标准的 RGB 颜色体系,称为 sRGB,这套颜色体系基本就是现在沿用至今的工业界的标准了:
计算摄影:颜色_第11张图片
这套颜色体系和 XYZ 之间也存在着一个转换关系:

计算摄影:颜色_第12张图片
计算摄影:颜色_第13张图片
有了这套 sRGB 颜色体系,大家又有了一套统一的标准了,基于 sRGB 颜色体系,又衍生出很多其他的色彩空间,比如 HSV, HSI, YUV 等。

以上图片都来源于 Understanding the In-Camera Image Processing Pipeline for
Computer Vision", Michael S. Brown,CVPR 2016 Tutorial

你可能感兴趣的:(图像处理,机器视觉,计算摄影与图像处理)