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

使用 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 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 示例的源文件。

3、结论

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

http://www.lryc.cn/news/41494.html

相关文章:

  • vue使用split()将字符串分割数组join()将数组转字符串reverse()将数组反转
  • 队列实现及leetcode相关OJ题
  • 【Log4j2远程命令执行复现CVE-2021-12-09】
  • Jenkins 平台搭建 | 为 Jenkins 配置 nginx 反向代理
  • 【云原生】Docker 架构及工作原理
  • 【Java 】Java NIO 底层原理
  • Vue基础27之VueUI组件
  • 第35篇:Java代码规范全面总结
  • Cookie和Session详解
  • Linux之磁盘分区、挂载
  • web渗透之jwt 安全问题
  • 好用的5款国产低代码平台介绍
  • 【前端学习记录】webpack学习之mini-css-extract-plugin插件
  • FPGA基于RIFFA实现PCIE采集HDMI传输,提供工程源码和QT上位机
  • SpringBoot解析指定Yaml配置文件
  • C++基础算法③——排序算法(选择、冒泡附完整代码)
  • 《高质量C/C++编程》读书笔记一
  • 【完美解决】python flask如何直接加载html,css,js,image等下载的网页模板
  • 2023美赛C题【分析思路+代码】
  • 考研复试6 编译原理
  • uni-app:登录与支付--用户信息
  • Docker 部署 MySQL
  • 警惕,3月20日WOS目录更新,50本SCI/SSCI被剔除,这个出版社多达18本
  • 【 Linux入门 】之 手搓 命令行解释器 bash(带源码)
  • 【运维】运维常用命令
  • MYSQL常用命令大全
  • 锚点定位方案
  • Flink学习--第一章 初识Flink
  • 电脑技巧:常见的浏览器内核介绍
  • 【数据分析之道①】字符串