为什么灰度按照它的方式工作?

我原来的问题 我读到要将RGB像素转换为灰度RGB,应该使用
r_new = g_new = b_new = r_old * 0.3 + g_old * 0.59 + b_old * 0.11
我也阅读并理解,
g
的权重更高,因为人眼对绿色更敏感。实现这一点,我看到结果与在像Gimp这样的图像编辑器中将图像设置为“灰度”时的结果相同。 在我读到这篇文章之前,我想象要将像素转换为灰度,将其转换为HSL或HSV,然后将饱和度设置为零(因此,删除所有颜色)。然而,当我这样做时,我得到了一个完全不同的图像输出,即使它也缺少颜色。
s = 0
与我读到的'正确'方式完全不同,为什么它'不正确'? 基于答案和其他研究的持续发现 似乎使用哪个亮度系数是一些争论的主题。各种组合和灰度算法具有不同的结果。以下是电视标准等领域中使用的一些预设: ITU-R BT.601(NTSC?)定义的系数是
0.299r + 0.587g + 0.114b
ITU-R BT.709(更新版)定义的系数为
0.2126r + 0.7152g + 0.0722b
等于三分之一的系数
(1/3)(rgb)
相当于
s = 0
这篇科学文章详细介绍了各种灰度技术及其各种图像的结果,以及对119人的主观调查。 然而,当将图像转换为灰度时,为了实现“最佳”艺术效果,几乎肯定不会使用这些预定义系数,而是调整每个通道的贡献以产生特定图像的最佳输出。     
已邀请:
虽然存在这些变换系数,但没有任何东西可以帮助您使用它们。只要每个像素的总强度不变,每个通道的贡献可以是任何值,范围从0到100%。 将图像转换为灰度的摄影师使用通道混合器来调整每个通道的电平(RGB或CMYK)。在您的图像中,有许多红色和绿色,因此可能需要(取决于您的意图)使这些通道在灰度级强度中比蓝色更高。 这就是区分图像的“科学”转换与乐队的“艺术”组合的区别。 另一个考虑因素是每个波段的动态值范围,并尝试将其保留在灰度图像中。例如,增强阴影和/或高光可能需要增加蓝色波段的贡献。     
这里有一篇关于这个主题的有趣文章......“因为人眼没有用颜色线性地检测亮度”。 http://www.scantips.com/lumin.html     
看起来这些系数来自旧的CRT技术,并且不适合今天的显示器,来自Color FAQ:   系数0.299,0.587和   对于具有磷光体的监视器,0.114正确计算的亮度   当代引进   1953年的NTSC电视台。他们是   仍然适合计算视频   亮度将在下面的章节中讨论   然而,这些系数不能精确计算亮度   现代监视器。 但是,无法找到正确的转换系数。 另请参阅RGB到单色转换     
在HSL / HSV中使用
s = 0
并转换为RGB会产生
R = G = B
,因此与执行
r_old * 1/3 + g_old * 1/3 + b_old * 1/3
相同。 要了解原因,请查看描述转换HSV-> RGB的Wikipedia页面。饱和度
s
为0,所以
C
X
也是。你最终得到
R_1,G_1,B_1
(0,0,0)
然后将
m
加到最终的RGB值,结果为
(m,m,m)
=
(V,V,V)
。 HSL相同,结果为
(m,m,m)
=(
L,L,L
)。 编辑:好的,只是弄清楚以上不是完整的答案,虽然这是一个很好的起点。 RGB值将完全相同,
L
V
,但它仍然取决于
L
V
的初始计算方式,再次参见维基百科。似乎您用于转换的程序/公式使用
1/3 * R + 1/3 * G + 1/3 * B
解决方案或其他两个(hexcone / bi-hexcone)之一。 毕竟,使用HSL / HSV只意味着你必须决定使用哪个公式,之后转换为RGB灰度值只是隔离最后一个组件。     

要回复问题请先登录注册