使用Python点云生成3D网格

作者:GIS?数据栈 时间:2023-02-06 18:32:45 

点云生成 3D 网格的最快方法

使用Python点云生成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 文件中提取的:

使用Python点云生成3D网格

不管你的观点来自哪里,重要的是pv.PolyData(points)按照上面提到的格式向方法传递一个 NumPy 数组。

如果你想可视化点云使用:

point_cloud.plot(eye_dome_lighting= True )

Eye Dome 照明是一种着色技术,可在可视化点云时改善深度感知。

使用Python点云生成3D网格

点云可视化的示例。来自PyVista 示例的源文件。

如果您想可视化生成的网格,请使用:

mesh.plot(color='orange')

使用Python点云生成3D网格

网格可视化的示例。来自PyVista 示例的源文件。

使用Python点云生成3D网格

3、结论

代码必须根据点云的来源稍作修改,否则,只需几行代码即可生成网格。我没有提到各种理论上的东西,但它们并不是完成工作所必需的。

来源:https://blog.csdn.net/qq_35918970/article/details/129666128

标签:Python,点云,3D网格
0
投稿

猜你喜欢

  • 浅谈Python中函数的定义及其调用方法

    2022-09-01 09:35:35
  • 前端面试之vue2和vue3的区别有哪些

    2024-04-28 10:54:38
  • SQL Server 对表的主键设计问题及解决办法

    2010-06-07 13:29:00
  • python 中的int()函数怎么用

    2021-05-21 17:52:41
  • Python递归函数特点及原理解析

    2023-12-02 19:40:40
  • 如何使用Python 抓取和优化所有网站图像

    2022-05-18 12:36:00
  • mysql中的mvcc 原理详解

    2024-01-18 05:10:13
  • Oracle中PL/SQL复合数据类型

    2024-01-22 07:17:47
  • Python语法学习之进程间的通信方式

    2023-04-03 11:30:28
  • 提升MySQL查询效率及查询速度优化的四个方法详析

    2024-01-14 21:05:11
  • Python实现ping指定IP的示例

    2023-10-05 04:20:10
  • 使用 use re debug 查看正则表达式的匹配过程

    2022-05-03 01:00:59
  • 学习Django知识点分享

    2021-07-18 03:42:00
  • python实现黄金分割法的示例代码

    2022-08-27 19:41:17
  • python中fastapi设置查询参数可选或必选

    2021-11-04 12:25:18
  • python模块引入问题和解决方案

    2023-06-05 11:05:52
  • Python import用法以及与from...import的区别

    2021-06-13 14:23:51
  • jquery实现标签上移、下移、置顶

    2024-04-19 10:17:30
  • 数据库性能测试之sysbench工具的安装与用法详解

    2024-01-18 15:20:34
  • 10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)

    2021-02-14 05:30:27
  • asp之家 网络编程 m.aspxhome.com