基于颜色分布计算图像相似度

数据挖掘 数据挖掘 聚类 相似
2021-10-11 20:57:32

基于调色板分布的图像相似度

我正在尝试根据它们的调色板分布计算两个图像之间的相似性,假设我有两组键值对,如下所示,

图1: {'Brown': 14, 'White': 13, 'Black': 40, 'Gray': 31}

图2: {'Pink': 82, 'Brown': 8, 'White': 7}

其中数字表示图像中该颜色的百分比。在两幅图像之间以 0-100 的比例计算相似度的最佳方法是什么?

1个回答

尝试使用Earth Mover's Distance它测量了将一个直方图最佳地重塑为另一个直方图的“成本”,其中基本变换(使用类似编辑距离的距离测量的术语)正在将一个质量单位从一个 bin 移动到一个 bin。如果您有 EMD 的实现,那么您的距离是 dist = EMD(H1, H2, D),其中

 H1 = [ 14, 13, 40, 31 ]; -- histogram #1 (first image)
 H2 = [ 82, 8, 7 ]; -- histogram #2 (second image)
 D  = [ D11, D12, D13; ... ; D41, D42, D43 ]; -- (cross-bin) ground distance

Dij 是从第一个直方图的第 i 个 bin 到第二个直方图的第 j 个 bin 的距离。例如,D21 是“White”和“Pink”之间的距离。它的定义可能不同,具体取决于您要使用的色彩空间,以及您如何定义两种颜色相似的含义。如果我使用 RGB,并且我不太关心人眼如何感知颜色,那么 D21 可以是差异 [1, 1, 1] - [1, 0.05, 0.7] 的 \ell_2 范数。(据我记得,我提到的论文使用 LAB 而不是 RGB。)

PS 除了颜色,您还可以在比较中包含空间信息。EMD 可以很好地处理它,只要在地距离 D 的定义中将颜色相似度与空间相似度适当地结合起来即可。