RGB到单色的转换

时间:2020-03-05 18:40:17  来源:igfitidea点击:

如何将像素的RGB值转换为单个单色值?

解决方案

回答

我在颜色常见问题解答中找到了一种可能的解决方案。亮度分量Y(来自CIE XYZ系统)捕获人类在一个通道中最常感知为的颜色。因此,请使用这些系数:

mono = (0.2125 * color.r) + (0.7154 * color.g) + (0.0721 * color.b);

回答

此MSDN文章使用(0.299 * color.R + 0.587 * color.G + 0.114 * color.B);

这篇Wikipedia文章使用(0.3 * color.R + 0.59 * color.G + 0.11 * color.B);

回答

这取决于动机。如果我们只想将任意图像转换为灰度图像,并且看起来不错,则可以使用此问题的其他答案进行转换。

如果要将彩色照片转换为黑白照片,此过程可能会非常复杂且主观,需要对每个图像进行特定的调整。要了解可能涉及的内容,请查看Adobe for Photoshop中的本教程。

在代码中复制此代码将相当复杂,并且仍然需要用户干预才能使生成的图像在美学上"完美"(无论这意味着什么!)。

回答

这篇最新的科学文章比较了将彩色照片转换为灰度的最新技术,包括简单的亮度公式和更复杂的技术。

回答

还如前所述,来自RGB三胞胎的灰度转换(请注意,单色图像不必是灰度的)容易受味道的影响。

例如,我们可以作弊,仅将蓝色和红色成分扔掉,然后复制蓝色值,从而仅提取蓝色成分。另一个简单且通常可行的解决方案是取像素的RGB三元组的平均值,并在所有三个分量中使用该值。

仅适用于Photoshop的专业且价格不便宜的灰度/单色转换器插件存在相当大的市场,这一事实说明,转换就像我们希望的那样简单或者复杂。