【问题标题】:Most "thorough" distribution of points around a circle围绕圆的点的最“彻底”分布
【发布时间】:2011-01-11 03:24:46
【问题描述】:

这个问题旨在抽象和集中解决我在“Find the most colourful image in a collection of images”中表达的问题的一种方法。

假设我们有一组圆,每个圆的圆周上都有许多点。我们希望找到一个指标,它可以给一个圆的评分更高,并且点在圆周围均匀分布。一些点分散在整个 360° 范围内的圆圈效果更好,但与另一个区域中的点数较少相比,一个区域中点数多得多的圆圈效果较差。

点数不限。

两个或多个点可能重合。

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

圆每度一个点的圆是非常好的。一个圆每半度一个点的圆比较好。

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

【问题讨论】:

    标签: distribution geometry points standard-deviation


    【解决方案1】:

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

    这里需要注意的是,在 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 是角度i iff 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 中包含的偏差的数字都可以解决问题。这完全取决于您想要什么来确定最佳指标。

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 重新感知色彩空间,我决定暂时先忽略匹配人类视觉的尝试,先解决简化的情况。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 2012-12-20
      相关资源
      最近更新 更多