给定一组颜色,哪种颜色与其最对比?

3
我有一个包含多个“随机”颜色值的列表(不少于1个,不超过8个)。 (随机意味着它们之间的“对比度”无法确定。)
颜色以RGB值给出(可能简化为HSL模型中的H值,或者其他选择的颜色系统 - 我可以在生成原始颜色时进行一定程度的控制)。
我需要计算一个单一的颜色值,它与列表中所有颜色最“对比度”(即在视觉上容易区分)。
对于包含8个颜色的情况,对于对比度的实际标准为:
如果我们画9个正方形,并用以下方式填充颜色:
[1] [2] [3] [4] [X] [5] [6] [7] [8]
方块X的颜色必须与所有相邻颜色明显不同。
可能的简化方法:将最大颜色数从8个减少到4个(在此示例中为2、4、5、7号正方形,忽略对角线)。
1个回答

1

我认为最好的解决方案可能是:

  1. 使用所有颜色最大化色调差异(简单线性优化)
  2. 最大化照明
  3. 最大化饱和度

http://www.colorsontheweb.com/colorcontrasts.asp

编辑:使用线性规划,您可以给对角色彩降低重要性。

编辑2:最大化是什么意思: 您想要最大化色调对比度,这意味着所有|Hi-result|的总和,其中Hi代表颜色i的色调,应最大化。您甚至可以创建最小差异的条件,例如|Hi-result|> Hmin。实际计算可以通过将方程提供给线性优化算法来完成,或者您可以尝试在0.0和1.0之间以0.05为步长尝试所有色调值,并保存最佳结果。 http://en.wikipedia.org/wiki/Linear_programming


你能详细说明一下在这种情况下“最大化”是什么意思吗? - Alexander Gladysh
看起来有效,谢谢,会试一下。也许使用感知色彩模型(CIELAB?)会更好。 - Alexander Gladysh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接