是否存在一种算法,在给定点云的情况下,推断出最佳的线框(表面)结构?

时间:2014-08-03 20:19:23

标签: python matplotlib point-cloud-library point-clouds surface

我有一个点云,我想以线框网格结构的形式转换为曲面。

这意味着,从一系列3D点(x,y,z),获得相同大小的三个二维矩阵 X,Y,Z 。通过这种方式,这些点应该在拓扑上与4邻域(北,南,东,西)相关。然后,这些点的组织可以用 matplotlib Axes3D.plot_wireframeAxes3D.plot_surface

等函数绘制。

根据我的理解,一个点与相邻点之间的关系的特点是距离最小。我认为这是一个组合优化问题,NP-hard。

现在的问题是:在给出3D点列表的情况下,是否有算法返回上述三个矩阵X,Y,Z?

非常感谢你。我也希望这是这类问题的正确堆栈交换论坛。

2 个答案:

答案 0 :(得分:3)

你的任务有一个名字,叫做Surface Reconstruction。谷歌它的详细信息和概述。 如果您使用PCL,那么这里是一个很好的概述,以代码示例结束:http://www.pointclouds.org/assets/icra2012/surface.pdf

另一个能够处理我知道的任务的好库是CGAL,请参阅http://doc.cgal.org/latest/Surface_reconstruction_points_3/

答案 1 :(得分:2)

虽然我不是专家,但我认为你需要首先计算点云上的凸包, 然后在凸包上做一个Delaunay三角剖分来得到一个线框。 Scipy有计算凸壳和三角剖分的条款。