pcd点云转txt点云

Posted 没事就要敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pcd点云转txt点云相关的知识,希望对你有一定的参考价值。

1 txt点云文件格式(XYZ点云)

坐标之间用空格分割,每一行为一个点

x1 y1 z1
x2 y2 z2
x3 y3 z3
...

2 代码实现

#include <pcl/io/pcd_io.h>
#include <fstream>

using namespace std;

int main()
{
	//--------------------------------- 加载点云 --------------------------------
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	if (pcl::io::loadPCDFile("D:\\\\data\\\\test.pcd", *cloud) < 0)
	{
		PCL_ERROR("\\a点云文件不存在!\\n");
		system("pause");
		return -1;
	}
	cout << "->加载点的个数为:" << cloud->points.size() << endl;
	//===========================================================================

	//--------------------------------- pcd2txt ---------------------------------
	//1、创建流对象fs
	fstream fs;	
	//2、为写文件而打开文件,若不存在,则创建
	fs.open("D:\\\\data\\\\test.txt", fstream::out);	
	//3、向文件中写数据
	size_t max_i = cloud->points.size();
	for (size_t i = 0; i < max_i; i++)
	{
		fs << cloud->points[i].x << "\\t" 
		   << cloud->points[i].y << "\\t" 
		   << cloud->points[i].z << "\\n";
	}
	//4、关闭文件
	fs.close();
	cout << "->成功将pcd点云转为txt点云" << endl;
	//===========================================================================

	return 0;
}

输出结果:

->加载点的个数为:60
->成功将pcd点云转为txt点云

结果展示:


相关链接:

C++:文件操作 | 读写文本文件

以上是关于pcd点云转txt点云的主要内容,如果未能解决你的问题,请参考以下文章

点云格式转换:txt点云转pcd点云(XYZXYZIXYZRGBXYZIRGBGpstime)

点云格式转换:txt点云转pcd点云(XYZXYZIXYZRGBXYZIRGBGpstime)

pcd点云转txt点云

点云格式转换:las点云转pcd点云(XYZXYZIXYZRGB)

点云格式转换:las点云转pcd点云(XYZXYZIXYZRGBXYZRGBIGpstime)

PCL:las点云转pcd点云(全字段转换:XYZRGBIntensityGpsTime)