将raw文件等转换成pcd文件

#include <iostream>
#include <fstream>	
#include <vector>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
using namespace std;
struct POINT_3D {
	double x;
	double y;
	double z;
};
int
main()
{
	//加载数据
	int number_point;
	FILE *fp;
	POINT_3D Point;
	vector<POINT_3D> vec;
	double x2, y2, z2;
	fp = fopen("46.raw", "r");
	if (NULL == fp)
	{
		cout << "加载数据失败" << endl;
		return -1;
	}
	cout << "加载数据成功" << endl;
	while (fscanf(fp, "%lf%lf%lf%lf%lf%lf", &Point.x, &Point.y, &Point.z, &x2, &y2, &z2) != EOF)
	{
		vec.push_back(Point);
	}
	number_point = vec.size();
	pcl::PointCloud<pcl::PointXYZ> cloud;

	//填入pcd文件
	cloud.width = number_point;
	cloud.height = 1;
	cloud.is_dense = true;
	cloud.points.resize(cloud.width*cloud.height);
	for (size_t i = 0; i < cloud.points.size(); ++i)
	{
		cloud.points[i].x = vec[i].x;
		cloud.points[i].y = vec[i].y;
		cloud.points[i].z = vec[i].z;
	}
	//保存pcd文件
	pcl::io::savePCDFileASCII("20191106_2.pcd", cloud);
	fclose(fp);
	system("pause");
	return 0;
}

 


版权声明:本文为minhuaQAQ原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。