我怎么知道黑色将打印出多深的颜色?
出于类似的原因,我最近一直在研究如何获取颜色的感知亮度,尽管我对在屏幕上而不是在纸张上观看感兴趣。这是我发现的一些东西:
汇丰银行
将问题中的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转换为Greyscale时所做的工作进行建模的尝试。如果您想要更多的公式,则此Stack Overflow问题的答案中列出了很多内容。
色彩系统实际上基于感知测量
我在上面的引号中加上了“感知的亮度”,因为如果我理解正确的话,这些公式只是实际感知到的简单近似值。要解决这一问题,需要在可控条件下对实际人类受试者进行大量实验,结果并不符合简洁的公式。
有一个名为CIELAB的系统。“CIE”是产生它的组织:在本系统中的数字是L
,a
和b
。在L
本系统中是亮度,如果我的理解没错,这就是我们正在寻找的数字,我相信这实际上是基于大量的与人类实验。 Adobe Kuler是一个很棒的免费网站,您可以在其中使用LAB等各种系统来进行色彩处理。但是,a
和b
值有点超出我目前的理解。所以我很高兴发现LAB的前身...
该孟塞尔颜色系统使用色相,明度和色度。它早于计算机,因此声明值的方式可能看起来有些“过时”。但是实际上,经过一番研究之后,我发现这个系统对我来说意义非凡(多年来我一直对颜色感到迷惑,但这似乎有所帮助),而且它似乎深深植根于人类感知的研究中。这是一个示例:5PB 4.4/12
H,V和C如下:
色相5PB
为紫蓝色。孟塞尔将色相围绕一个圆圈放置(这类似于HSB中的H值,可以用度表示)。在孟塞尔(Munsell)系统中,字母用于描述色相(我稍后将描述数字)。有10种色调-比其他系统中的色调更多:红色,红色-紫色,紫色,紫色-蓝色,蓝色,蓝绿色,绿色,绿黄色,黄色,黄红色,并返回红色,写为R
,RP
,P
,PB
等。位数,取值范围为1至10,修改信描述得到更精确。 5PB
表示精确的紫蓝色。 10R
在红色和黄色-红色之间。
价值4.4/
接近中度。值的范围从0(暗)到10(亮)。“栗色”是深色R
,“粉红色”是浅色。这些值实际上在色相之间是可比较的,这与此处的大多数其他系统不同。如果保持V
不变并更改H
和C
,则所有颜色似乎都具有相同的亮度。因此,孟塞尔(Munsell)V
可能就是您想要的。
色度/12
是颜色的“强度”。“翡翠”是绿色,“葡萄”是绿色。色度的值范围很有趣。0是灰色。最大值取决于色相和值。红色的最大值大约是蓝绿色的最大值的两倍。这种复杂性来自对人的测量。因此,该系统在数学上并不整齐-但对我来说,它确实很有用。
这里有一些参考资料比我在这里更能解释Munsell系统:
从一开始就应该警告读者不要对外行人的科学困惑感到恐惧。颜色的三个维度不涉及高等数学的奥秘。关于它们,没有什么比普通读者不容易理解的是盒子的三个维度或任何其他可以感觉或看到的形式容易理解的了。我们一直不习惯以任何秩序的方式来对待色彩,这就是事实,而不是观念本身固有的任何复杂性,这将是面对这种色彩概念的读者可能遇到的任何困难的根源。第一次。
…我们可以看到的所有颜色模型都不能准确地表示颜色关系,也不能看到准确地表示颜色关系的颜色模型(物理构造或表示为图像)。