KITTI数据集中的二进制激光雷达数据(.bin文件)转换为点云数据(.pcd文件)(C++代码)
目录
main.cpp
CMakeLists.txt
main.cpp
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <fstream>
#include <iostream>
#include <vector>int main() {// Define file pathsstd::string input_filename = "/home/fairlee/KITTI/2011_09_26_drive_0011_sync/velodyne_points/data/0000000000.bin";std::string output_filename = "/home/fairlee/KITTI/2011_09_26_drive_0011_sync/velodyne_points/data/0000000000.pcd";// Open the binary filestd::ifstream input_file(input_filename, std::ios::binary);if (!input_file.good()) {std::cerr << "Error: Could not read file: " << input_filename << std::endl;return -1;}// Define point cloud objectpcl::PointCloud<pcl::PointXYZI>::Ptr point_cloud(new pcl::PointCloud<pcl::PointXYZI>);// Read points from bin fileint i = 0;while (input_file.good() && !input_file.eof()) {pcl::PointXYZI point;input_file.read(reinterpret_cast<char*>(&point.x), sizeof(float));input_file.read(reinterpret_cast<char*>(&point.y), sizeof(float));input_file.read(reinterpret_cast<char*>(&point.z), sizeof(float));input_file.read(reinterpret_cast<char*>(&point.intensity), sizeof(float));point_cloud->points.push_back(point);i++;}input_file.close();// Set additional point cloud propertiespoint_cloud->width = i;point_cloud->height = 1; // 1 for unorganized point cloudpoint_cloud->is_dense = true;// Save the point cloud to a PCD filepcl::io::savePCDFileASCII(output_filename, *point_cloud);std::cerr << "Saved " << point_cloud->points.size() << " data points to " << output_filename << std::endl;return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.17)
project(TEST2)set(CMAKE_CXX_STANDARD 14)# Find PCL
find_package(PCL 1.8 REQUIRED)# If PCL was found, add its include directories to the project
if(PCL_FOUND)include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS})
else()message(FATAL_ERROR "PCL not found.")
endif()add_executable(TEST2 main.cpp)# Link PCL libraries to the project
target_link_libraries(TEST2 ${PCL_LIBRARIES})


相关文章:
KITTI数据集中的二进制激光雷达数据(.bin文件)转换为点云数据(.pcd文件)(C++代码)
目录 main.cpp CMakeLists.txt main.cpp #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <fstream> #include <iostream> #include <vector>int main() {// Define file pathsstd::string input_filename "/home/f…...
全球AI人工智能领袖:Anthropic联合创始人丹妮拉·阿莫迪!
在创业界中,有许多杰出的女性企业家,而丹妮拉阿莫迪则是其中的佼佼者。作为Anthropic联合创始人,丹妮拉以她的智慧、勇气和远见闻名于世。 她的故事既是启迪,又是励志,让我们一起来看看她的独特之处。 丹妮拉阿莫迪毕…...
CoT 的方式使用 LLM 设计测试用例实践
前期准备 import SparkApi import os from dotenv import load_dotenv, find_dotenv#以下密钥信息从控制台获取_=load_dotenv(find_dotenv()) appid = os.getenv("SPARK_APP_ID") api_secret=os.getenv("SPARK_APP_SECRET") api_key=os.getenv("SPAR…...
神秘的锦衣卫
在看明朝电视剧经常听到的一句台词:锦衣卫办案,闲杂人等速速离开。锦衣卫是明朝特务机构,直接听命于皇帝,是亲军卫之一,也是最重要的一卫。 1、卫所制 卫所制是明代最主要的军事制度,其目标是寓兵于农、屯…...
Springboot中使用Redis
Redis 是一个基于内存的key-value的结构数据库适合存储热点数据 Macos安装Redis https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/安装redis brew install redis查看安装信息: brew info redis前台启动redis: redis-server后台启…...
超声波波形生成电路设计
摘要 随着我国微型电子技术和嵌入式系统的发展,目前行业内相对比较传统的超声波技术无法满足客户的需求。为了改进传统超声波技术在被测设备上的短板问题,在本次毕业设计中,将使用相对先进、快捷、智能的控制机制。该超声波生成控制系统的控制…...
C#和JS交互之Microsoft.ClearScript.V8(V8引擎)
之前测试了很多JS引擎,都只支持es5语法,不支持执行es6,测试了下微软的V8反正能跑通,应该是支持的。还得是微软呀。 如图:安装相关包: 这是参考的官方V8代码 using Microsoft.ClearScript.JavaScript; us…...
9月活动回顾(免费领取PPT)|火山引擎DataLeap、ByteHouse多位专家带来DataOps、实时计算等前沿技术分享!
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 在上月举行的火山引擎开发者社区 Meetup 第12期暨超话数据专场《数智化转型背景下的火山引擎大数据技术揭秘》上,来自火山引擎DataLeap、EMR、DataSail、…...
salesforce的按钮执行js代码如何链接到apex代码
在Salesforce中,你可以通过自定义JavaScript按钮或链接来触发Apex代码的执行。这可以通过使用JavaScript Remoting或Visualforce页面来实现。以下是一些步骤来将JavaScript按钮与Apex代码链接起来: 使用JavaScript Remoting链接JavaScript按钮到Apex代码…...
C语言 —— 操作符
1. 操作符的分类 算术操作符: - * / % 移位操作符: << >> 位操作符: & | ^ 赋值操作符: - 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 2. 算术操作符 - * / % 注意 /操作符: 对于整型的除法运算结果依然是整数…...
物联网AI MicroPython传感器学习 之 CCS811空气质量检测传感器
学物联网,来万物简单IoT物联网!! 一、产品简介 通过CCS811传感器模块可以测量环境中TVOC(总挥发性有机物质)浓度和eCO2(二氧化碳)浓度,作为衡量空气质量(IAQ)的指标。 引脚定义 VCC:3.3VGND&…...
TCP/IP(十五)拥塞控制
一 拥塞控制 ① 拥塞控制必要性 思考: 为什么要有拥塞控制呀,不是有流量控制了吗? ② 拥赛窗口 cwnd 什么是拥塞窗口? 和发送窗口有什么关系呢?明白: cwnd、swnd、rwnd 缩写 含义 ③ 如何知道当前网络是否出现了拥塞呢?…...
vue3 404解决方法
在 Vue 3 应用中解决 404 错误通常涉及到 Vue Router,因为 404 错误通常与路由无法匹配到的路径有关. 1. **检查路由配置**:首先确保你的路由配置正确。确保每个路由路径都与你的组件正确匹配,并且在需要时添加必要的路由守卫。 2. **通配符…...
Unity中使用Xlua调用lua相关
//引用命名空间 using XLua; public class L1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){//Lua解析器 让我们在Unity中使用luaLuaEnv env new LuaEnv();//执行env.DoString("print(OK)");//执行一个Lua脚本 在resource文件夹…...
基于http的protobuf服务实现
本文介绍在http协议中,使用protobuf格式进行二进制数据通信。双方需设置http的header中ContentType为application/x-protobuf。 1、springboot下实现protobuf: 1)pom.xml <dependency><groupId>org.springframework.boot</g…...
基于uniapp的商城外卖小程序
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...
【CSS】Tailwind CSS
直接参考 Tailwind CSS 安装提供了四种方式。因为我常用构建工具搭建项目,所以选择 Using PostCSS 。 其中 tailwind.config.js 的配置可以改为: module.exports {content: [./index.html, ./src/**/*.{vue,js,ts,jsx,tsx}],theme: {extend: {},},pl…...
leetcode-电话号码组合(C CODE)
1. 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出&#…...
Leetcode92. 反转链表 II
Every day a Leetcode 题目来源:92. 反转链表 II 解法1:模拟 注意 STL 的 reverse() 是左闭右开的。 代码: class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right){vector<int> nums getNums(…...
【算法作业记录】
插入排序 递归实现 直接插入 #将a[n]插入有序区间a[0,n-1]中 时间复杂度 O(n) def Insert(a,n):inwhile(i>0 and a[i-1]>a[i]):tmpa[i]a[i]a[i-1]a[i-1]tmpi-1return #直接插入排序 def Insertsort(a,n):for i in range(1,n):#【1,n-…...
如何用Chatterbox TTS打造多语言智能语音助手:从零开始的完整实战指南 [特殊字符]
如何用Chatterbox TTS打造多语言智能语音助手:从零开始的完整实战指南 🎤 【免费下载链接】chatterbox Open source TTS model 项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox 想要为你的应用添加逼真的语音合成功能吗&a…...
多角色语音合成解决方案:Chatterbox技术实现与应用指南
多角色语音合成解决方案:Chatterbox技术实现与应用指南 【免费下载链接】chatterbox Open source TTS model 项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox 在数字化内容创作与智能交互领域,语音合成技术正经历从单一语…...
【实战】VSCode插件离线安装全攻略:从下载到部署
1. 为什么需要离线安装VSCode插件 作为一名在开发一线摸爬滚打多年的老码农,我遇到过太多因为网络问题导致插件安装失败的场景。比如去年在某大型制造企业的工厂MES系统升级项目中,开发环境完全隔离外网,但团队又急需使用GitLens和Python插件…...
Android14 SurfaceFlinger启动流程与线程调度机制解析
1. SurfaceFlinger的启动入口与初始化流程 Android显示系统的核心服务SurfaceFlinger由init进程启动,这个设计保证了它在系统早期就能准备好图形合成能力。main函数作为入口点,首先做了一系列关键初始化: 设置Binder线程池的最大线程数为4&…...
Spring Boot中UriComponentsBuilder的5个实用技巧:从URL拼接到底层编码原理
Spring Boot中UriComponentsBuilder的5个实用技巧:从URL拼接到底层编码原理 在对接第三方API时,URL的拼接与编码往往是开发者最容易踩坑的环节之一。Spring Boot提供的UriComponentsBuilder工具,不仅能优雅地处理参数拼接,还能解决…...
从零开始:在VMware虚拟机中部署Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF进行开发测试
从零开始:在VMware虚拟机中部署Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF进行开发测试 1. 准备工作与环境搭建 在开始之前,我们需要准备好必要的软件和资源。首先确保你的主机系统满足以下要求: 至少16GB内存(推荐…...
从“跟网”到“构网”:新能源并网变流器的稳定性为何一个怕强一个怕弱?用大白话讲清失稳机理
新能源并网变流器的"性格差异":为什么构网型怕强电网,跟网型怕弱电网? 想象一下,你正在指挥两支风格迥异的交响乐团——一支严格遵循指挥家的每个动作(跟网型变流器),另一支则自带节奏…...
StructBERT在代码仓库管理中的重复代码检测应用
StructBERT在代码仓库管理中的重复代码检测应用 你有没有遇到过这种情况?在代码审查时,总觉得某段代码似曾相识,但又说不清在哪见过。或者,团队里不同成员为了解决类似问题,各自写了一套逻辑相近但细节不同的代码&…...
ROS路径规划实战:用move_base让机器狗在Gazebo中自主导航(避坑指南)
ROS路径规划实战:用move_base让机器狗在Gazebo中自主导航(避坑指南) 当机器狗在仿真环境中流畅地绕过障碍物走向目标点时,那种成就感就像看着自家宠物第一次成功接住飞盘。作为ROS开发者,掌握move_base实现自主导航的能…...
Leather Dress Collection 模型Java后端集成指南:SpringBoot微服务开发
Leather Dress Collection 模型Java后端集成指南:SpringBoot微服务开发 最近在做一个电商相关的项目,需要集成一个能生成皮革服饰设计图的AI模型,正好接触到了Leather Dress Collection。作为后端开发,我的第一反应就是ÿ…...
