计算平均网格大小

时间:2014-12-01 12:14:07

标签: graphics statistics computational-geometry

我正在尝试计算以下一组点的平均单元格大小,如图所示:grid。图片是使用gnuplot生成的:

gnuplot> plot "debug.dat" using 1:2

点几乎在矩形网格上对齐,但不完全对齐。沿着X或Y似乎存在10-15%的偏差(抖动?)。如何有效地计算图块中的适当分区,以便虚拟每个图块只有一个点,大小将表示为(tilex,tiley)。我使用虚拟这个词,因为10-15%的偏差可能会在另一个相邻的图块中移动一个点。

仅供参考,我手动排序(希望正确)并提取前10个点:

 -133920,33480
 -132480,33476
 -131044,33472
 -129602,33467
 -128162,33463
 -139679,34576
 -138239,34572
 -136799,34568
 -135359,34564
 -133925,34562

为了澄清,根据上述描述的有效瓷砖将是(1435,1060),但我真的在寻找一种快速自动化的方式。

1 个答案:

答案 0 :(得分:1)

我们只为X坐标执行此操作:

1)对X坐标进行排序

2)查看两个后续X坐标之间的增量。这些delta将分为两类 - 它们对应于两列之间的空格,或者对应于同一列中十字之间的空格。你的目标是找到一个将长空间与短空间分开的阈值。这可以通过找到一个阈值来完成,该阈值将增量分成两组,其中均值相距最远(我认为)

3)一旦有了阈值,就将点分成列。列以与您先前测量的阈值相对应的增量开始和结束

4)计算每个检测柱的平均位置

5)在后续列之间取得增量。现在,问题是你可能会得到一个会破坏你的列的迷路点。使用中位数来摆脱困境。

6)你应该对gridX进行可靠的估计

示例,使用您的数据,查看X轴:

-133920 -132480 -131044 -129602 -128162 -139679 -138239 -136799 -135359 -133925

排序+增量:

5 1434 1436 1440 1440 1440 1440 1440 1442

在这里,您可以看到小(5)和大(1434及以上)增量之间存在非常明显的阈值。 1434将在此定义您的空间

将点拆分为列:

-139679|-138239|-136799|-135359|-133925 -133920|-132480|-131044|-129602|-128162
       1440   1440    1440    1434      5    1440    1436    1442    1440

几乎所有的观点都是孤军奋战,除了两个-133925 -133920。

平均网格线位置为:

-139679 -138239 -136799 -135359 -133922.5 -132480 -131044 -129602 -128162

排序的增量:

1436.0 1436.5 1440.0 1440.0 1440.0 1440.0 1442.0 1442.5

平均:

1440

这是您的SMALL数据集的正确答案,恕我直言。

相关问题