版权声明:坚持原创,禁止转载。 https://blog.csdn.net/SLAM_masterFei/article/details/84718463
最近有需要用到pcl点云库来显示点云,并且还要根据时间来实时显示它的变化,实时显示主要是要用到CloudViewer这个类,它创建一个显示器用来显示点云,一般来讲动态显示点云就在这个显示器中不断地添加或者删除一些点来达到动态实时的功能。
废话不多说,一般用法如下,即新建一个点云指针用来存放点云,然后显示
void show(vector<Point3d>& pt5,pcl::PointCloud<pcl::PointXYZRGB>::Ptr ptcloud,pcl::PointCloud<pcl::PointXYZRGB>::Ptr ptcloud1)
{
for(int j=0;j<pt5.size();j++)
{
pcl::PointXYZRGB ptc;
ptc.x=pt5[j].x;
ptc.y=pt5[j].y;
ptc.z=pt5[j].z;
ptc.b=200;
ptc.r=255;
ptc.g=0;
ptcloud1->points.push_back(ptc);
}
for(int j=0;j<ptcloud->size();j++)
{
ptcloud->points[j].y+=100;
}
*ptcloud=*ptcloud+*ptcloud1;
viewer.showCloud(ptcloud);
}
动态显示还是很简单的啊哈哈哈。