gpt4 book ai didi

colors - 给定颜色的 RGB 分量,我如何确定它是否被人类感知为灰色?

转载 作者:行者123 更新时间:2023-12-01 12:45:43 24 4
gpt4 key购买 nike

一种简单的说法是,当 RGB 分量相等时,它们形成灰色。然而,这还不是全部,因为如果它们只有细微的差别,它们看起来仍然是灰色的。

假设观看者具有健康的色彩视觉,我如何确定给定值是否会被视为灰色(大概具有可调节的“灰度”阈值级别)?

最佳答案

一个相对直接的方法是将 RGB 值转换为 HSV color space并在 saturation 上使用阈值组件,例如“如果饱和度 < 0.05,则‘几乎是灰色’,否则不是灰色”

饱和度实际上定义为“灰度/色彩”。

此方法比使用 R、G 和 B channel 之间的差异更准确(因为人眼对浅色和深色的饱和度感知不同)。另一方面,将 RGB 转换为 HSV 是计算密集型的。由您决定什么更有值(value) - 精确答案(灰色/非灰色)或性能。

如果您需要更精确的方法,您可以使用 L*a*b* color space并将色度计算为 sqrt(a*a + b*b) (参见 here ),然后对该值应用阈值。但是,这会甚至计算密集型。

您还可以组合多种方法:

  • 计算 R、G、B 分量之间的简单差异。如果颜色可以被识别为绝对去饱和(例如max(abs(R-G), abs(R-B), abs(G-B)) <= 5)或绝对饱和(例如max(abs(R-G), abs(R-B), abs(G-B)) > 100),然后停止。

  • 否则,转换为 L*a*b*,计算色度为 sqrt(a*a + b*b)并对这个值使用阈值。

关于colors - 给定颜色的 RGB 分量,我如何确定它是否被人类感知为灰色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16209111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com