2019 - 使用 C++ 进行点云体积估计

2019 - point cloud volume estimation with c++

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

我们将使用此设备:
https://www.sparkfun.com/products/14032
https://www.youtube.com/watch?v=gCpCGkwwy8I

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

你有任何指示如何做到这一点,希望有例子吗? (我将从点云开始并进行体积估计)

我数学不好,所以拜托,我可以使用API-s,但不会raw/complex数学计算。

我的简单方法采用线性插值。

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

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

也许棘手的部分是获取曲面上的三角形列表。我们可以利用计算机图形学中的技术将点云转换为三角网格,正如其他 SO 问题 here.

中所回答的那样

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

自从您将 c++ 添加到问题的标签后,您是否考虑过使用 PCL

PCL 提供表面重建算法,如 here

获得点云的 3D 网格后,您可以像这样计算网格的体积:How to calculate the volume of a 3D mesh object the surface of which is made up triangles

希望对您有所帮助!