pcl小知识(十三)——两种读取和写入pcd点云文件的方法(根目录与指定目录)
2018-06-22 09:35
5560 查看
版权声明:本文为博主原创文章,转载请注明出处。谢谢! https://blog.csdn.net/liukunrs/article/details/80769145
介绍了两种读取和保存到pcd格式点云的方法;同时介绍了读取根目录下与指定目录下的方法。
读取
一、读取根目录下点云
点云放在整个C++工程中存放.cpp的那个文件夹【当然,你的.cpp需要是在默认路径下新建的,或者添加的是打开的默认目录下的】。
1、使用reader
[code] pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // Generate pointcloud data,新建指针cloud存放点云 pcl::PCDReader reader; reader.read<pcl::PointXYZ>("jiange0.05liqun_100inliers4.pcd", *cloud);//读取pcd文件,用指针传递给cloud。
2、使用loadPCDFile
[code] pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // Generate pointcloud data,新建指针cloud存放点云 if (pcl::io::loadPCDFile<pcl::PointXYZ>("resultjiange0.05liqun.pcd", *cloud) == -1)//*打开点云文件。 { PCL_ERROR("Couldn't read that pcd file\n"); return(-1);//如果没找到该文件,返回-1,跳出整个main函数 }
二、读取指定目录下的点云
以使用loadPCDFile为例。
[code] pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // Generate pointcloud data,新建指针cloud存放点云 if (pcl::io::loadPCDFile<pcl::PointXYZ>("E:/实验/PCL实验/RegionGrowRadius/RegionGrowRadius/resultjiange0.05liqun区域增长/resultjiange0.05liqun.pcd", *cloud) == -1)//*打开点云文件。 { //带路径的格式【注意路径的反斜杠与电脑自己的不同】 PCL_ERROR("Couldn't read that pcd file\n"); // //不带路径的格式【只是把路径删掉即可】 return(-1); }
写入
[code]#include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/point_cloud.h> using namespace std; // 可以加入 std 的命名空间 int main(int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr INcloud(new pcl::PointCloud<pcl::PointXYZ>); // 存放提取出来的边界点云 if (pcl::io::loadPCDFile<pcl::PointXYZ>("boudary_200_100.pcd", *INcloud) == -1)//*打开点云文件。 { //带路径的格式【注意路径的反斜杠与电脑自己的不同】:if (pcl::io::loadPCDFile<pcl::PointXYZ>("E:/rabbit_gra.pcd", *cloud) == -1) PCL_ERROR("Couldn't read that boundary pcd file\n"); // //不带路径的格式【只是把路径删掉即可】:if (pcl::io::loadPCDFile<pcl::PointXYZ>("rabbit_gra.pcd", *cloud) == -1) return(-1); } //写入磁盘 //写入方法一: pcl::PCDWriter writer; writer.write<pcl::PointXYZ>("name_cluster.pcd", *INcloud, false);//将点云保存到PCD文件中 //写入方法二: pcl::io::savePCDFileASCII("name_cluster.pcd", *INcloud); //将点云保存到PCD文件中 }
阅读更多
相关文章推荐
- PCL点云库中怎样读取指定的PCD文件,又一次命名,处理后保存到指定目录
- java字节流和字符流操作文件,指定编码写入和读取,递归创建上层目录
- PCL中读取pcd点云数据的两种方法
- unity 在指定目录创建文件/读取文件/在文件内写入字符串
- C#读取目录下所有指定类型文件的方法
- JAVA文件的两种读取方法和三种写入方法
- java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法
- MFC中怎样将位图写入指定的Picture控件中,两种方式:1 加载已有位图 2读取位图文件;另外CreateDIBitmap的用法和StretchDIBits用法举例
- 由两种简单的遍历指定目录下文件的方法来看os模块中的一些方法
- Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例(File类的文件过滤器方法改进list( FilenameFilter ff))
- java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中
- 递归 / 迭代两种方法实现查找指定目录下所有文件
- C#读取目录下所有指定类型文件的方法
- Eclipse中properties文件读取时中文乱码、指定更新、写入中文变unicode码的解决方法
- MFC中怎样将位图写入指定的Picture控件中,两种方式:1 加载已有位图 2读取位图文件;另外CreateDIBitmap的用法和StretchDIBits用法举例
- php读取指定目录文件夹下所有文件夹及文件的方法
- Python批量重命名指定目录下文件的两种方法
- JAVA文件的两种读取方法和三种写入方法
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- 分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里