我原来的问题
我读到将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
这个scientific article详细介绍了各种图像的各种灰度技术及其结果,以及119人的主观调查。
然而,当将图像转换为灰度图像时,为了实现“最佳”艺术效果,几乎肯定不会使用这些预定义的系数,而是调整每个通道的贡献以产生特定图像的最佳输出。
解决方法
虽然这些变换系数存在,但是没有什么可以绑定到使用它们。只要每个像素的总强度不变,每个通道的贡献可以是0到100%的任何值。
将图像转换为灰度的摄影师使用通道混合器来调整每个通道的水平(RGB或CMYK)。在您的图像中,有许多红色和绿色,所以可能希望(取决于您的意图)让这些频道在灰度级比蓝色更高度地表现出来。
这是区分“科学”的形象与乐队“艺术”组合的转变。
另外考虑的是每个频带的值的动态范围,并试图将它们保留在灰度图像中。例如,增强阴影和/或高光可能需要增加蓝色波段的贡献。