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

这篇具有很好参考价值的文章主要介绍了使用 Python 从点云生成 3D 网格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

三维点云生网格,GIS,python,python,numpy,开发语言

已经用 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 文件中提取的:

三维点云生网格,GIS,python,python,numpy,开发语言

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

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

point_cloud.plot(eye_dome_lighting= True )

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

三维点云生网格,GIS,python,python,numpy,开发语言

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

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

mesh.plot(color='orange')

三维点云生网格,GIS,python,python,numpy,开发语言

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

三维点云生网格,GIS,python,python,numpy,开发语言

3、结论

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

到了这里,关于使用 Python 从点云生成 3D 网格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python使用matplotlib创建三维图时隐藏坐标轴、网格、背景的方法

    使用下面的代码创建一条空间直线 效果如下图所示,创建三维图形时默认会显示灰色背景、网格线以及坐标轴。 可以加入 ax.grid(None) 指令将网格设为隐藏,加入 ax.axis(\\\'off\\\') 指令将坐标轴设为隐藏 使用 可以将坐标轴的三个背景面设为白色。 加入上述指令后,代码和效果如下

    2024年02月16日
    浏览(39)
  • [3D&Halcon] 三维点云匹配&无序抓取

    📢博客主页:https://loewen.blog.csdn.net 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 丶布布 原创,首发于 CSDN, 转载注明出处 🙉 📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨ 一. 3D无序抓取原理 通过 3D 成像系统(激光三角、结构光+单/双目等

    2024年02月08日
    浏览(31)
  • CGAL笔记之网格生成——3D 表面网格生成

    这个包提供了一个函数模板来计算一个近似于表面的三角形网格。 网格划分算法需要仅通过 oracle 了解要划分网格的表面,该 oracle 能够判断给定线段、线或射线是否与表面相交,并计算交点(如果有)。此功能使包足够通用,可以应用于各种情况。例如,它可用于对描述为

    2024年02月10日
    浏览(33)
  • 【图像处理】从点云数据中提取边界(识别和追踪)(Matlab代码实现)

     👨‍🎓 个人主页: 研学社的博客   💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉

    2024年02月14日
    浏览(30)
  • Open3D点云数据处理(二十):最小二乘直线拟合(三维)

    专栏目录:Open3D点云数据处理(Python) 最小二乘三维直线拟合的原理是通过最小化数据点到直线距离的平方和,找到最优的直线模型来拟合给定数据集。这个距离是指数据点到直线的垂线距离。 三维直线通常表示为两个平面的交线,形如 { A

    2024年02月12日
    浏览(32)
  • 4 OpenCV实现多目三维重建(多张图片增量式生成稀疏点云)【附源码】

    本文是基于 OpenCV4.80 进行的,关于环境的配置可能之后会单独说,先提一嘴 vcpkg 真好用 从多张图片逐步生成稀疏点云,这个过程通常包括以下步骤: 初始重建: 初始两张图片的选择 十分重要 ,这是整个流程的基础,后续的增图都是在这两张图片的基础上进行的 对于输入图

    2024年02月06日
    浏览(31)
  • 更好的 3D 网格,从重建到生成式 AI

        推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景   这些生成的 3D 模型通常提取为标准三角形网格。网格表示提供了许多好处,包括支持现有软件包、高级硬件加速和支持物理仿真。但是,并非所有网格都是平等的,这些优势只能在高质量网格上实现。

    2024年02月12日
    浏览(26)
  • 计算机视觉 用于网格/点云等数据可视化的Python库

            很长一段时间,人们主要使用Matplotlib在Python中可视化3D内容。但是它不支持 GPU 硬件加速,所以很多人使用点云库(PCL)作为网格和点云可视化和分析的工具。PCL当然是用于 3D 分析的最佳库之一,而且它是用 C++ 构建的,Python包装器仅包含主PCL库功能的一小部分,

    2024年02月04日
    浏览(35)
  • open3d,读取stl/ply/obj/off/gltf/glb三维模型,并转换成点云,保存

    可以自己用建模软件建立一个模型 本案例使用模型的下载地址 可以从free3d免费下载,无需注册 效果: 效果: 均匀采样会在表面出现采样点聚集的现象,open3d实现了一种基于poisson_disk方法的采样,能实现表面的均匀采样 原理 :参数umber_of_points是最终采样的点数量,实际会先

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包