将RGB转换为灰度/强度

29 浏览
0 Comments

将RGB转换为灰度/强度

当从RGB转换为灰度图像时,据说应该应用特定的通道R、G和B权重。这些权重是:0.2989、0.5870、0.1140。

据说这样做的原因是因为人类对这三种颜色的感知/敏感度不同。有时也说这些值用于计算NTSC信号。

然而,我在网上没有找到一个好的参考。这些值的来源是什么?

另请参见这些以前的问题:这里这里

admin 更改状态以发布 2023年5月20日
0
0 Comments

我在以前一个类似的问题的答案中找到了这个参考资料。它非常有帮助,这个页面有几个示例图像:

《颜色到灰度图像转换的感知评估》,作者是Martin Čadík,发表于2008年《计算机图形学论坛》(Computer Graphics Forum)

这个出版物探讨了几种生成不同结果灰度图像的方法:

  • CIE Y
  • Color2Gray
  • Decolorize
  • Smith08
  • Rasche05
  • Bala04
  • Neumann07

有趣的是,它得出的结论是没有普遍适用的最佳转换方法,因为每种方法在输入方面表现得更好或更差也不同。

0
0 Comments

问题中的具体数字来源于CCIR 601(可以查看维基百科文章)。

如果你用稍微不同的数字/不同的方法将RGB->灰度转换,

在普通电脑屏幕下的正常光照条件下,你几乎看不到任何区别--试试吧。

这里还有一些关于颜色的链接:

维基百科亮度

Bruce Lindbloom 的杰出网站

Colin Ware的书“信息可视化”中关于颜色的第4章,ISBN 1-55860-819-2;
这是一个长链接到books.google.com的访问可能或者可能不会有效

cambridgeincolor:
出色的、写作精良的
“教程,讲述如何使用以概念为重点的视觉方法获取、解释和处理数字照片”

如果你遇到了“线性”VS“非线性”的RGB,
这里有一个关于这个老笔记的一部分。
再说一遍,在实践中你不会看到多大的区别。


### RGB -> ^gamma -> Y -> L*

在颜色科学中,通常的RGB值,如html rgb(10%,20%,30%),
被称为“非线性”的或
伽马校正
“线性”值被定义为

Rlin = R^gamma,  Glin = G^gamma,  Blin = B^gamma

其中对于许多PC,伽马是2.2。
通常的R G B有时被写成R' G' B'(R' = Rlin ^(1 / gamma))
(纯粹主义者舌头点击),但是这里我会省略它们。

在CRT显示器上的亮度与RGBlin = RGB ^ gamma成比例,
因此CRT上的50%灰色相当暗:0.5 ^ 2.2 =最大亮度的22%。
(LCD显示器更复杂;
此外,某些显卡会补偿伽马。)

要从RGB获取名为L*的亮度度量,
首先将R G B除以255,然后计算

Y = .2126 * R^gamma + .7152 * G^gamma + .0722 * B^gamma

这是XYZ颜色空间中的Y,它是颜色“亮度”的度量。
(实际公式不是完全x^gamma,但接近;
第一次尝试使用x^gamma。)

最后,

L* = 116 * Y ^ 1/3 - 16

“... 希望实现感知均匀性[并]与人类对亮度的感知非常相似。” --
维基百科Lab颜色空间

0