我将创建两个视口,以便可视化两个独立的点云。 这是我的代码的一部分:
PORT1 = 0; PORT2=0;
vis->createViewPort (0.5,0.0,1.0,1.0,PORT1);
vis->setBackgroundColor(0,0,0,PORT1);
vis->addPointCloud<pcl::PointXYZ>(*cloud1, "left cloud",PORT1);
vis->createViewPort (0.0,0.0,0.5,1.0,PORT2);
vis->setBackgroundColor(0.1,0.1,0.1,PORT2);
vis->addPointCloud<pcl::PointXYZ>(*cloud2, "right cloud",PORT2);
可视化工具在同一窗口中显示cloud1和cloud2。但是当我想要改变一个pointcloud(使用鼠标)的视图时,另一个同时旋转。有没有办法让不同的pointcloud可以相互独立地查看? (我在线程中创建了可视化工具,因此我无法创建两个不同的可视化工具)
谢谢大家
答案 0 :(得分:1)
我已经达成答案(来自pcl用户论坛):
您不能在两个或多个线程中使用一个可视化工具。当前版本的PCL(1.7)不支持此任务。 但是你可以用不同的可视化器制作两个不同的线程。然后,您将在单独的窗口中看到每个云,并且您可以单独更改每个窗口的视图。
答案 1 :(得分:0)
您可以独立创建它们,只需为它们中的每个创建单独的凸轮。根据此建议更新的代码将以以下方式显示:
PORT1 = 0; PORT2=0;
vis->createViewPort (0.5,0.0,1.0,1.0,PORT1);
vis->setBackgroundColor(0,0,0,PORT1);
vis->addPointCloud<pcl::PointXYZ>(*cloud1, "left cloud",PORT1);
vis->createViewPortCamera(PORT1);
vis->createViewPort (0.0,0.0,0.5,1.0,PORT2);
vis->setBackgroundColor(0.1,0.1,0.1,PORT2);
vis->addPointCloud<pcl::PointXYZ>(*cloud2, "right cloud",PORT2);
vis->createViewPortCamera(PORT2);
可见,
boost :: shared_ptr vis(new pcl :: visualization :: PCLVisualizer(“ id”));