为什么灰度按照它的方式工作?
我原来的问题
我读到要将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人的主观调查。
然而,当将图像转换为灰度时,为了实现“最佳”艺术效果,几乎肯定不会使用这些预定义系数,而是调整每个通道的贡献以产生特定图像的最佳输出。
没有找到相关结果
已邀请:
4 个回复
磁辫覆氓
闯舱酮
屑凉赦
稍惮
并转换为RGB会产生
,因此与执行
相同。 要了解原因,请查看描述转换HSV-> RGB的Wikipedia页面。饱和度
为0,所以
和
也是。你最终得到
为
然后将
加到最终的RGB值,结果为
=
。 HSL相同,结果为
=(
)。 编辑:好的,只是弄清楚以上不是完整的答案,虽然这是一个很好的起点。 RGB值将完全相同,
或
,但它仍然取决于
和
的初始计算方式,再次参见维基百科。似乎您用于转换的程序/公式使用
解决方案或其他两个(hexcone / bi-hexcone)之一。 毕竟,使用HSL / HSV只意味着你必须决定使用哪个公式,之后转换为RGB灰度值只是隔离最后一个组件。