灰度到 RGB 转换


我们已经在图像类型教程中定义了 RGB 颜色模型和灰度格式。现在我们将彩色图像转换为灰度图像。有两种方法可以对其进行转换。两者都有各自的优点和缺点。方法有:

  • 平均法
  • 加权法或光度法

平均法

平均法是最简单的一种。您只需取三种颜色的平均值即可。由于它是 RGB 图像,因此这意味着您将 r 与 g 与 b 相加,然后除以 3 以获得所需的灰度图像。

就这样完成了。

灰度 = (R + G + B / 3)

例如:

RGB

如果您有像上图所示的彩色图像,并且想使用平均方法将其转换为灰度图像。将会出现以下结果。

RGB_灰色

解释

有一点可以肯定,那就是原作发生了一些变化。这意味着我们的平均方法有效。但结果并不如预期。我们想要将图像转换为灰度,但结果是一个相当黑的图像。

问题

这个问题的出现是因为我们取了三种颜色的平均值。由于三种不同的颜色具有三种不同的波长,对图像的形成有各自的贡献,所以我们必须根据它们的贡献来取平均,而不是用平均的方法来平均。现在我们正在做的是这样的,

红色 33%、绿色 33%、蓝色 33%

我们分别取 33%,这意味着每个部分在图像中都有相同的贡献。但实际情况并非如此。光度法已经给出了这个问题的解决方案。

加权法或光度法

您已经看到了平均方法中出现的问题。加权方法可以解决这个问题。由于红色在所有三种颜色中具有更大的波长,而绿色不仅是波长比红色更小的颜色,而且绿色是给眼睛带来更多舒缓效果的颜色。

这意味着我们必须减少红色的贡献,增加绿色的贡献,并将蓝色的贡献放在这两者之间。

所以形成的新方程是:

新灰度图像 = ( (0.3 * R) + (0.59 * G) + (0.11 * B) )。

根据这个等式,红色贡献了 30%,绿色贡献了 59%,这三种颜色中的贡献更大,蓝色贡献了 11%。

将这个方程应用于图像,我们得到这个

原图:

RGB

灰度图像:

加权灰色

解释

正如您在这里所看到的,图像现在已使用加权方法正确转换为灰度。与平均方法的结果相比,该图像更亮。