知道 'color differences' 以像素 (RGB) 为单位使用哪个距离度量

Knowing which distance metric to use for 'color differences' in pixels (RGB)

目前,我正在使用灰度来比较像素,我认为这不是很理想,因为它会丢失大量信息。执行此操作的一些常见算法是什么?例如,欧氏距离通常被认为是一个好的度量标准吗?我敢肯定有很多,我想知道一种方法来选择最适合我处理的图像类型的方法,铁轨。

我正在考虑在两张图片上采样一千个点,一张有火车,另一张没有。然后我可以找出它们之间的区别(使用任何通用指标),然后绘制初学者的分布图。理想情况下,一旦我有了这个分布,我就可以执行某种统计测试来确定哪种算法表现最好。

使用欧氏距离的主要优点之一是计算简单。但是,RGB space 不是比较色差的好颜色space。它的灰度投影更不适应

基于这些前提,历史上曾提出过几种颜色space,以用欧氏距离来衡量人类感知的颜色差异。

然而,人类感知的复杂性与使用简单公式来映射相对于不同颜色的坐标的尝试相冲突-space。这导致许多解决方案的激增,这些解决方案平衡了 objective 以近似人类感知与公式的简单性。

CIELAB 是使用最广泛的颜色之一,space用于评估色差。根据Wikipedia

CIELAB was intended as a perceptually uniform space, where a given numerical change corresponds to similar perceived change in color.

仅使用欧氏距离的原始定义可以追溯到 1976 年。另一个 Wikipedia page 解释说,历史上已经发表了各种改进,以纠正后来发现的不均匀性。

总而言之,为了评估两种颜色之间的人为感知差异,我建议您按照以下方式进行:

  1. 使用您可以在网上找到的公式将颜色从 RGB 颜色 space 转换为 CIELAB 颜色 space(您可能需要将 RGB 转换为 CIEXYZ,然后将 CIEXYZ 转换为 CIELAB);
  2. 计算两种映射颜色之间的欧氏差异。您当然可以根据需要的准确性使用其他指标之一。