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

时间:2019-04-11 10:05:59

标签: c++ 3d point-clouds

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

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

所以除了点云量估计之外,我们需要做的事情。

希望您能举例说明如何做到这一点吗? (我将从点云开始,然后转到体积估计)

我的数学不好,所以请使用API​​-s,但不能使用原始/复杂的数学计算。

2 个答案:

答案 0 :(得分:1)

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

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

然后我们可以使用公式计算四面体的体积(1/3个基数*高度)以得到该体积。总结所有四面体,我们应该得到点云的量。

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

答案 1 :(得分:1)

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

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

PCL提供here之类的表面重建算法。

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

希望这对您有所帮助!