用于计算点云部分体积的算法
Algorithm for calculating the volume of the part of point cloud
我正在参与与点云相关的项目研究。
我们必须创建一个 Web 应用程序。其任务将是显示来自 .ply 文件的点云。然后选择一个区域并计算其体积。计算体积的算法将在C++中实现。我们唯一拥有的是一个 .ply 格式的文件和带有所有点的 XYZ 坐标的文件。我们得到的点云是由无人机拍摄的照片生成的。例如,它是代表山区的点云。我们的任务是能够选择这样的一座山,并在考虑到误差+/-的情况下计算其近似体积。测量不必完美,但必须接近山的实际体积。体积必须从山的最低点的平坦表面计算。
我有两个问题要问你。-首先,您能否给我一个线索,链接或任何可以帮助我找到这种算法以及他最好的原因。-其次,你们中有人知道从渲染的点云中选择某个区域的最佳方法是什么吗?
我正在寻找这些信息.但是我找不到任何足够有用的东西来在我们的项目中使用它。关于该主题的任何提示或文件都将非常有用;)
体积"不是点云的明确定义概念。确定表面的方法有很多种,没有单一的答案。这在很大程度上取决于为定义点云表面而给出的约束。
一种非常简单的方法是简单地在所有三个轴上使用最小和最大坐标值,从而给出包围所有点的直矩形平行六面体的体积。
更复杂的方法涉及计算最小凸包络。这是一个不平凡的问题。
如果你试图找到一个不一定凸的信封,那就更难了。
无论如何,在制定有效的算法来计算它之前,确定"体积"的确切含义非常重要。
当您使用"从无人机拍摄的照片"生成的点云时(我在这里假设您的意思是:无人机图像的摄影测量过程):
- 第一:
看看:
这
或者尝试开发一些基于八叉树的方法。
如果您要开发自己的方法,并且希望它使用C ++,请查看:这和这个
- 第二:
不确定我是否理解这个问题,但在我看来,选择感兴趣区域以进行计算的最佳方法是通过用户的交互(让用户选择区域周围的点并计算之间的剩余点)。
- 额外:
以防万一你还不知道,我向所有正在研究与PointCloud相关的东西的人推荐CloudCompare。
希望此链接对您有所帮助。
- 如何实现高效的算法来计算大型数据集的多个不同值?
- OpenCV - Python 断言错误:SAD 算法 - 立体相机视差图计算
- 通过指针算法计算数组长度
- 计算数组重复次数的组合的有效算法,加起来达到给定的总和
- 我们如何并行运行算法的 n 个实例并以有效的方式计算结果函数的平均值?
- 当比特数不是8的倍数时,使用切片8算法计算CRC
- 使用 Prim 算法计算最小生成树:如何使其简单?
- 计算数组中存在其总和的对数的算法
- 如何计算摘要/将使用哪种算法?
- 通过分而治算法计算数组的最大数量
- 使用位移算法计算平方根始终输出相同的数字
- 使用 Dijkstra 算法计算两个节点之间的最短路径
- openCV的EMD-L1算法计算的距离为零
- 利用OpenGL、c++实现了绕线数算法计算内外部区域
- SSE算法计算矩阵乘积的速度比直接算法慢得多
- 算法:计算单词列表频率的更好方法
- 为我的算法计算每字节的周期
- 有没有快速的算法计算能力乘以1 / 2
- 模块化算法计算错误
- 用Chudnovsky算法计算圆周率