pcl小知识(十三)——两种读取和写入pcd点云文件的方法(根目录与指定目录)

介绍了两种读取和保存到pcd格式点云的方法;同时介绍了读取根目录下与指定目录下的方法。

读取

一、读取根目录下点云

点云放在整个C++工程中存放.cpp的那个文件夹【当然,你的.cpp需要是在默认路径下新建的,或者添加的是打开的默认目录下的】。

1、使用reader

	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

	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为例。

	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);
	}

写入

#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文件中
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值