【问题标题】:Calculate the area of points计算点的面积
【发布时间】:2011-06-07 04:08:43
【问题描述】:

我无法在 Google 中找到好的答案,或者我可能只是错过了正确的关键词。欢迎任何帮助或建议!

我的问题如下: 我想计算某个点云覆盖的区域(二维)。我知道从数学上讲面积是 0,但我只能从正确的分布中提取样本点。此外,我没有关于点云边界的任何信息,每种形状都是可能的,包括孔等。所以使用流形边界的算法不起作用?!。

由于我正在使用的函数是平滑的,我可以假设点之间的空间也属于我要计算的区域。

目前我将空间划分为许多小盒子,并计算有多少盒子填充了一个或多个点。计数乘以盒子大小给了我一个面积。

有没有更优雅的解决方案?有什么想法吗?

谢谢 托马斯


编辑:

我所做的是将高维点投影到低维嵌入。我可以确定高维空间中的点数,因此也可以确定形成我要计算的区域的低维空间中的点数。如果我增加点的数量,事实证明它们位于“旧”点之间,这就是我所说的平滑。给定某个点,我可以假设在该点附近的某个附近,如果我采样更密集,我将能够找到属于该区域的新点。

此外,我有一个阈值,我可以在该阈值上认为两点“相等”,或者换句话说,我知道我想要达到哪个结果。


编辑 2:

我使用 GPLVM 进行从高维空间到低维空间的映射。所以我认为直接分析是两个困难/不可能。它们不是很直观,我认为在这种情况下直接使用二维点会更容易......

【问题讨论】:

  • 也许你应该从谷歌那里问过“如何计算点云的面积”。据我所知,每个人都通过构建凸包来解决它。
  • 由于您在高维空间中使用“平滑函数”,也许这就是要走的路(分析函数而不是离散投影)。你能解释一下你的功能是什么样的吗?
  • @belisairus:请参阅编辑 2 进行澄清。
  • 好的。我正在尝试在那条线上找到有用的东西
  • 你能提前知道孔的数量吗? (从数学上讲是形态欧拉数)为你的集合?

标签: geometry volume area


【解决方案1】:

有一种简单的统计方法(参见 Tuomi 和 Larjavaara, QJR Meteorol. Soc. (2005) 131, p. 1191, 附录)。一组合理规则的点(例如雷电下的雷击)的代表区域是 A = 12 Sx Sy sqrt(1 - R2)。标准差 Sx 和 Sy(乘以常数)定义了一个矩形,相关因子(R 是相关系数)说明了点有效覆盖了矩形的多大部分。这个结果在数学上并不高,但在实践中效果很好,例如,估计细胞的闪电密度。 - 拓米

【讨论】:

    【解决方案2】:

    您需要在此处对区域的含义进行更多定义。如果 all 点之间的空间被填充,则只需对边界点进行采样并计算多边形的面积。但是,如果您可以对完整分布进行采样并确定某个位置是在填充区域还是空白区域,那么您的方法更有意义。

    我看不出底层分布是如何平稳变化的——似乎一个点是否被填充。但是,如果您正在对密度分布进行采样,其中每个位置都有一个可变密度,那么您实际上是在执行面积积分或 正交,有很多方法可以用以下方法来近似基本分布一个解析函数。

    如果基础分布不是连续的(平滑变化)而是离散的,那么您实际上是在找到分形的面积。为此,您需要通过您的方法多次评估该区域以获得越来越精细的网格,直到该值停止变化。对于分形,值永远不会停止变化,但对于有限数据集,它最终会停止。

    【讨论】:

    • “一个点是否被填充,看起来。”你的意思是什么?
    • 在原文中添加了一些cmets来澄清(希望:))
    【解决方案3】:

    一种选择是找到一组点的凸包,即包含所有点的凸多边形。一旦你有了多边形,你就可以找到覆盖的区域。

    当然,这不会处理您的底层分布有漏洞的情况,在这种情况下,我想不出比您的 box-laying 变体更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2011-08-12
      • 2019-05-09
      • 2016-12-16
      • 1970-01-01
      • 2015-01-16
      • 2018-01-09
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多