获取边界框的坐标,忽略边缘位置

时间:2011-01-31 23:42:56

标签: c# .net algorithm statistics geometry

我正在尝试围绕一组坐标创建一个边界框,但是我想要“聚焦”在坐标组上并忽略任何相反的情况并且会弄乱地图。 (想象一下城市上10个地点和另一个国家某地的1个地图)

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

3 个答案:

答案 0 :(得分:1)

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

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

所以我们假设你想从平均值

中排除超过2σ的东西

您需要计算:

σ(x),σ(y),mean(x),mean(y)

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

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

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

答案 1 :(得分:0)

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

正如Matthew PK所说,这对于一个简单的半径是有效的,但是如果你想要某种类型的弯曲边界,那么还有很多额外的工作。

答案 2 :(得分:0)

将您在统计课程中学到的知识付诸实践; e.g:

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