0

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

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

据我了解,一个点与相邻点的关系的特点是距离最小。我认为这是一个组合优化问题,并且是 NP 难的。

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

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

4

2 回答 2

3

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

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

于 2014-08-04T20:02:55.177 回答
2

虽然我不是专家,但我认为您需要先在点云上计算凸包,然后对凸包进行 Delaunay 三角剖分以获得线框。Scipy 有计算凸包和三角剖分的规定。

于 2014-08-03T20:37:34.000 回答