将多个PCD文件合并
在将bag包文件提取pcd后需要合并处理,记录如下。
转载至:Rosbag转pcd点云/c++遍历文件夹/pcd点云合并/pcd点云转txt_SJTU_YJ的博客-CSDN博客_rosbag转pcd
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>#include <string>
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vector>
#include <iostream>using namespace std;const char* path = "/media/car/T7/addpoint/data/";
void GetFileNames(string path,vector<string>& filenames)
{DIR *pDir;struct dirent* ptr;if(!(pDir = opendir(path.c_str()))){std::cout<<"Folder doesn't Exist!"<<std::endl;return;}while((ptr = readdir(pDir))!=0) {if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0){filenames.push_back(path + "/" + ptr->d_name);//std::cout<<path + "/" + ptr->d_name<<endl;}}closedir(pDir);
}int main(int argc, char** argv) {pcl::PointCloud<pcl::PointXYZ>::Ptr cloudadd(new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);//pcl::io::loadPCDFile("./test1.pcd", *cloud);DIR *pDir;struct dirent* ptr;if(!(pDir = opendir("/media/car/T7/addpoint/data/"))){std::cout<<"Folder doesn't Exist!"<<std::endl;return -1;}while((ptr = readdir(pDir))!=0) {if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0){//filenames.push_back(path + "/" + ptr->d_name);pcl::io::loadPCDFile("/media/car/T7/addpoint/data/" + string(ptr->d_name), *cloud);*cloudadd = *cloudadd + *cloud;cloud->clear();//std::cout<<path + "/" + ptr->d_name<<endl;}}closedir(pDir);pcl::io::savePCDFileBinary("test_pcd.pcd", *cloudadd);return 0;}
此代码的CMakeLists为
cmake_minimum_required(VERSION 2.8)
project(pcl_test)# 设置编译模式
set( CMAKE_BUILD_TYPE "Debug" )
set(CMAKE_CXX_FLAGS "-std=c++11")find_package(PCL REQUIRED)include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})add_executable(pcl_test addpoints.cpp)target_link_libraries (pcl_test ${PCL_LIBRARIES} ${OpenCV_LIBS})
将多个PCD文件合并相关推荐
- 如何将点云asc文件转换为pcd文件
在进行3D模型特征分析的时候,下载了一些3D模型,但是因为文件格式而受到了很多限制.这里提供一种简单的利用python程序将asc文件批量转换为pcd文件.代码如下: import time from ...
- CloudCompare多个pcd文件的拼接为1个pcd
CloudCompare多个pcd文件的拼接为1个pcd Livox采集的点云数据,初始格式为.lvx 第一步:.lvx转为.bag 在ws_livox目录下 roslaunch livox_ros_ ...
- 从PCD文件写入和读取点云数据
(1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp : #include <iostr ...
- Java实现文件分割和文件合并实例
文件切割和文件合并这个问题困扰了我有一段时间了(超过一天没做粗来). 找了好多博客,本来想转载一个来的 结果找不到了.很无奈. 只好自己贴代码上了. 当然我会尽力好好写注释的. 文件切割器: impo ...
- linux下将多个文件去除文件头合并_shell命令实现当前目录下多个文件合并为一个文件的方法...
当前目录下多个文件合并为一个文件 1.将多个文件合并为一个文件没有添加换行符 find ./ -name "iptv_authenticate_201801*" | xargs c ...
- 将多个PDF文件合并/转换为一个PDF
如何将多个PDF文件合并/转换为一个大PDF文件? 我尝试了以下操作,但是目标文件的内容不符合预期: convert file1.pdf file2.pdf merged.pdf 我需要一个非常简单/ ...
- 大数据教程(10.6)自定义inputFormat(小文件合并)
2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章分析了运营商流量日志解析增强的实现,至此,mapreduce的组件中除了inputFormat全都自定义写过了!博主 ...
- 两个音轨合并_webm格式视频文件合并+weba音频文件无损合并
WebM 格式,其实是以 Matroska(就是我们熟知的 MKV)容器格式为基础开发的新容器格式,里面包括了 VP8 视频和 Ogg Vorbis 音轨.简单点说webm格式文件可以是视频,也可以是 ...
- python 整合excel_Python将多个excel文件合并为一个文件
# -*- coding: utf-8 -*- #将多个Excel文件合并成一个 import xlrd import xlsxwriter #打开一个excel文件 def open_xls(fil ...
最新文章
- 从零部署TiDB集群
- VUE的ajax拦截器
- 数据挖掘导论读书笔记9聚类分析
- 面试「计算机操作系统」知识点大集合!
- windbg-奔溃生成的dump文件
- hihocoder #1136 : Professor Q's Software
- MySQL数据库的可视化管理工具连接时一些问题解决~
- JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
- 漫步者蓝牙只有一边有声音_漫步者DreamPods半个月上手体验:谈谈那些好的和不好的地方...
- linux shell脚本 删除指定目录下文件夹(可指定文件夹名、时间)
- 推荐汪峰的《北京,北京》,虽然有些念头
- SAP RFC BAPI
- 关于操作系统I/O的一些基础知识
- 一文了解什么是DoIP协议(超详细)
- 海康威视流媒体服务器配置心得
- 大疆无人机飞控系统的原理、组成及各传感器的作用
- Appium_3_环境配置_Appium-desktop配置
- barebox启动分析(一)
- uniapp 在线升级(热更新)及java后台
- 计算机可以进行磁盘管理,磁盘管理里可以看到盘 但是我的电脑里没有
热门文章
- linux开发亿连手机互联,亿连驾驶助手的汽车互联怎么用,亿连车机互联安装教程...
- vue gyp: No Xcode or CLT version detected解决办法
- 程序员必备的思维能力-结构化思维
- 【个人原创项目】开发问答社区-V1.0
- 模拟计算(L2-018 多项式A除以B (25 分))
- 根据字段值查询其所在的表、字段
- Robotframework布尔运算
- win10系统增加固态硬盘系统迁移小结
- 最近看书少了,以后要多看书
- 沙行勉 python_清华大学出版社-图书详情-《智能机器人原理与实践》