2019 - 使用 C++ 估算点云量

2019 - point cloud volume estimation with c++

本文关键字:使用 C++ 2019      更新时间:2023-10-16

我有一个点云(顶点数组 - x,y,z(,我们可以使用 - 用三个.js/webgl 显示点云。

我们将使用此设备:

https://www.sparkfun.com/products/14032https://www.youtube.com/watch?v=gCpCGkwwy8I

所以我们需要做的除了点云体积估计之外,我们可以做。

你有什么指示如何做到这一点,希望有例子吗?(我会从点云开始,然后进行体积估计(

我不擅长数学,所以拜托,我可以使用 API-s,但不能使用原始/复杂的数学计算。

为了计算点云的体积,您需要点云的 3D 网格表示。

既然您在问题的标签中添加了c++,您是否考虑过使用 PCL?

PCL 提供了如下所示的表面重建算法。

获得点云的 3D 网格后,可以像这样计算网格的体积: 如何计算表面由三角形组成的 3D 网格对象的体积

希望这对您有所帮助!

我的简单方法假设线性插值。

想象一个地球仪,传感器位于地球核心的中心。然后,点云中的每个点都对应于表面上的高度。当我们将 3 个最近的点连接在一起时,它们就会形成一块三角形的土地。将 3 个角投影回传感器,我们将得到一个非常高的基于三角形的金字塔,又名四面体。

然后,我们可以使用四面体体积(1/3 底 * 高度(的公式来获得该体积。将所有的四面体相加,我们应该得到点云的体积。

也许棘手的部分是在表面上获取三角形列表。我们可以利用计算机图形学中的技术将点云转换为三角形网格,正如此处另一个SO问题所回答的那样。