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
希望对您有所帮助!
我有一个点云(顶点数组 - 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
希望对您有所帮助!