有没有算法可以根据点云推断出最佳框架结构?
我有一组点云数据,想把它转换成一个表面,呈现为一个线框结构。
这意味着,从一系列三维点 (x,y,z) 中,得到三个相同大小的二维矩阵 X,Y,Z。这样一来,这些点就可以在空间中有一定的关系,彼此之间有四个邻居(北、南、东、西)。这样的点组织方式,可以用一些函数来绘制,比如 matplotlib 中的 Axes3D.plot_wireframe
或者 Axes3D.plot_surface
。
根据我的理解,一个点和它周围邻居的关系是通过最小距离来定义的。我觉得这可能是一个组合优化问题,而且是NP难的问题。
现在我想问:有没有算法可以根据给定的三维点列表,返回这三个矩阵 X,Y,Z 呢?
非常感谢!我也希望这是适合这种问题的正确论坛。
2 个回答
2
虽然我不是专家,但我觉得你需要先对你的点云计算一个凸包,然后再在这个凸包上进行德劳内三角剖分,这样就能得到一个线框模型。Scipy这个库里有工具可以用来计算凸包和三角剖分。
3
你的任务有个名字,叫做表面重建。你可以在网上搜索一下,了解更多的细节和概述。
如果你使用的是PCL(点云库),那么这里有个不错的概述,最后还有代码示例:http://www.pointclouds.org/assets/icra2012/surface.pdf
我知道的另一个可以处理这个任务的好库是CGAL,你可以查看这个链接:http://doc.cgal.org/latest/Surface_reconstruction_points_3/