我有一个点云(一个顶点数组-x,y,z),我们可以使用three.js / webgl使用-显示点云。
我们将使用此设备:
https://www.sparkfun.com/products/14032
https://www.youtube.com/watch?v=gCpCGkwwy8I
所以除了点云量估计之外,我们需要做的事情。
希望您能举例说明如何做到这一点吗? (我将从点云开始,然后转到体积估计)
我的数学不好,所以请使用API-s,但不能使用原始/复杂的数学计算。
答案 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
希望这对您有所帮助!