利用pcl读取点云文件,一般代码如下
//读取ply点云文件
if (pcl::io::loadPLYFile<pcl::PointXYZ>("Mesh.ply", *cloud) == -1)
{
PCL_ERROR("Couldnot read file.\n");
system("pause");
return(-1);
}
std::cout << "Loaded "
<< cloud->width * cloud->height
<< " data points from *.pcd with the following fields: "
<< std::endl;
for (int i = 0; i < cloud->points.size(); i++)
{
cloud->points[i].z = 0;
}
for (size_t i = 0; i < cloud->points.size(); ++i)
std::cout << " " << cloud->points[i].x
<< " " << cloud->points[i].y
<< " " << cloud->points[i].z << std::endl;
起初读取ascii码所示的ply数据,会发现读取存在报错
经过了解发现pcl要读取的是二进制对应的ply点云
经cloudcompare进行格式转换,可得到二进制的数据,其在txt文本打开如下图
读取结果如图所示,其中z在输出时全被设置为0,因为用到的算法中需要用到