检查颜色相似性的算法

标签 algorithm colors comparison rgb

我正在寻找一种算法来比较两种 RGB 颜色并生成它们的相似性值(其中相似性意味着“在人类平均感知方面相似”)。

有什么想法吗?

编辑:

因为我不能再回答了,所以我决定将我的“解决方案”作为对问题的编辑。

我决定在我的应用程序中使用(非常)小的真彩色子集,这样我就可以自己处理颜色比较。我使用大约 30 种颜色并使用它们之间的硬编码距离。

因为它是一个 iPhone 应用程序,所以我使用 Objective-C 并且实现或多或少是一个表示下表的矩阵,它显示了颜色之间的距离。

enter image description here

最佳答案

RGB distanceeuclidean space与“普通人类感知”不太相似。

您可以使用 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颜色空间或另一个感知均匀的空间(即使没有简单的转换公式)。

关于检查颜色相似性的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392061/

相关文章:

algorithm - 通过后备数组中的索引交换双向链表中的项目

java - 如何在java中为设计着色?

java - 尝试使用颜色图绘制垂直线性渐变,但仅使用前 9 种颜色 : why?

algorithm - 快速求解子集和

c# - 创建动态优惠券检查器

用于查找数组最大公共(public)子集的 Objective-C 算法?

string - “相乘”字符串单元格以形成组合字符串的 MxN 大小单元格数组

sql-server - 日期时间比较更新两列

image-processing - 有没有一种简单的方法来比较两种颜色彼此之间的接近程度?

iOS7 常量与表达式的比较始终为假