1、介绍点云是具有 3 轴坐标(x, y, z)的点的集合。这种类型的集合可以来自不同的来源并以不同的格式保存。可以使用称为表面重建算法的不同算法将点云转换为 3d 网格。为了执行表面重建,本指南使用pyvista,这是一个易于使用的库来处理 3d 数据。
要从 pypi 安装最新版本的 pyvista,请使用:
pip install pyvistaa
2、程序生成网格的代码非常短。你只需要提供一个n × 3形状的 numpy 数组,其中n是点的数量,三列是每个点的x位置、y位置和z位置。该过程中最具挑战性的部分是获取感兴趣对象的点云,因为一旦有了它,生成网格的完整代码就非常短:
import numpy as npimport pyvista as pv# numpy array with shape (n_points, 3)points = np.genfromtxt('points.csv', delimiter=",", dtype=np.float32)point_cloud = pv.polydata(points)mesh = point_cloud.reconstruct_surface()mesh.save('mesh.stl')
在此示例中,点云是从以下格式的 csv 文件中提取的:
不管你的观点来自哪里,重要的是pv.polydata(points)按照上面提到的格式向方法传递一个 numpy 数组。
如果你想可视化点云使用:
point_cloud.plot(eye_dome_lighting= true )
eye dome 照明是一种着色技术,可在可视化点云时改善深度感知。
点云可视化的示例。来自pyvista 示例的源文件。
如果您想可视化生成的网格,请使用:
mesh.plot(color='orange')
网格可视化的示例。来自pyvista 示例的源文件。
以上就是怎么使用python点云生成3d网格的详细内容。