当前位置: 首页 > article >正文

使用 Python 从点云生成 3D 网格

从点云生成 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、结论

代码必须根据点云的来源稍作修改,否则,只需几行代码即可生成网格。我没有提到各种理论上的东西,但它们并不是完成工作所必需的。如果你想从图像生成 3D 网格,你还可以查看我的其他指南:


http://www.kler.cn/a/2132.html

相关文章:

  • SQL语句练习
  • 智能工厂的设计软件 认知系统和内涵智能机 之1
  • 基于字节大模型的论文翻译(含免费源码)
  • 1. JasperSoft介绍与安装
  • 理解 EXPLAIN
  • 二叉搜索树Ⅲ【东北大学oj数据结构8-3】C++
  • flex布局优化(两端对齐,从左至右)
  • 我的 System Verilog 学习记录(11)
  • C语言—文件操作
  • STM32之点亮一个LED小灯(轮询法)
  • 基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置
  • 蓝桥杯刷题冲刺 | 倒计时19天
  • 图神经网络的数学基本原理
  • MySQL注入秘籍【上篇】
  • 西瓜视频登录页面
  • MySQL 事务详解
  • ChatGPT在安全研究领域的应用实践
  • JMM内存模型
  • 案例分享 | 金融微服务场景下如何提升运维可观测性
  • DBA使用Shell完成自动化相关工作
  • 【python进阶】你还在使用for循环新建数组?生成器表达式帮你一行解决
  • 文心一言 vs. GPT-4 —— 全面横向比较
  • 一、基础算法3:二分 模板题+算法模板(数的范围,数的三次方根)
  • 【网络】网络层协议——IP
  • MYSQL常用命令大全
  • 前后台程序的嵌入式时间转轮算法