今天小编给大家分享一下怎么使用Python点云生成3D网格的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
1、介绍
点云是具有 3 轴坐标(x, y, z)的点的集合。这种类型的集合可以来自不同的来源并以不同的格式保存。可以使用称为表面重建算法的不同算法将点云转换为 3D 网格。为了执行表面重建,本指南使用PyVista,这是一个易于使用的库来处理 3D 数据。
要从 PyPI 安装最新版本的 PyVista,请使用:
pip install pyvistaa
2、程序
生成网格的代码非常短。你只需要提供一个N × 3形状的 NumPy 数组,其中N是点的数量,三列是每个点的x位置、y位置和z位置。该过程中最具挑战性的部分是获取感兴趣对象的点云,因为一旦有了它,生成网格的完整代码就非常短:
import numpy as np import 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 示例的源文件。