3D点云文件的下载+.pcd与.ply文件的格式转换
3D点云常见模型
常见模型的下载地址链接:
模型下载地址
pcd与ply文件的之间的转换
①.ply to .pcd
相关代码:
#include <iostream> //输入输出流头文件
#include <pcl/io/pcd_io.h> //打开关闭pcd类定义头文件
#include <pcl/point_types.h> //所有点类型定义头文件
#include <pcl/io/ply_io.h> //打开关闭ply类定义头文件
int main(int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
if (pcl::io::loadPLYFile<pcl::PointXYZ>("F://PCL online data//three//6//source//bunny.ply", *cloud) == -1) //加载文件
{
PCL_ERROR("Couldn't read file test_pcd.pcd \n");
system("PAUSE");
return (-1);
}
//显示点云数量
std::cout << "point number: "
<< cloud->width * cloud->height
<< std::endl;
//显示文件中各点数据
/*
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;
*/
std::string filename("bunny.pcd");
pcl::PCDWriter writer;
writer.write("F://PCL online data//three//6//source//bunny.pcd", *cloud); //保存文件
system("PAUSE");
return (0);
}
②.pcd to .ply
#include <iostream> //输入输出流头文件
#include <pcl/io/pcd_io.h> //打开关闭pcd类定义头文件
#include <pcl/point_types.h> //所有点类型定义头文件
#include <pcl/io/ply_io.h> //打开关闭ply类定义头文件
int main(int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
if (pcl::io::loadPCDFile<pcl::PointXYZ>("F://PCL online data//three//6//source//test.pcd", *cloud) == -1) //加载文件
{
PCL_ERROR("Couldn't read file \n");
system("PAUSE");
return (-1);
}
//显示点云数量
std::cout << "point number: "
<< cloud->width * cloud->height
<< std::endl;
//显示文件中各点数据
/*
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;
*/
std::string filename("test1.ply");
pcl::PLYWriter writer;
writer.write("F://PCL online data//three//6//source//test1.ply", *cloud); //保存文件
system("PAUSE");
return (0);
}
两种文件的格式的转换程序,简洁又相通。只是更改了部分关键的语句就实现了。