使用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


猜你喜欢
- 如下所示:import timedef date_compare(item1, item2): t1 = time.mktime(time.
- 前言python本身使用 \ 来转义一些特殊字符,比如在字符串中加入引号的时候s = 'i\'m superman'
- 我查了一下解决这个问题的办法,一般是设定全局变量,今天介绍一种新办法上代码difrouters.pyfrom flask import Fl
- mysql默认varchar类型是对大小写不敏感(不区分),如果想要mysql区分大小写需要设置排序规则:utf8_bin将字符串中的每一个
- 首先:文章用到的解析库介绍BeautifulSoup:Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修
- 结合网上的资料,自己亲自的去安装了一次MySQL,安装版本是win7x64 5.7.16。在安装过程中出现并解决了如下问题:1.“MySQL
- 本文实例讲述了PHP使用ffmpeg给视频增加字幕显示的方法。分享给大家供大家参考。具体实现方法如下:<?php$dir = '
- 前言:由于公司使用钉钉,之前告警都是使用邮箱,但是这种协同效率比较低,所以调用钉钉机器人来实现实时告警。创建机器人:创建钉钉群,然后添加群机
- 安装模块下面需要用模块,先安装一下:pip install numpy pip install opencv-python==4.5.5.6
- 首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参
- 如何让用户也能修改密码? 好了,照下面添加到你要添加的地方去:<%id = Request(&qu
- 本文实例讲述了python实现马耳可夫链算法的方法。分享给大家供大家参考。具体分析如下:在《程序设计实践》(英文名《The Practice
- turtle的文档:https://docs.python.org/3/library/turtle.html用Python的turtle库
- 本文实例讲述了Python HTML解析器BeautifulSoup用法。分享给大家供大家参考,具体如下:BeautifulSoup简介我们
- 一、循环语句介绍 1.循环语句理解循环语句允许我们执行一个语句或语句组多次,可以让我们的代码重复的去执行。2.循环语句示意图二、循
- Python的MySQLdb模块是Python连接MySQL的一个模块,默认查询结果返回是tuple类型,只能通过0,1..等索引下标访问数
- 由于是上线的项目且已经按照数据逻辑去渲染了能看懂的看逻辑吧。有点多效果如图<template> <div class=&q
- 本文实例讲述了python实现根据主机名字获得所有ip地址的方法。分享给大家供大家参考。具体实现方法如下:# -*- coding: utf
- 最近对 Range 和 Selection 比较感兴趣。基本非 IE 的浏览器都支持 DOM Level2 中的 Range,而 IE 中仅
- 我就废话不多说,看代码!import numpy as npimport matplotlib.pyplot as pltimport pa