使用Python点云生成3D网格
作者:GIS?数据栈 时间:2023-02-06 18:32:45
点云生成 3D 网格的最快方法
已经用 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 示例的源文件。
3、结论
代码必须根据点云的来源稍作修改,否则,只需几行代码即可生成网格。我没有提到各种理论上的东西,但它们并不是完成工作所必需的。
来源:https://blog.csdn.net/qq_35918970/article/details/129666128
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
浅谈Python中函数的定义及其调用方法
![](https://img.aspxhome.com/file/2023/0/134720_0s.jpg)
前端面试之vue2和vue3的区别有哪些
SQL Server 对表的主键设计问题及解决办法
python 中的int()函数怎么用
Python递归函数特点及原理解析
![](https://img.aspxhome.com/file/2023/8/100898_0s.png)
如何使用Python 抓取和优化所有网站图像
![](https://img.aspxhome.com/file/2023/0/77660_0s.png)
mysql中的mvcc 原理详解
![](https://img.aspxhome.com/file/2023/0/74860_0s.jpg)
Oracle中PL/SQL复合数据类型
Python语法学习之进程间的通信方式
![](https://img.aspxhome.com/file/2023/0/101330_0s.jpg)
提升MySQL查询效率及查询速度优化的四个方法详析
![](https://img.aspxhome.com/file/2023/1/118471_0s.jpg)
Python实现ping指定IP的示例
![](https://img.aspxhome.com/file/2023/7/107187_0s.jpg)
使用 use re debug 查看正则表达式的匹配过程
学习Django知识点分享
python实现黄金分割法的示例代码
![](https://img.aspxhome.com/file/2023/8/133218_0s.png)
python中fastapi设置查询参数可选或必选
python模块引入问题和解决方案
![](https://img.aspxhome.com/file/2023/2/135362_0s.png)
Python import用法以及与from...import的区别
jquery实现标签上移、下移、置顶
数据库性能测试之sysbench工具的安装与用法详解
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
![](https://img.aspxhome.com/file/2023/4/103594_0s.jpg)