运行环境:
VS2013,PCL1.8.0
在本文示例中,需要对保存在路径“D:/vs project/cluster_extraction.cpp/cluster_extraction.cpp/”下的点云文件,文件名分别为“cloud_cluster_0.pcd",”cloud_cluster_1.pcd“,”cloud_cluster_2.pcd“........”cloud_cluster_147.pcd"共148个文件进行读取显示。以下是代码
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/filter_indices.h>
#include <pcl/point_cloud.h>
#include <pcl/visualization/pcl_visualizer.h>
using namespace std;
int main()
{
//***************************read PCD file*****************************************
pcl::PointCloud<pcl::PointXYZ>::Ptr source(new pcl::PointCloud<pcl::PointXYZ>());
//输入点云路径
string addr = "D:/vs project/cluster_extraction.cpp/cluster_extraction.cpp/";
string filename;
//待处理点云个数
int num = 147;
boost::shared_ptr< pcl::visualization::PCLVisualizer > viewer(new pcl::visualization::PCLVisualizer("Viewer"));
//背景颜色
viewer->setBackgroundColor(0, 0, 0);
//创建窗口
int vp;
viewer->createViewPort(0.0, 0.0, 1.0, 1.0, vp);
for(int i = 0;i <= num; i++){
//filename 为点云文件名
filename = addr + "cloud_cluster_" + to_string(i) + ".pcd";
//读取点云
pcl::io::loadPCDFile(filename, *source);
//设置点云颜色
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> source_color(source, 0, 255, 0);
viewer->addPointCloud<pcl::PointXYZ>(source, source_color, to_string(i), vp);
//改变显示点云的尺寸
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "source");
}
//显示坐标系
viewer->addCoordinateSystem(1.0);
viewer->spin();
}