我怎么知道黑白打印的颜色有多深?
出于类似的原因,我最近一直在研究如何测量颜色的感知亮度,尽管我对屏幕上的观看而不是纸上观看感兴趣。以下是我发现的一些东西:
汇丰银行
将问题中的 RGB 值转换为 HSB(色相、饱和度、亮度)值很容易。乍一看,B这里的亮度值似乎就是您所需要的。但这里的数字与人类观察者如何呈现颜色并没有太大关系。例如,改变 H 可以极大地改变感知亮度,改变 B 可以改变感知色调。这是因为 RGB(和 HSB,它是 RGB 的简单转换)更多的是关于“这个设备可以产生什么”而不是“眼睛感知什么”。
W3C“感知亮度”
感知亮度有一个“W3C 公式”:(R*299 + G*587 + B*114) / 1000. (我最初是在Bill Van Hecke 的一本好书中看到的。)这个公式中的 RGB 值范围从 0 到 1。所以得出#FFFFFF(1*299 + 1*587 + 1*114) / 1000 = 1。
在您的#008800示例中,绿色值为十六进制 0x88,即十进制 136。该数字在 0-255 范围内。因此,该颜色的 W3C 感知亮度为 (0*299 + (136/255)*587 + 0*114) / 1000 = 0.31。
其他“感知亮度”公式
W3C 公式是一个近似值,显然对黄色阴影给出了不好的结果。我发现Nir Dobovizki 的这个页面很有用:它给出了一些很好的解释和一些替代公式,包括Darel Rex Finley 称为 HSP 的一个,它试图模拟 Photoshop 在将 RGB 转换为灰度时所做的事情。如果您想要更多公式,可以在 Stack Overflow question 的答案中列出很多。
颜色系统实际上基于感知测量
我在上面的引号中加上了“感知亮度”,因为如果我理解正确,这些公式只是对实际感知的简单近似。解决这个问题需要在受控条件下对实际的人类受试者进行大量实验,而结果并不符合一个简洁的公式。
有一个名为 CIELAB 的系统。“CIE”是产生它的组织:这个系统中的数字是L,a和b。在L这个系统中是亮度,如果我理解正确的话,这就是我们正在寻找的数字,我相信这实际上是基于对人类的大量实验。 Adobe Kuler是一个很棒的免费网站,您可以在其中使用包括 LAB 在内的各种系统中的颜色。但是,aandb值有点超出我目前的理解。所以我很高兴发现了 LAB 的前身……
Munsell 颜色系统使用色调、值和色度。它早于计算机,因此表示值的方式可能看起来有点“过时”。但实际上经过一点研究,我发现这个系统对我来说很有意义(多年来我一直对颜色感到困惑,但这似乎有帮助),而且它似乎深深植根于人类感知研究。这是一个示例:5PB 4.4/12具有 H、V 和 C 如下:
色调5PB是紫蓝色。Munsell 将色调放在一个圆圈周围(这就像 HSB 中的 H 值,可以用度数表示)。在孟塞尔系统中,字母用于描述色调(我稍后会描述数字)。有 10 种色调 - 比其他系统中的更多:红色、红紫、紫、紫蓝、蓝、蓝绿、绿、绿黄、黄、黄红,再回到红,写成R, RP, P,PB等等。范围从 1 到 10 的数字修改了字母描述以提供更高的精度。 5PB表示精确的紫蓝色。 10R介于红色和黄红色之间。
值4.4/接近中等亮度。值范围从 0(暗)到 10(亮)。“栗色”是深色R,“粉红色”是浅色。与这里的大多数其他系统不同,这些值数字实际上在色调之间是可比较的。如果你保持V不变并改变H和C,颜色似乎都具有相同的亮度。所以 Munsell'sV可能就是您要找的。
色度/12是颜色的“强度”。“翡翠”是强绿,“葡萄”是弱绿。色度值的范围很有趣。0 为灰色。最大值取决于色调和值。红色的最大值大约是蓝绿色的两倍。这种复杂性来自与人类的测量。所以这个系统在数学上并不整洁——但对我来说,它似乎很有用。
这里有一些比我在这里更好地解释孟塞尔系统的参考资料:
一开始就应该警告读者不要害怕外行人永远存在的对科学困惑的恐惧。颜色的三个维度不涉及高等数学的奥秘。没有什么比盒子的三个维度或任何其他可以感觉到或看到的形式更容易被普通读者理解的了。我们一直不习惯以任何秩序感来看待颜色,正是这个事实,而不是想法本身固有的任何复杂性,才是面对这种颜色概念的读者可能遇到的任何困难的根源。第一次。
…我们可以看到的所有颜色模型都无法准确地表示颜色关系,并且无法看到准确地表示颜色关系的颜色模型(物理构造或表示为图像)。
- mColorDesigner Mac 应用程序:Yanmei He 在 Mac App Store 上的几个应用程序之一,它有助于探索 Munsell 色彩空间并转换为/从您在实践中实际使用的值。我发现它有时有点慢和错误,但它确实帮助我更好地理解了这一点。