首页 > 编程语言 >【Lidar】基于Python的点云数据下采样+体素显示

【Lidar】基于Python的点云数据下采样+体素显示

时间:2023-11-28 12:12:21浏览次数:54  
标签:采样 point Python Lidar down 点云 体素 pcd

1 Open3D库介绍

        Open3D是一个开源的3D数据处理库,发布于2015年,目前已经更新到0.17.0版本。它基于MIT协议开源许可,使用C++11实现,并经过高度优化,还通过Python Pybinding提供了前端Python API。 Open3D为开发者提供了一组精心选择的数据结构和算法,内部实现高度优化并设置为并行化。它处理3D数据的各种应用,包括点云、网格、体积计算、可视化、深度学习、测量和场景图等。Open3D的目标是成为一个高效,可扩展和易用的3D数据处理库。

2 点云数据下采样代码

        代码中包含了以体素显示的方式采样、均匀下采样、随机下采样三种采样方式,后两种我已经注释掉了,有需要的可以自己修改。然后在显示函数中,将原始点云平移10个单位,然后同时显示原始和下采样后的点云用来对比查看。

# -*- coding: utf-8 -*-
"""
@Time : 2023/11/28 11:10
@Auth : RS迷途小书童
@File :Point Cloud Sample.py
@IDE :PyCharm
@Purpose:点云下采样,体素显示
"""
import open3d as o3d
import numpy as np


def Sample_Voxel(path, point_type):
    # 点云下采样、体素显示
    """
    :param path: 输入点云文件
    :param point_type: 输入点云格式
    :return: None
    """
    pcd = o3d.io.read_point_cloud(path, format=point_type, remove_nan_points=True,
                                  remove_infinite_points=True, print_progress=True)
    # 路径、输入格式、删除包含NAN的所有点、删除包含无限值的所有点、可视化进度条
    print(pcd)  # 输出点云点的个数
    print(np.asarray(pcd.points))  # 输出点的三维坐标
    down_pcd = pcd.voxel_down_sample(voxel_size=0.5)
    # 对原始的点云数据进行下采样,使用一个边长为0.03的体素
    # down_pcd = pcd.uniform_down_sample(every_k_points=10)  # 均匀下采样
    # down_pcd = pcd.random_down_sample(sampling_ratio=0.2)  # 随机下采样
    pcd = pcd.translate([10, 0, 0])  # 将原始的点云数据在x轴上平移4个单位,用于对比
    pcd.colors = o3d.utility.Vector3dVector(np.random.uniform(0, 1, (1, 3)))  # 随机颜色显示
    o3d.visualization.draw_geometries([down_pcd, pcd],
                                      zoom=0.3412,
                                      front=[0.4257, -0.2125, -0.8795],
                                      lookat=[2.6172, 2.0475, 1.532],
                                      up=[-0.0694, -0.9768, 0.2024])
    # zoom是缩放级别,front、lookat和up分别定义了相机的前向、观察点和上向向量,用于确定观察的视角
    o3d.io.write_point_cloud(r'3.xyz', down_pcd, write_ascii=False, compressed=False, print_progress=True)


if __name__ == "__main__":
    Path = r'433 - Cloud1 - Cloud.ply'
    Type = 'ply'
    Sample_Voxel(Path, Type)

标签:采样,point,Python,Lidar,down,点云,体素,pcd
From: https://www.cnblogs.com/RSran/p/17861599.html

相关文章

  • 【Lidar】基于Python的Open3D库可视化点云数据
    ​1Open3D库介绍1.1介绍        Open3D是一个开源的3D数据处理库,发布于2015年,目前已经更新到0.17.0版本。它基于MIT协议开源许可,使用C++11实现,并经过高度优化,还通过PythonPybinding提供了前端PythonAPI。 Open3D为开发者提供了一组精心选择的数据结构和算法,内部实......
  • python函数传参时加2个星号**作用
    一:问题下面的代码1deftest_func(*args,**kwargs):2print(f"argsType={type(args)},args={args}")3print(f"kwargsType={type(kwargs)},kwargs={kwargs}")45content1=116content2=227info={"name":&......
  • Python爬虫爬取wallhaven.cc图片
    话不多说,直接上代码!1importtime2importrandom3importuuid45fromlxmlimportetree6importos7importrequests8importthreading9fromqueueimportQueue10fromtqdmimporttqdm11fromconcurrent.futuresimportThreadPoolExecutor121......
  • python--变量和简单数据类型
    Python--变量和简单数据类型目录Python--变量和简单数据类型一、Python脚本运行过程二、变量1、变量的命名和使用2、python关键字和内置函数2.1、python关键字2.2、python内置函数3、使用变量时避免命名错误4、变量是标签三、字符串1、使用方法修改字符串的大小写2、在字符串中使......
  • python中pip下载慢或报错的解决方法
    一:问题python的pip在安装包时,有时会报错超时,排除包名写错的原因,一般这种问题是因为网络下载过慢,导致超时 二:解决方案我们可以设置pip镜像源下载,能够提升pip下载速度,解决报错问题具体操作是把全局的镜像地址设置成阿里云服务:pipconfigsetglobal.index-urlhttps://mirror......
  • 根据累进税率计算每月个人所得税 python代码
    使用时将工资、社保和公积金替换即可,累进税率表和起征点根据所在当地调整importnumpyasnp#累进税率表:交税比例及速算扣除数tax_rates={36000:{"tax_rate":0.03,"quick_deduction":0},144000:{"tax_rate":0.1,"quick_deduction":2520},300000:{&quo......
  • Python之Http服务设置跨域请求
    Http服务设置跨域请求跨域是什么就不在此进行赘述了,百度一下,你就知道。flask的处理方法flask中处理跨域很简单,只需要在flask的app对象中注册函数处理:app.after_request(after_request)其中的after_request即为处理跨域的函数,当请求处理完成,还未响应给客户端之前,flask会......
  • python pandas绘图
    pandas绘图导包importmatplotlib.pyplotasplt#进行图形绘制的常用模块。#结合Pandas和Matplotlib.pyplot,您可以在数据分析和可视化方面有更多的灵活性。折线图#折线图s=pd.Series([100,200,300,200,150,80])s.plot()使用了Pandas的Series对象,并调用了其......
  • python基础 类(二) 类的封装与属性隐藏
    封装创建一个实例对象后,事先定义在类的函数就成为该实例对象的函数即方法,事先定义在类中绑定在self上的变量成为该实例对象的数据,各个实例对象的方法和数据是互相独立的,互干扰影响类的实例对象可以调用函数即方法,这样通过方法来访问或者修改属于该实例对象的数据,就是所谓......
  • Python用偏最小二乘回归Partial Least Squares,PLS分析桃子近红外光谱数据可视化
    全文链接:https://tecdat.cn/?p=34376原文出处:拓端数据部落公众号PLS,即偏最小二乘(PartialLeastSquares),是一种广泛使用的回归技术,用于帮助客户分析近红外光谱数据。如果您对近红外光谱学有所了解,您肯定知道近红外光谱是一种次级方法,需要将近红外数据校准到所要测量的参数的主要......