我需要生成 9 种不同的颜色以在我的应用程序中使用,以进行颜色编码。我希望颜色尽可能彼此不同,这样人们就可以最容易地区分任何一对。
经过对这个问题的一些研究,我能够通过选择 9 种等距颜色(在 HSL 空间中)并选择相距 40 度的每种色调来做到这一点:
我选择的它们有点暗,因为它们需要与我的应用程序的白色背景形成对比。
但是,即使这些颜色在数学上是等距的,但在我看来它们并不是这样的。特别是,3 种绿色色调(我的图像中为 3-5)似乎比其他 3 种其他色调更接近。
我知道这是因为眼睛不是线性感知事物的,所以有没有一种算法可以选择等距颜色相对于眼睛实际看到的方式?
(注意:我知道这仅对有色觉的人有用。我将单独处理色盲。就这个问题而言,我们不必担心这一点。)
我开发了这个功能,满足你的要求。我通过极小极大差异和强力 kNN 搜索生成了一个调色板,可最大化颜色之间的 CIEDE2000 deltaE00 距离。这会导致视觉上不同的颜色,例如人们可以在地铁地图线路中看到的颜色。