在将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文件合并相关推荐

  1. 如何将点云asc文件转换为pcd文件

    在进行3D模型特征分析的时候,下载了一些3D模型,但是因为文件格式而受到了很多限制.这里提供一种简单的利用python程序将asc文件批量转换为pcd文件.代码如下: import time from ...

  2. CloudCompare多个pcd文件的拼接为1个pcd

    CloudCompare多个pcd文件的拼接为1个pcd Livox采集的点云数据,初始格式为.lvx 第一步:.lvx转为.bag 在ws_livox目录下 roslaunch livox_ros_ ...

  3. 从PCD文件写入和读取点云数据

    (1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp  CMakeLists.txt两个文件 write_pcd.cpp : #include <iostr ...

  4. Java实现文件分割和文件合并实例

    文件切割和文件合并这个问题困扰了我有一段时间了(超过一天没做粗来). 找了好多博客,本来想转载一个来的 结果找不到了.很无奈. 只好自己贴代码上了. 当然我会尽力好好写注释的. 文件切割器: impo ...

  5. linux下将多个文件去除文件头合并_shell命令实现当前目录下多个文件合并为一个文件的方法...

    当前目录下多个文件合并为一个文件 1.将多个文件合并为一个文件没有添加换行符 find ./ -name "iptv_authenticate_201801*" | xargs c ...

  6. 将多个PDF文件合并/转换为一个PDF

    如何将多个PDF文件合并/转换为一个大PDF文件? 我尝试了以下操作,但是目标文件的内容不符合预期: convert file1.pdf file2.pdf merged.pdf 我需要一个非常简单/ ...

  7. 大数据教程(10.6)自定义inputFormat(小文件合并)

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章分析了运营商流量日志解析增强的实现,至此,mapreduce的组件中除了inputFormat全都自定义写过了!博主 ...

  8. 两个音轨合并_webm格式视频文件合并+weba音频文件无损合并

    WebM 格式,其实是以 Matroska(就是我们熟知的 MKV)容器格式为基础开发的新容器格式,里面包括了 VP8 视频和 Ogg Vorbis 音轨.简单点说webm格式文件可以是视频,也可以是 ...

  9. python 整合excel_Python将多个excel文件合并为一个文件

    # -*- coding: utf-8 -*- #将多个Excel文件合并成一个 import xlrd import xlsxwriter #打开一个excel文件 def open_xls(fil ...

最新文章

  1. 从零部署TiDB集群
  2. VUE的ajax拦截器
  3. 数据挖掘导论读书笔记9聚类分析
  4. 面试「计算机操作系统」知识点大集合!
  5. windbg-奔溃生成的dump文件
  6. hihocoder #1136 : Professor Q's Software
  7. MySQL数据库的可视化管理工具连接时一些问题解决~
  8. JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
  9. 漫步者蓝牙只有一边有声音_漫步者DreamPods半个月上手体验:谈谈那些好的和不好的地方...
  10. linux shell脚本 删除指定目录下文件夹(可指定文件夹名、时间)
  11. 推荐汪峰的《北京,北京》,虽然有些念头
  12. SAP RFC BAPI
  13. 关于操作系统I/O的一些基础知识
  14. 一文了解什么是DoIP协议(超详细)
  15. 海康威视流媒体服务器配置心得
  16. 大疆无人机飞控系统的原理、组成及各传感器的作用
  17. Appium_3_环境配置_Appium-desktop配置
  18. barebox启动分析(一)
  19. uniapp 在线升级(热更新)及java后台
  20. 计算机可以进行磁盘管理,磁盘管理里可以看到盘 但是我的电脑里没有

热门文章

  1. linux开发亿连手机互联,亿连驾驶助手的汽车互联怎么用,亿连车机互联安装教程...
  2. vue gyp: No Xcode or CLT version detected解决办法
  3. 程序员必备的思维能力-结构化思维
  4. 【个人原创项目】开发问答社区-V1.0
  5. 模拟计算(L2-018 多项式A除以B (25 分))
  6. 根据字段值查询其所在的表、字段
  7. Robotframework布尔运算
  8. win10系统增加固态硬盘系统迁移小结
  9. 最近看书少了,以后要多看书
  10. 沙行勉 python_清华大学出版社-图书详情-《智能机器人原理与实践》