PCD->txt
void BaseMeasure::pcd2txt(pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud, char *filename)
{
FILE* wc = fopen(filename, "w");
int sizepcd = cloud->points.size();
for (int i = 0; i < sizepcd; i++)
{
//fprintf(stdout, "%f\t%f\t%f\n", cloud->points[i].x, cloud->points[i].y, cloud->points[i].z); \t 相当于空格
fprintf(wc, "%f\t%f\t%f\n", cloud->points[i].x, cloud->points[i].y, cloud->points[i].z); //标准输出流 stdio.h 写
}
fclose(wc);
}
txt->PCD
pcl::PointCloud<pcl::PointXYZ>::Ptr BaseMeasure::readCloudTxt(char* Filename)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr basic_cloud_ptr(new pcl::PointCloud<pcl::PointXYZ>);
ifstream Points_in(Filename);
pcl::PointXYZ tmpoint;
if (Points_in.is_open())
{
while (!Points_in.eof()) //尚未到达文件结尾
{
Points_in >> tmpoint.x >> tmpoint.y >> tmpoint.z;
basic_cloud_ptr->points.push_back(tmpoint);
}
}
basic_cloud_ptr->width = (int)basic_cloud_ptr->points.size();
basic_cloud_ptr->height = 1;
return basic_cloud_ptr;
}