我正在寻找一种算法,该算法可比较两种RGB颜色并生成它们的相似度值(其中相似度表示“相对于一般人的感知而言相似”)。
有任何想法吗?
编辑 :
由于我已经无法回答了,因此决定将我的“解决方案”作为对该问题的修改。
我决定在我的应用程序中使用一个(很小)的真彩色子集,以便我可以自己比较颜色。我使用大约30种颜色,并在它们之间使用硬编码的距离。
由于它是一个iPhone应用程序,因此我使用了Objective-C,实现的过程或多或少是一个代表下表的矩阵,该表显示了颜色之间的距离。
欧氏空间中的RGB距离不是很“类似于人类的平均感知”
您可以使用YUV颜色空间,它考虑了以下因素:
| Y' | | 0.299 0.587 0.114 | | R | | U | = | -0.14713 -0.28886 0.436 | | G | | V | | 0.615 -0.51499 -0.10001 | | B |
您也可以为此使用CIE颜色空间。
编辑:
我将提到YUV颜色空间是可以通过简单公式计算的便宜的近似值。但这并不是感知上统一的。感知上均匀意味着颜色值相同量的变化应产生视觉上相同的变化。如果需要更精确,更严格的度量标准,则必须绝对考虑CIELAB颜色空间或另一个在感知上统一的空间(即使没有简单的转换公式)。