-1

这个问题旨在抽象和集中解决我在“查找图像集合中最丰富多彩的图像”中表达的问题的一种方法。

想象一下,我们有一组圆,每个圆的圆周上有许多点。我们希望找到一个指标,它可以给一个圆的评分更高,并且点在圆周围均匀分布。一些点分散在整个 360° 中的圆更好,但与另一个区域中的点数较少相比,一个区域中点数多得多的圆不太好。

点数没有限制。

两个或多个点可能重合。

巧合点仍然是相关的。一个 0° 点和 180° 点的圆比 0° 有 100 个点和 180° 有 1000 个点的圆好。

一个圆每度一个点的圆是非常好的。一个圆每半度有一个点的圆更好。

在我的另一个(基于颜色的问题)中,有人建议标准偏差会很有用,但需要注意。这是一个好建议吗?它是否可以应对 359° 到 1° 的接近度?

4

2 回答 2

2

这在很大程度上取决于您实际想要实现的目标,如果您想要的只是均匀分布,那么您可以简单地取圆上的所有点并对它们进行平均,这个平均值越接近圆的中心,越均匀分布。

不过需要注意的是,在 0° 处有 180 个点,在 180° 处有 180 个点的分布与在每个度数处有一个点的分布一样好。如果这是您想要的,这只是一个定义问题。

一个相关但更复杂的概念是几何标准偏差:http ://en.wikipedia.org/wiki/Geometric_standard_deviation

另一种方法就像您在另一个问题中建议的那样,查看所有角度的平均点数,看看每个角度的点数偏离了多少。

即让I成为你的一组角度,比如说{0..359}v_i = #points at angle i, for i in I,其中一个点p在角度iiff floor(p) == i。然后mean_v = (sum of v_i for i in I) / length(I)d_v_i = v_i - mean_v

现在您可以定义几个指标:

  1. maximum of abs(d_v_i) for i in I
  2. sum of abs(d_v_i) for i in I
  3. sqrt((sum of (d_v_i^2) for i in I) / length(I))(这是标准偏差)

您可以采用更多指标,任何表示 d_v_i 中包含的偏差的数字都可以解决问题。这完全取决于您想要确定最佳指标的确切内容。

最后一点,您可能希望比较各种输入集之间的指标,即具有不同数量数据点的集,在您的情况下,这些数据点是不同大小的图像。您可能需要根据输入的大小缩放指标,并且根据您使用的指标,您可能需要以不同的方式进行缩放。不过,有一种简单的方法可以验证您的指标,只需计算图像的指标,然后将图像缩放到不同的大小,然后为缩放后的图像再次计算。当然,这两个指标应该是相同的。

于 2011-01-12T00:33:34.247 回答
1

所以,我会看看角度差异。第一步是对圆圈周围的点进行排序。然后将平方的相邻角度差相加。

所以,假设 p[0] 为 0 度,p[1] 为 10,p[2] 为 20。那么误差为 (10-0)^2 + (20-10)^2 + (360- 20)^2。

您还可以按点数进行归一化,或根据点数的最佳间距对每个差异进行归一化 (abs(difference)-optimal)^2

您可能还会考虑使用感知色彩空间,而不仅仅是 RGB 或 HSV。

于 2011-01-11T13:48:48.210 回答