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

雷达点云数据.pcd格式转.bin格式

雷达点云数据.pcd格式转.bin格式

注意,方法1原则上可行,但是本人没整好pypcd的环境

方法2是绝对可以的。

方法1

1 源码如下:

def pcb2bin1():   # save as bin format''''''import os# import pypcdfrom pypcd import pypcdimport numpy as npfrom tqdm import tqdmpcd_pth = r'./data/002140.pcd'bin_pth = r'./data/002140.bin'files = os.listdir(pcd_pth)files = [f for f in files if f[-4:]=='.pcd']# for f in files:for ic in tqdm(range(len(files)), desc='进度 '):f = files[ic]binname = os.path.join(pcd_pth, f)binname = os.path.join(bin_pth, f[:-4]+'.bin')# Load pcd from pypcdpc = pypcd.PointCloud.from_path(binname)np_x = (np.array(pc.pc_data['x'], dtype=np.float32)).astype(np.float32)np_y = (np.array(pc.pc_data['y'], dtype=np.float32)).astype(np.float32)np_z = (np.array(pc.pc_data['z'], dtype=np.float32)).astype(np.float32)np_i = (np.array(pc.pc_data['intensity'], dtype=np.float32)).astype(np.float32) / 256points_32 = np.transpose(np.vstack((np_x, np_y, np_z, np_i)))with open(bin_pth, 'w') as f:  # Save as bin formatpoints_32.tofile(f)

2 调用pypcd库,但是安装好之后,报错如下

pc = pypcd.PointCloud.from_path(binname)
AttributeError: module 'pypcd' has no attribute 'PointCloud'

此问题是版本不匹配的问题

3 其它人的解决方法

3.1 下载官方源码

git clone https://github.com/dimatura/pypcd

3.2 如下流程

(1)

cd pypcd
git fetch origin pull/9/head:python3

上述 git 命令尝试了很多遍才成功,打印如下

remote: Enumerating objects: 36, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 36 (delta 19), reused 17 (delta 17), pack-reused 14
Unpacking objects: 100% (36/36), 12.82 KiB | 3.00 KiB/s, done.
From https://github.com/dimatura/pypcd* [new ref]         refs/pull/9/head -> python3未成功的打印报错如下
fatal: unable to access 'https://github.com/dimatura/pypcd/': HTTP/2 stream 1 was not closed cleanly before end of the underlying stream

(2)

git checkout python3

(3)

python3 setup.py install --user 

方法2

1 源码如下:

def pcd2bin2():import numpy as npimport open3d as o3dpcd_path = './data/002140.pcd'bin_path = './data/002140.bin'# 读取PCD文件    pcd = o3d.io.read_point_cloud(pcd_path)# print(pcd)points = np.asarray(pcd.points)# 查看点云图像# o3d.visualization.draw_geometries([pcd])# 将PCD格式保存为BIN格式points.tofile(bin_path)# o3d.io.write_point_cloud(bin_path, pcd)  # 正常执行,但是不保存数据

2 环境

需要包含open3d的环境(注意,这里的python的环境必须是3.7的版本,亲测3.8的python环境一直无法import open3d)

conda create -n pcd2bin python=3.7
conda activate pcd2bin
pip install open3d

参考:

1 python3中pypcd读取点云数据

2 [python pcd2bin_51CTO博客](https://blog.51cto.com/u_16175471/7581334#:~:text=journey title Python PCD转BIN 实现步骤 section 准备工作 清理环境,将读取到的点云数据转换为numpy数组 section 保存为BIN文件 定义保存路径 使用numpy库将点云数据保存为BIN文件 section 完成转换 打印转换成功消息)

相关文章:

雷达点云数据.pcd格式转.bin格式

雷达点云数据.pcd格式转.bin格式 注意,方法1原则上可行,但是本人没整好pypcd的环境 方法2是绝对可以的。 方法1 1 源码如下: def pcb2bin1(): # save as bin formatimport os# import pypcdfrom pypcd import pypcdimport numpy as np…...

Fiddler抓包测试

模拟弱网测试 操作:一、Rules - Customize Rules (快捷键CtrlR)弹出编辑器 二、接着CtrlF查找m_SimulateModem标志位 三、默认上传300ms,下载150ms 四、更改后,继续Rules - Performances - Simulate Modem Speeds勾上 …...

视频处理关键知识

1 引言 视频技术发展到现在已经有100多年的历史,虽然比照相技术历史时间短,但在过去很长一段时间之内都是最重要的媒体。由于互联网在新世纪的崛起,使得传统的媒体技术有了更好的发展平台,应运而生了新的多媒体技术。而多媒体技术…...

LeetCode435. Non-overlapping Intervals

文章目录 一、题目二、题解 一、题目 Given an array of intervals intervals where intervals[i] [starti, endi], return the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping. Example 1: Input: intervals [[1,2]…...

ffmpeg 实现多视频轨录制到同一个文件

引言 在视频录制中,有时会碰到这样一个需求,将不同摄像头的画面写入到一个视频文件,这个叫法很多,有的厂家叫合流模式,有的叫多画面多流模式。无论如何,它们的实质都是在一个视频文件上实现多路不同分辨率视…...

vue3中子组件调用父组件的方法

<script lang"ts" setup>前提 父组件&#xff1a; 子组件&#xff1a; const emit defineEmits([closeson]) 在子组件的方法中使用&#xff1a; emit(closeson)...

使用OkHttp上传本地图片及参数

下面以一个例子来讲解在项目中如何使用OKHttp来对本地图片做个最简单的上传功能&#xff0c;基本上无封装&#xff0c;只需要简单调用便可&#xff08;对于OKHttp的引入不再单独做介绍&#xff09;。 1&#xff1a;构建上传图片附带的参数&#xff08;params&#xff09; Map…...

无公网IP环境如何SSH远程连接Deepin操作系统

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…...

不会代码(零基础)学语音开发(语音控制板载双继电器)

继电器的用途可广了&#xff0c;这个语音控制用处也特别广。继电器&#xff0c;它实际上是一种“自动开关”&#xff0c;用小电流去控制大电流运作&#xff0c;在电路中起着自动调节、安全保护、转换电路等作用。 在日常生活中&#xff0c;你插入汽车钥匙&#xff0c;车辆可以…...

在imx6ull中加入ov5640模块

本来觉得是一件很简单的事情但是走了很多的弯路&#xff0c;记录一下调试过程。 先使用正点原子提供的出厂内核把摄像头影像调试出来&#xff0c;然后cat /dev/video1&#xff0c;看一下video1牵扯到哪些模块&#xff0c;可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个…...

Kafka中的auto-offset-reset配置

Kafka这个服务在启动时会依赖于Zookeeper&#xff0c;Kafka相关的部分数据也会存储在Zookeeper中。如果kafka或者Zookeeper中存在脏数据的话&#xff08;即错误数据&#xff09;&#xff0c;这个时候虽然生产者可以正常生产消息&#xff0c;但是消费者会出现无法正常消费消息的…...

TCP/IP_整理起因

先分享一个初级的问题&#xff1b;有个客户现场&#xff0c;终端设备使用客户网络更新很慢&#xff0c;使用手机热点更新速度符合预期&#xff1b;网络部署情况如下&#xff1a; 前期花费了很大的精力进行问题排查对比&#xff0c;怀疑是客户网络问题&#xff08;其他的客户现…...

CG-0A 电子水尺水导电测量原理应用于道路积水监测

CG-0A 电子水尺水导电测量原理应用于道路积水监测产品概述 本产品是一种采用微处理器芯片为控制器&#xff0c;内置通讯电路的数字式水位传感器&#xff0c;具备高的可靠性及抗干扰性能。适用于江、河、湖、水库及蓄水池、水渠等处的水位测量使用。 本产品采用了生产工艺技术…...

openEuler JDK21 部署 Zookeeper 集群

zookeeper-jdk21 操作系统&#xff1a;openEuler JDK&#xff1a;21 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 安装 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zl…...

前端——html拖拽原理

文章目录 ⭐前言⭐draggable属性&#x1f496; api&#x1f496; 单向拖动示例&#x1f496; 双向拖动示例 ⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端——html拖拽原理。 vue3系列相关文章&#xff1a; vue3 fastapi 实现选择目录所有文…...

JVM 执行引擎篇

机器码、指令、汇编语言 机器码 各种用二进制编码方式表示的指令&#xff0c;叫做机器指令码。开始&#xff0c;人们就用它采编写程序&#xff0c;这就是机器语言。机器语言虽然能够被计算机理解和接受&#xff0c;但和人们的语言差别太大&#xff0c;不易被人们理解和记忆&a…...

js中数组对象去重的方法

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 最近工作中需要用到数组对象去重的方法&#xff0c;我是怎么想也没想出来&#xff0c;今天稍微研究了一下&#xff0c;总算找到了2种方法。分享一下&…...

【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?

记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目&#xff0c;之后就被GitHub 要求强制开启 2FA 双重身份验证了&#xff0c;一拖再拖&#xff0c;再过几天帐户操作将受到限制了&#xff0c;只能去搞一下了 目录 2FA是什么为什么要开启 2FA 验证GitHub 欲在整个平台…...

GO设计模式——13、享元模式(结构型)

目录 享元模式&#xff08;Flyweight Pattern&#xff09; 享元模式的核心角色&#xff1a; 优缺点 使用场景 注意事项 代码实现 享元模式&#xff08;Flyweight Pattern&#xff09; 享元模式&#xff08;Flyweight Pattern&#xff09;它通过共享对象来减少内存使用和提…...

Linux 网络协议

1 网络基础 1.1 网络概念 网络是一组计算机或者网络设备通过有形的线缆或者无形的媒介如无线&#xff0c;连接起来&#xff0c;按照一定的规则&#xff0c;进行通讯的集合( 缺一不可 )。 5G的来临以及IPv6的不断普及&#xff0c;能够进行联网的设备将会是越来越多&#xff08…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...