为什么我们使用Difference RGB转灰度函数?

信息处理 图像处理
2022-02-25 01:14:57

我发现这种用于 RGB 到灰度转换器的功能:

RGB转灰度

此示例将具有 RGB 通道的图像转换为具有单个灰度通道的图像。

每个灰度像素的值计算为相应的红色、绿色和蓝色像素的加权和:

Y = 0.2125 R + 0.7154 G + 0.0721 B

复制到剪贴板

CRT 荧光粉使用这些权重,因为它们比同等权重更能代表人类对红色、绿色和蓝色的感知。1

同样在Matlab 网站上说:

算法

rgb2gray 通过形成 R、G 和 B 分量的加权和来将 RGB 值转换为灰度值:

0.2989 * R + 0.5870 * G + 0.1140 * B

这些与 rgb2ntsc 函数用于计算 Y 分量的权重相同。

在 rgb2gray 中用于计算灰度值的系数与 Rec.ITU-R BT.601-7 中用于计算亮度 (E'y) 的系数在舍入到小数点后 3 位后是相同的。

Rec.ITU-R BT.601-7 使用以下公式计算 E'y:

0.299 * R + 0.587 * G + 0.114 * B

所以,我想知道为什么这个函数类型中存在差异值和多少标准?

谢谢。

2个回答

有不同的色彩空间。它们中的每一个都有不同的系数,用于从伽马校正的 RGB 值计算伽马校正的亮度。您已经列出了根据 ITU-R BT.709、ITU-R BT.601 和 NTSC 颜色空间计算亮度的系数。还有许多其他产品,例如用于广色域的消费电视中的 BT.2020。

它们不同的原因是(1)您的眼睛对不同颜色的敏感度不同,以及(b)显示设备具有非常不同的颜色输出。因此需要相应地调整发光。

只需添加参考和更正编号(0.7152):

#  0.2989 *R + 0.5870 *G + 0.1140 *B    # [1] NTSC
#  0.2126 *R + 0.7152 *G + 0.0722 *B    # [2] luminance signal EY
#  0.2627 *R + 0.6780 *G + 0.0593 *B    # [3] UHDTV