【发布时间】:2020-10-13 23:11:13
【问题描述】:
我想生成彩虹色,具有相同的感知亮度和相同的感知饱和度。
本质上,我正在寻找一个采用三个参数的公式:getRgbColor(hue, perceived_brightness, perceived_saturation) 并返回相应的颜色,如果不存在具有这些约束的颜色,则返回某种错误。
-
“感知亮度相同”我的意思是:一个普通人在他们的普通显示器上看到这些颜色会说这些颜色看起来与一种特定的灰色阴影一样亮。
-
“相同的感知饱和度”我的意思是:在普通显示器上看到这些颜色的普通人会说,与那种灰色阴影相比,这些颜色看起来同样丰富多彩。 p>
每个人对颜色的看法都会有所不同,所以我正在寻求一个平均的共识。
根据我的理解,要生成相同“感知亮度”的颜色,我可以使用CIELAB 色彩空间,并设置 [L] 亮度。但是我不知道a 和b 使用什么值,以及如何设置饱和度或色调。
要生成相同“感知饱和度”的颜色,我想我可以使用 HSV 或 HSL 颜色空间,并设置 [S] 饱和度。但在这些色彩空间中,“感知亮度”似乎与 [V] 值或 [L] 亮度不对应。与具有相同值或相同亮度的黄色阴影相比,蓝色阴影看起来要暗得多。
我正在使用 opencv 进行图形输出,我正在寻找一种在 opencv 中计算这些颜色的方法,或者一个通用公式。
【问题讨论】:
-
你可能在找en.wikipedia.org/wiki/CIECAM02 这是一个外观模型,所以符合你的“认知”。但它很复杂,您可能没有所有信息:感知的饱和度取决于色调,还取决于亮度(我们不知道屏幕的亮度,我们可能假设普通办公室用户会使用更亮的设置,摄影师/设计师会使用更低的亮度) end [显示器校准的一个步骤是设置亮度])。
标签: opencv graphics colors language-agnostic color-space