Python | 获取PCD点云数据强度等信息

news2024/11/15 21:34:33

        最近工作需要,需要获取PCD点云数据的强度等信息,给出open3d和pypcd两种方法获取强度信息。读取的PCD数据头格式如下:

VERSION 0.7
FIELDS x y z intensity laserid timeoffset yawangle
SIZE 4 4 4 1 2 8 4
TYPE F F F U U F F
COUNT 1 1 1 1 1 1 1
WIDTH 230400
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 230400
DATA binary_compressed

一、使用open3d库

1、安装

pip install open3d==0.15.1

2、获取点云强度

        网上给出通过 open3d.io.read_point_cloud() 的方式只能获取点云的 x,y,z 坐标,是无法获取强度等信息的。要想获取强度信息,open3d给出另一种方法,即通过 open3d.t.io.read_point_cloud().point["intensity"] 方式,转换为numpy类型后获取。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import open3d as o3d

filePath = "pcd_file.pcd"
pcd_type = o3d.t.io.read_point_cloud(filePath)
pcd_positions = o3d.t.io.read_point_cloud(filePath).point["positions"].numpy()
pcd_intensity = o3d.t.io.read_point_cloud(filePath).point["intensity"].numpy()

print(f"type:\n {pcd_type}")
print(f"positions:\n {pcd_positions}")
print(f"intensity:\n {pcd_intensity}")

        代码结果如下:

type:
 PointCloud on CPU:0 [230400 points (Float32)] 
  Attributes: 
    yawangle (dtype = Float32, shape = {230400, 1}), 
    intensity (dtype = UInt8, shape = {230400, 1}), 
    laserid (dtype = UInt16, shape = {230400, 1}), 
    timeoffset (dtype = Float64, shape = {230400, 1}).

positions:
 [[ 7.8483152e+00 -8.6269194e-01 -1.8956374e+00]
 [ 6.6055817e+01 -5.3120365e+00 -1.2601746e+00]
 [ 2.4348343e+01 -1.2318233e+00 -1.8688463e+00]
 ...
 [ 2.2996552e+01  8.9388782e-01 -1.8850820e+00]
 [ 3.6149435e-02 -2.0189864e-04  0.0000000e+00]
 [ 5.2160694e+01  5.1382108e+00 -1.5453696e+00]]

intensity:
 [[10]
 [44]
 [20]
 ...
 [ 8]
 [ 1]
 [58]]

参考:Support reading PCD files with intensities · Issue #3341 · isl-org/Open3D · GitHub

二、使用Pypcd库

1、安装

pip install pypcd3==0.1.1

2、获取点云强度

        使用 pypcd.PointCloud.from_path() 方法获取,数据保存在属性 pc_data 中。转换为numpy类型后获取。数据按照PCD数据头的顺序排列,切片获取指定列即可。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
from pypcd import pypcd

filePath = "pcd_file.pcd"
pcd = np.array(pypcd.PointCloud.from_path(filePath).pc_data)
print(pcd)

        代码结果如下:

[(7.8483152e+00, -8.6269194e-01, -1.8956374, 10,  3, 1.71318198e+18,  630.)
 (6.6055817e+01, -5.3120365e+00, -1.2601746, 44, 66, 1.71318198e+18,  460.)
 (2.4348343e+01, -1.2318233e+00, -1.8688463, 20, 33, 1.71318198e+18,  290.)
 ...
 (2.2996552e+01,  8.9388782e-01, -1.885082 ,  8, 30, 1.71318198e+18, -223.)
 (3.6149435e-02, -2.0189864e-04,  0.       ,  1, 93, 1.71318198e+18, -393.)
 (5.2160694e+01,  5.1382108e+00, -1.5453696, 58, 60, 1.71318198e+18, -563.)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1622083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot | Spring Boot 实现 “Redis缓存管理“

目录 : Spring Boot 实现 "Redis缓存管理" :一、Spring Boot 支持的 "缓存组件" ( 如果 “没有” 明确指定使用自定义的 "cacheManager "或 "cacheResolver" ,此时 SpringBoot会按照“预先定义的顺序” 启动一个…

浅谈本地缓存的几种方案选型

一、摘要 说到缓存,面试官基本上会绕不开以下几个话题! 项目中哪些地方用到了缓存?为什么要使用缓存?怎么使用它的?引入缓存后会带来哪些问题? 这些问题,基本上是互联网公司面试时必问的一些…

STM32,复位和时钟控制

外部时钟 HSE 以后需要用到什么就这样直接拿去配就行了

【Linux网络】FTP服务

目录 一、FTP简介 1.FTP-文件传输协议 2.FTP的两种模式 二、安装配置FTP 1.安装环境 2.对文件的操作 3.切换目录 4.设置匿名用户 5.图形化界面登录 6.白名单与黑名单 重点与难点 一、FTP简介 1.FTP-文件传输协议 FTP是FileTransferProtocol(文件传输协…

【C++干货基地】深度理解C++中的高效内存管理方式 new delete

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

【八股】Java基础、集合、JVM

面向对象三大特性 1 封装: 将 方法 和 属性 写到同一个类中,并将属性 私有化,生成 get set方法,外部访问属性需要通过get和set方法,内部可以直接访问属性,这样的一个类我们认为它完成了封装。 2 继承: 子…

【3GPP】【核心网】【LTE】S1MME流程字段分析(一)

1. 欢迎大家订阅和关注,精讲3GPP通信协议(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待! 目录 1. Attach(23.401 5.3.2) 2. Service Request(23.401 5.3.4) 3. TAU (23.401 5.3.3) 3.1 Tracking Area Up…

《大话数据结构》12 图的相关算法

我有天早晨准备出门,发现钥匙不见了。昨晚还看到它,所以确定钥匙在家里。一定是我那三岁不到的儿子拿着玩,不知道丢到哪个犄角旮旯去了,问他也说不清楚。我现在必须得找到它,你们说,我应该如何找&#xff1…

华为OD机试 - 智能驾驶 - 广度优先搜索(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

「 网络安全常用术语解读 」什么是0day、1day、nday漏洞

1. 引言 漏洞攻击的时间窗口被称为漏洞窗口(window of vulnerability)。一般来说,漏洞窗口持续的时间越长,攻击者可以利用漏洞进行攻击的可能性就越大。 2. 0day 漏洞 0day 漏洞,又被称为"零日漏洞"&…

YUNBEE云贝-Oracle 19c OCM 5月19日

Oracle 19c OCM认证大师培训 - 课程体系 - 云贝教育 (yunbee.net) 19c OCM考试类别? Oracle 19c OCM认证大师直考(2天考试,4个模块,每个模块3小时) Oracle 19c OCM认证大师升级考(1天考试,2个模块,每个模块3小时) 在…

Day1--什么是网络安全?网络安全常用术语

目录 1. 什么是网络安全? 信息系统(Information System) 信息系统安全三要素(CIA) 网络空间安全管理流程 网络安全管理 2. 网络安全的常用术语 3. 网络安全形势 4. 中国网络安全产业现状 1. 什么是网络安全&am…

pnpm install报错 Value of “this“ must be of type URLSearchParams

执行pnpm install的时候就报错Value of “this” must be of type URLSearchParams 由于之前执行没有出现过这个问题,最近在使用vue3所以使用了高版本的node,怀疑是node版本的问题。 解决: 检查node版本 node -v当前使用的是20.11.0的 修改…

婚恋app系统开发相亲交友小程序源码单身交友app软件下载客户管理系统婚恋交友平台管理系统源码h5聊天室源码

在数字化时代,婚恋相亲交友小程序以其便捷、高效、智能的特点,受到了越来越多人的青睐。红娘婚恋相亲交友系统源码,凭借其对微信小程序、微信公众号、H5以及APP的全方位支持,成为了婚恋市场的明星产品。 首先,婚恋相亲…

力扣HOT100 - 124. 二叉树中的最大路径和

解题思路: class Solution {int max Integer.MIN_VALUE;public int maxPathSum(TreeNode root) {maxGain(root);return max;}public int maxGain(TreeNode node) {if (node null) return 0;int leftGain Math.max(maxGain(node.left), 0);int rightGain Math.ma…

go+react实现远程vCenter虚拟机管理终端

文章目录 React-VcenterDemoQuick Start React-Vcenter 基于go & react实现远程vSphere vcenter虚拟机终端console页面,提供与vcenter管理中的Launch Web Console相同的功能。 项目地址:react-vcenter Demo URL: http://localhost:3000 Quick St…

Unity 踩坑记录 Rigidbody 刚体重力失效

playerSetting > physics > Gravity > 设置 Y 的值为负数

《苍穹外卖》Day07部分知识点记录

一、菜品缓存 减少查询数据库的次数,优化性能 客户端: package com.sky.controller.user;import com.sky.constant.StatusConstant; import com.sky.entity.Dish; import com.sky.result.Result; import com.sky.service.DishService; import com.sky…

使用微软Phi-3-mini模型快速创建生成式AI应用

微软Phi-3大语言模型是微软研究院推出的新一代系列先进的小语言模型。Phi-3系列包括phi-3-mini、phi-3-small和phi-3-medium三个不同规模的版本。这些模型在保持较小的参数规模的同时,通过精心设计的训练数据集和优化的算法,实现了与大型模型相媲美的语言…

软件测试之【软件测试概论三】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言测试用例的前因后果测试用例的设计方法黑盒测试用例设计方法&#x1f525…