如何检测最相似的颜色?

问题描述 投票:0回答:2

我有2000多个颜色名称,我希望使用给定的颜色(例如:#0087b4)在我的列表中找到在视觉上与该颜色最相同的颜色。有没有什么算法可以帮助我做到这一点?

image image-processing graphics colors drawing
2个回答
0
投票

如果您具有从颜色名称到颜色空间值的映射,则可以使用任何最近的邻居方法,例如KNN或任何快速最近的邻居变体。如果只需要一种最接近的颜色,请使用k = 1的KNN。

[您可以尝试的另一种方法是将所有颜色堆叠在一个矩阵中作为行并构建一个颜色矩阵C,例如,如果您使用的是RGB颜色空间,则C将是一个2000x3矩阵,其第n行具有R,G和第n种颜色的B分量。然后,要找到最接近颜色x的颜色,它是具有R,G和B分量的3x1向量,计算乘积C.x,这应为您提供2000x1向量,并找到其最大元素的索引。对应于此行的颜色是最接近x的颜色。


0
投票

我不知道这对您有多大帮助!我有类似的问题。当我们在人类能见度之上说话时,这全都取决于观点,一个人与另一个人的观点就不同。对我来说红色的红色,对我来说可能是红色,也可能不是红色。因此,很难创建一个适合所有人的模块。我发现图像的HSV格式将在这里很好地工作。

作为

H --->代表从色带到红色,绿色,蓝色,青色,洋红色,黄色的颜色变化>>

S --->更改S时,颜色将在H中选择的相同色带中移动

V ---->当我们改变V时,我们会看到亮度的变化。

根据The human visual system is more sensitive to contrast than absolute luminance的许多研究对比>

所以我认为,根据以上所述,您可以提供需要检测并在该范围内找到的颜色的HSV值范围

© www.soinside.com 2019 - 2024. All rights reserved.