量化色彩

Hacker News Top 新闻

摘要

本文探讨了如何通过物理测量光波长来量化颜色,以实现显示器上的精确颜色再现,涵盖了历史命名挑战和科学原理。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/29 18:37

# 量化颜色 来源:https://ekunazanu.foo/lab/quantifying-colour/ 全球有数十亿台显示器(https://www.statista.com/statistics/245501/multiple-mobile-device-ownership-worldwide/),当接收到指令时,它们都能重现完全相同的颜色。这本身就是一个工程奇迹,但它忽略了一个事实:这一切只有在颜色存在标准定义的前提下才可能实现。早期,颜色仅用有限的词汇进行模糊定义——大多数语言最多只有十二个词(https://en.wikipedia.org/wiki/Color_term#Color-term_hierarchy)来描述颜色。这种模糊定义在多数情况下尚可接受,但对于精确再现颜色所需的、描述相似颜色之间细微差异的场景,其精度则远远不够。 一张绿叶的图片,下方框选展示了图片中呈现的部分绿色色调。 同名异色:上方的彩色矩形展示了上述图片中的一些颜色。尽管它们各不相同,但所有的色调都可以用同一个标签——绿色——来描述。有人可能会争辩说,可以将其标记为酸橙绿、橄榄绿、浅绿、深绿等,以创造一些区分。但这种命名系统仍然笨拙且效率极低。为了准确显示上述图像,需要一种方法来唯一地描述所有不同的绿色色调,而无需依赖一个不断增长的标签列表。 图片来源自 Pixabay (https://pixabay.com/photos/boundary-dark-green-wallpaper-1867353/),遵循 CC0 协议 (https://creativecommons.org/public-domain/cc0/)。 与其将颜色映射到可能数百万个标签,使用编号单位要简单得多——所需的精度可以通过简单地使用更多或更少的数字位数来实现。将颜色映射到数字的想法可能看起来奇怪,但并非遥不可及。大多数可测量的物理现象都已经被量化(例如距离、温度等)。因此,理论上,如果颜色可以被物理测量,那么将其映射到数字应该很容易。 用数字定义颜色也引出了有趣的问题:颜色的加法或乘法是什么样子的?量化颜色的过程还将揭示为什么即使拥有16,777,216个值的十六进制颜色代码(https://en.wikipedia.org/wiki/Web_colors)也无法显示足够多的颜色,为什么一条裙子(https://en.wikipedia.org/wiki/The_dress)会在互联网上引发争论,以及为什么色盲会存在。 ## 光谱功率分布 接下来的目标是将颜色作为某种物理实体来测量。不幸的是,颜色是一种主观现象。然而,*大多数人*能够就某物的颜色达成共识这一事实表明,颜色至少具有某种客观和物理的属性。确实如此。颜色只有在光存在时才可见,这为颜色的本质提供了重要线索。 光很复杂,但可以将其视为一束波状粒子,称为光子(https://en.wikipedia.org/Photon)——每个光子携带一定量的能量。这些粒子的能量由其波长或频率(https://en.wikipedia.org/Photon_energy#Physics)决定。 波长 光子表示:上图是光子的一种解读,并不一定准确。光子的确切形状难以描述,因为光子同时表现出粒子和波状行为(https://en.wikipedia.org/wiki/Wave%E2%80%93particle_duality#Wave-particle_duality_of_light)。试图将光子同时可视化为粒子和波可能会很快变得非常棘手。 电磁波谱:存在具有不同能量(或波长)的光子。不同波长的光子共同构成了电磁波谱(https://en.wikipedia.org/wiki/E electromagnetic_spectrum)。它只是按波长或频率排序的、所有光子能量的完整范围。上图中的波长未按比例绘制。 光子携带的能量可以物理测量,这使得量化光变得简单。然而,为了简化不同类型光之间的比较,能量测量通常被归一化为单位时间的功率(https://en.wikipedia.org/wiki/Power_(physics)),然后被归一化为单位面积的强度(https://en.wikipedia.org/wiki/Intensity_(physics))——其中面积是辐射光子/光的物体的总面积。 因此,光源可以用单一的强度值来量化。然而,出于后文将更明显的原因,光实际上使用多个强度值来表示——通过分别测量不同波长光子的强度。这种按波长分布的强度称为光谱功率分布(https://en.wikipedia.org/wiki/Spectral_power_distribution)。 450nm光子 | 500nm光子 | 550nm光子 | 600nm光子 | 650nm光子 光谱功率分布:上图是光谱功率分布的一个示例。每个波长的强度取决于该波长的光子数量和该波长光子的能量。光子的能量(https://en.wikipedia.org/wiki/Photon_energy)与其波长成反比,因此,对于相同数量的光子,上图中显示的较短波长光子具有更高的强度。 光谱功率分布提供了一种量化光的方法。但在找到颜色与光谱功率分布(光)之间的量化关系之前,这一切都无关紧要。 ## 光感受器细胞 寻找这种关系的最大线索相当明显——没有光就不可能有颜色感知,但没有眼睛同样不可能。眼睛对光敏感,但更重要的是,它们对不同波长的光反应不同。 要理解眼睛如何区分不同波长的光,了解一些人类生理学知识会有所帮助。眼睛拥有不同类型的光感受器细胞(https://en.wikipedia.org/wiki/Photoreceptor_cell),它们已经进化到对特定波长的光子作出反应。毫不意外,这些波长与太阳发出的波长(380nm–750nm)非常相似: 太阳的光谱功率分布:上图是太阳光谱功率分布的近似表示。人眼已经进化到对这些波长敏感,以便感知被太阳照亮的环境。 光子,根据其能量(波长)的不同,可以“激发”特定的光感受器细胞产生特定的反应。人眼有两种光感受器细胞——视杆细胞(https://en.wikipedia.org/wiki/Rod_cell)和三种视锥细胞(https://en.wikipedia.org/wiki/Cone_cell)。不同类型光感受器细胞对不同波长光的敏感度不同——一些视锥细胞对较长波长的光不会产生显著反应,而其他视锥细胞可能会产生。不同光感受器细胞的敏感度曲线(https://en.wikipedia.org/wiki/Spectral_sensitivity)如下所示: 归一化近似值:此处显示的敏感度曲线是归一化的近似值(为了简化可视化和计算),并不精确。实际上,敏感度曲线没那么平滑,而且不同类型的视锥细胞具有不同程度的敏感度。例如,S-视锥细胞的敏感度明显低于其他视锥细胞。同样,视杆细胞对光的敏感度高于任何视锥细胞。 由于敏感度曲线各不相同,视锥细胞能够区分不同波长的光。考虑一个单色光源(https://en.wikipedia.org/wiki/Monochromatic_radiation)(一个波长近乎单一的光源)。视锥细胞会对光产生反应,这取决于光的波长以及视锥细胞对该波长的敏感度。然而,由于每种类型的视锥细胞敏感度不同,它们对同一束光的反应也会不同。 波长 光感受器细胞反应:第一张图是光源的光谱功率分布。由于是单色光,其强度在某个波长处急剧达到峰值。下方的图显示了视锥细胞的敏感度曲线。底部的图表表示视锥细胞对单色光的反应。不同的视锥细胞对相同的单色光源产生不同的反应——这是由于它们敏感度的差异造成的。 这本身不足以帮助区分不同的波长,但敏感度曲线的分布方式(或进化形成的方式)使得所有不同的波长都会始终对应一组独特的视锥细胞反应——从而能够区分不同的波长。大脑已经进化到能将这些独特的反应解读为感知到独特的颜色。 波长 颜色感知:注意不同的波长如何总是产生一组独特的值。彼此接近的波长可能会产生相似的视锥细胞反应,因此大脑将它们解读为相似的颜色。但总的来说,不同的波长会产生明显不同的反应,大脑会将其解读为不同的颜色。 上方方框中的颜色是大脑将视锥细胞反应解读为颜色的结果。然而,上方方框(以及所有后续方框)中的颜色仅用于说明——这是一种近似,并不准确。此外,上方颜色方框中的名称是基于词汇的定义(https://en.wikipedia.org/wiki/Spectral_color#Spectral_color_terms)的一个例子。注意这里它们有多不精确——同一个名称对应着许多不同的色调。 上述示例中未显示视杆细胞,因为它们不影响颜色感知。在光线充足(https://en.wikipedia.org/wiki/Photopic_vision)的条件下,视锥细胞可能会根据光的波长产生不同的反应。但在这种条件下,视杆细胞会产生饱和反应,因为视杆细胞对光的敏感度高于视锥细胞。由于视杆细胞在明亮环境中的反应对波长无差异,它无法区分不同的波长,因此在明亮条件下对颜色感知没有重大影响。 波长 饱和反应:这里用相对于视锥细胞敏感度的方式来表示视杆细胞的敏感度(但未按比例绘制,仍是近似值)。由于其高敏感度,视杆细胞的反应保持饱和,无法从其反应中获取有关波长的有意义信息。然而,对于不同波长的视锥细胞反应集仍然不同,大脑可以将这些独特的视锥细胞反应解读为不同的波长。 在黑暗环境(https://en.wikipedia.org/wiki/Scotopic_vision)中,当视锥细胞不产生反应时,视杆细胞会产生反应。但与视锥细胞不同,只有一种类型的视杆细胞;没有其他类型具有略微不同敏感度曲线的视杆细胞来帮助区分波长。因此,两个不同波长的光源可能在视杆细胞中产生相同的反应,并且无法从视杆细胞的单一反应中区分波长。大脑进化到将视杆细胞的反应解读为一个单一的亮度(明亮度)值。 波长 波长歧义:不同的波长可以在视杆细胞中产生相似的反应,因此被大脑感知为相似。例如,492nm和536nm的低强度光可以在视杆细胞(和视锥细胞)中产生相似的反应集,因此在黑暗中青色和黄绿色可能看起来相似。 因此,无论黑暗还是明亮,视杆细胞都无法区分不同波长的光,因此在颜色感知中不起重要作用。 ### 色盲 有时,视锥细胞也可能无法区分不同波长的光。这可能是由于缺少视锥细胞,或视锥细胞的敏感度曲线重叠造成的。没有第三种视锥细胞时,不同波长的光可能产生相似的视锥细胞反应集——再次无法区分波长。这导致了色盲(https://en.wikipedia.org/wiki/Color_blindness)。 波长 M-视锥细胞重叠 波长歧义:如果M-视锥细胞的敏感度曲线与L-视锥细胞的敏感度曲线重叠,那么不同波长的光(例如554nm和604nm)可能在视锥细胞中产生相似的反应集——导致它们看起来相似。如果M-视锥细胞和L-视锥细胞的敏感度没有显著重叠,则情况并非如此。 视锥细胞异常的类型决定了色盲的类型。L-视锥细胞的敏感度曲线可能向较短波长偏移(红色弱),或者M-视锥细胞的敏感度可能向较长波长偏移(绿色弱)。有些人也可能完全缺乏功能性的L-视锥细胞(红色盲)或M-视锥细胞(绿色盲)。所有情况的结果相似——红色和绿色看起来相似。在极少数情况下,人们可能有异常的S-视锥细胞,导致蓝黄色弱和蓝黄色盲。 色盲类型:条形图展示了具有正常色觉的人对不同波长颜色的感知,对于色盲患者来说会如何呈现。第一条显示未改变的颜色。第二条显示红色盲患者的颜色。第三条描述绿色盲患者的颜色。第四条代表蓝色盲患者看到的颜色。 在极少数情况下,人们可能只有S-视锥细胞或完全没有视锥细胞。两者都将导致全色盲(https://en.wikipedia.org/wiki/Monochromacy#Humans),因为没有机制来区分不同波长的光。 色盲也为颜色感知为何是主观的提供了线索——并非所有人都拥有三个功能完美、且具有与他人完全相同敏感度曲线的视锥细胞。此外,大脑究竟如何将反应解读为颜色仍然是一个争论话题(https://en.wikipedia.org/wiki/Color_vision#Theories)。因此,即使拥有相同的敏感度曲线和视锥细胞反应,不同人的大脑也可能以不同方式解读信号,这可能导致人们之间的颜色感知再次出现不一致。 尽管如此,大多数人群通常对相同波长的光感知是一致的。因此,出于颜色量化的目的,可以忽略大脑*如何*解读视锥细胞反应,并使用大多数正常色觉人群的敏感度曲线来定义标准的视锥细胞敏感度曲线。 标准化敏感度曲线:可以使用正常色觉人群敏感度曲线的聚合来定义一套标准的敏感度曲线。 这导致了一套标准化的敏感度曲线,可用于量化颜色。然而,在这样做之前,需要先处理另一种类型的颜色。 ### 非光谱色 到目前为止,只讨论了光谱色(https://en.wikipedia.org/wiki/Spectral_color)(对应于单色光的颜色)。但周围的大部分光都不是单色的;它是多种波长光的组合。这将使视锥细胞反应的测量略微复杂化。之前,对于单色光,反应仅仅是视锥细胞在给定波长处的敏感度值。这对于非单色光无效,因为不存在单一的、特定的波长。 单色与非单色光:第一张光谱功率分布显示的是单色光...

相似文章

白光的颜色

Hacker News Top

文章解释了RGB彩色摄影中的不准确性,并详细说明了DIY光谱仪的构建以分析光谱,解决了日常生活中常见的颜色匹配问题。

准确的颜色转换(2023年)

Lobsters Hottest

Chris Lomont 解释了在 C++ 中整数与浮点数颜色值之间准确转换的方法,突出常见陷阱,并提供一个往返安全且具有均匀映射的解决方案。

看到一种新颜色意味着什么?

Hacker News Top

探讨了通过刺激视网膜中的单个视锥细胞来看到新颜色的可能性,这是基于计算机科学家 Ren Ng 与视觉科学家 Austin Roorda 的合作研究。

寻找屏幕无法呈现的颜色

Hacker News Top

文章解释了屏幕无法显示某些真实世界中的颜色,尤其是青色,这是由于RGB色彩空间和人类视锥细胞反应的局限,并描述了如何在自然界中找到这些颜色。

Oklch颜色选取(凡人指南)

Lobsters Hottest

一本以通俗易懂的方式解释Oklch颜色空间的指南,强调其感知均匀性,以便在设计中实现一致的颜色选取。