您有多种选项可以降低图像的饱和度。
此外请注意,对图像进行去饱和处理not只是为了使其黑白,但对于某些应用程序,您可能认为它们是等效的。
我更新了这篇文章并提供了更多详细信息。
Average
这是第一件事student可以将图像转换为灰度(至少是我过去首先想到的!),它看起来像去饱和度:
level = (R + G + B) / 3
它不会产生不好的结果,而且快速且易于实施。但它有一个很大的缺点,那就是它与人类感知光度的方式不相符。
亮度
第二种方法(亮度有时称为亮度、亮度或强度)是我们眼睛感知亮度方式的更好模型。这是基于以下事实:锥体密度 http://hyperphysics.phy-astr.gsu.edu/hbase/vision/rodcone.html不同颜色在眼睛中的表现并不统一。我们对绿色的感知比对红色的感知更强烈,对红色的感知比对蓝色的感知更强烈。
因为我们不会以相同的强度感知所有颜色,所以平均方法是不准确的(至少它不会产生看起来像的结果)natural)。如何管理这个?只需使用加权平均值:
level = R * 0.3 + G * 0.59 + B * 0.11
正如您可以想象的那样,关于这些价值观有很多讨论。最初的 ITU-R 建议书提出了这个公式:
level = R * 0.2126 + G * 0.7152 + B * 0.0722
如果我没记错的话 Photoshop 使用这个simple去饱和函数(是的,它是第一个函数的未舍入版本):
level = R * 0.299 + G * 0.587 + B * 0.114
我不认为我们可能会注意到很多差异,无论如何推荐最近发生了变化,看看维基百科上的这里 http://en.wikipedia.org/wiki/Luma_%28video%29有关此公式的更多详细信息。
您想要更多详细信息吗?阅读查尔斯·波因顿的这篇文章:伽马康复 http://poynton.com/papers/IST_SPIE_9801/index.html和他的FAQ http://poynton.com/GammaFAQ.html关于这个话题。
去饱和度
每个像素都用RGB颜色模型 http://en.wikipedia.org/wiki/RGB_color_model但饱和度属于HSL颜色模型 http://en.wikipedia.org/wiki/HSL_and_HSV(实际上,当您可以使用 HSL 或 HSV 模型时working饱和)。请阅读链接以了解有关这些型号的更多详细信息。
图像去饱和包括以下步骤:
- 将每个像素从 RGB 转换为 HSL(请参阅如果您需要详细信息)。
- 强制饱和度为零(这应该是
setSaturation(0)
does)
- 将其转换回 RGB(参见此bookmark http://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB).
让我介绍一个big这个过程的简化:你可以对颜色进行去饱和,找到 RGB 最大值和 RGB 最小值之间的中点(亮度,你还记得颜色中的颜色吗?RGB色彩空间 http://en.wikipedia.org/wiki/RGB_color_space,是 3D 空间中的一个点?)。获得去饱和图像的(简化)公式是:
level = (max(R, G, B) + min(R, G, B)) / 2
分解
一种更简单的去饱和形式,有时称为局部最大分解只需选取每个 RGB 三元组的最大值:
level = max(R, G, B);
正如你可以想象的,你可以使用局部最大值或局部最小值(我写过local因为它搜索每个像素的最小值/最大值)。
其他方法
不要忘记,您可以非常快速地获取黑白图像(然后看起来像去饱和图像的图像),只需保留 RGB 三元组中的一个通道(例如绿色通道)并将该值复制到所有通道即可。
有时,Photoshop 教程不会使用其功能来降低图像的饱和度(降低饱和度功能和调整调色板),而是为了获得更好的结果,他们添加具有统一颜色的图层(根据以下值计算)亮度部分)并将该层与原始图像合并(搜索教程并重现代码中的步骤)。