1.可视化窗口添加、删除、更新点云
addPointCloud
removePointCloud
updatePointCloud
///定义一个显示窗口,窗口的名字为3D reviewer
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
(1) 函数1: addPointCloud()
向窗口添加点云cloud1,cloud的名字叫“sample cloud”,以后就用‘simple cloud"代替cloud1.
viewer->addPointCloud<pcl::PointXYZ>(cloud1, "sample cloud");
(2) 函数2: removePointCloud()
viewer->removePointCloud("sample cloud");
(3) 函数3: updatePointCloud()
updatePointCloud相当于先remove"sample cloud",再add “cloud2”
viewer->updatePointCloud(cloud2, "sample cloud");
2.几个常用PCL可视化函数
(1) 函数1:设置点云的颜色
///对输入为pcl::PointXYZ类型的点云,着色为红色。其中,source表示真正处理的点云,sources_cloud_color表示处理结果
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> sources_cloud_color(source, 250,0,0);
(2) 函数2:在某个固定视图中显示固定颜色的某点云
//双引号中的sources_cloud_v1,表示该点云的”标签“,v1表是添加到哪个视图窗口(pcl中可设置多窗口模式)
view->addPointCloud(source,sources_cloud_color,"sources_cloud_v1",v1);
(3) 函数3:设置点云属性
///其中PCL_VISUALIZER_POINT_SIZE表示设置点的大小为3,双引号中”sources_cloud_v1“,就是步骤2中所说的标签。
view->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,3,"sources_cloud_v1");
//主要用来设置标签点云的不透明度,表示对标签名字为"sources_cloud_v1"的标签点云设置不透明度为1,也就是说透明度为0. 默认情况下完全不透明。
view->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY,1,"sources_cloud_v1");
(4) 函数4:设置显示窗口的背景颜色
viewer->setBackgroundColor (0, 0, 0.7);
(5) 函数5:添加需要显示的点云法向。
///cloud为原始点云模型,normal为法向信息,10表示需要显示法向的点云间隔,即每10个点显示一次法向,5表示法向长度,名字、标签为“normal
viewer->addPointCloudNormals<pcl::PointXYZ, pcl::Normal> (cloud, normals, 10, 5, "normals");