【问题标题】:Get bounding box of coordinates, ignoring fringe locations获取坐标边界框,忽略边缘位置
【发布时间】:2011-01-31 23:42:56
【问题描述】:

我正在尝试围绕一组坐标创建一个边界框,但我想“关注”坐标组并忽略任何偏离并会弄乱地图的坐标。 (想象一个城市有 10 个地点,另一个国家有 1 个地点的地图)

构建左上角和右下角值的最佳方法是什么?

【问题讨论】:

  • 你需要正方形还是长方形?
  • 对我来说并不重要,但使用正方形的解决方案听起来很有趣。
  • 更多细节可能有助于您获得更好的答案。我已经为你覆盖了矩形边界。你的离群值有多远?

标签: c# .net algorithm statistics geometry


【解决方案1】:

首先我会确定您对“边缘位置”的标准

类似于“2 σ 之外”的东西,那么您只需要计算两个维度的平均值并在 2 σ 处画线。如果您想要一些弯曲的边界,那么事情会变得更加复杂......从您的标准开始,然后从那里继续前进。

所以我们假设你想从平均值中排除超过 2σ 的东西

你需要计算:

σ(x), σ(y), 均值(x), 均值(y)

那么你的左上界是( mean(x)-2σ(x) , mean(y)+2σ(y) )

而你的右下界是 ( mean(x)+2σ(x) , mean(y)-2σ(y) )

这将在两个维度上产生一个 2σ 的矩形。对于一个圆圈,事情会变得有点复杂......从定义你的“可接受区域”开始

【讨论】:

    【解决方案2】:

    计算质心,然后选择最接近该质心的点。然后,丢弃任何超过某个恒定距离的点(或者,也许是某个阈值,例如距该点一两个标准差)。现在,使用修剪后的点集重新计算。这样做直到您对结果满意为止(即所有点都在您定义的范围内)。

    正如 Matthew PK 所说,这适用于简单的半径,但如果您想要某种类型的弯曲边界,则需要做很多额外的工作。

    【讨论】:

    • 如果您使用相同的标准重新计算(例如“删除 2σ 之外的任何内容”),那么您将始终删除点。如果您在第一次迭代中使用相同的 σ,则不会删除任何点(因为它们已经被修剪)
    【解决方案3】:

    将您在统计课程中学到的知识付诸实践;例如:

    1. 计算 X 和 Y 坐标的平均值
    2. 计算标准偏差(X 和 Y)
    3. 丢弃与平均标准差超过两个标准差的项目
    4. 根据结果坐标计算边界框

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多