在使用PCL viewer时,每添加一个需要显示的点云都需要给他一个独一无二的ID,addPointCloud函数声明如下,
pcl::visualization::PCLVisualizer::addPointCloud (const typename pcl::PointCloud<PointT>::ConstPtr &cloud, const std::string &id, int viewport)
当需要多次赋值时,可以使用如下命令自动生成ID
#include "string.h" //还需要添加C++ 11
pcl::visualization::PCLVisualizer viewer;
for (int j=0;j<100;j++)
{
viewer.addPointCloud(cloud_cluster, std::to_string(j));
viewer.spinOnce ();
}
想更新点云时,经常会出现如下错误
[addPointCloud] A PointCloud with id <3> already exists! Please choose a different id and retry.
此时可以在addPointCloud()前删除已有点云ID
viewer.removePointCloud(std::to_string(j));
viewer.addPointCloud(cloud_cluster, std::to_string(j));