conferenceRoom.pcd文件如下:截取了部分点,点格式为PointXYZRGB类型
可视化代码如下:
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/cloud_viewer.h>
int main(int argc, char const *argv[])
{
// 1、Visualizer初始化
//创建可视化对象
pcl::visualization::PCLVisualizer viewer("PointCloud Viewer");
// 设置背景颜色(0,0,0)黑色 (255,255,255)白色
viewer.setBackgroundColor(0,0,0);
//添加坐标轴(红绿蓝三色轴,放置在原点)
viewer.addCoordinateSystem(3.0,-20.8,36.2,0); //3.0指轴的长度
//viewer.addCoordinateSystem(3.0,1,2,3);一个重载函数,3.0指轴的长度,放置在(1,2,3)位置
//初始化默认相机参数
viewer.initCameraParameters();
// 2、读取pcd文件
//创建点云渲染对象,导入待渲染文件
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZRGB>); //声明cloud
if(pcl::io::loadPCDFile("conferenceRoom.pcd",*cloud2) == -1){
PCL_ERROR("Couldn't read file.\n");
return (-1);
}
// 设置点云颜色
pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> rgb(cloud2);
viewer.addPointCloud<pcl::PointXYZRGB>(cloud2, rgb, "cloud2conferenceRoom");
//显示可视化窗口
while (!viewer.wasStopped())
{
viewer.spinOnce();
}
return 0;
}
效果如下: