PCL中多个可视化窗口
多视图可视化
本文对PCL库中如何在一个窗口中显示多个点云图进行了探索。
主要所有函数如下:
viewer->createViewPort(double Xmin,double Ymin,double Xmax,double Ymax)
createViewPort是用于创建新视口的函数,所需的4个参数分别是视口在X轴的最小值、最大值,Y轴的最小值、最大值,取值在0-1之间。
双视窗口举例
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new
pcl::visualization::PCLVisualizer("3D Viewer"));
viewer->initCameraParameters();
int v1(0);
viewer->createViewPort(0.0, 0.0, 0.5, 1.0, v1);
int v2(0);
viewer->createViewPort(0.5, 0.0, 1.0, 1.0, v2);
viewer->setBackgroundColor(255, 0, 255,v1);
viewer->setBackgroundColor(0, 255, 255,v2);
viewer->addCoordinateSystem();
viewer->spin();

分析:坐标原点在左上角。v1视口(xmin=0,ymin=0,xmax=0.5,ymax=1.0)就是他的x介于0-0.5之间,也就是窗口的一半。
三个视窗
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new
pcl::visualization::PCLVisualizer("3D Viewer"));
viewer->initCameraParameters();
int v1(0);
viewer->createViewPort(0.0, 0.0, 0.33, 1.0, v1);
int v2(0);
viewer->createViewPort(0.33, 0.0,0.66, 1.0, v2);
int v3(0);
viewer->createViewPort(0.66, 0.0, 1.0, 1.0, v3);
viewer->setBackgroundColor(255, 0, 255,v1);
viewer->setBackgroundColor(0, 255, 255,v2);
viewer->setBackgroundColor(255, 255, 0, v3);
viewer->addCoordinateSystem();
viewer->spin();

可以推出来田字格4视口怎么弄了,如下
viewer->creatViewPort(0.0,0.0,0.5,0.5,v1);
viewer->creatViewPort(0.5,0.0,1.0,0.5,v2);
viewer->creatViewPort(0.0,0.5,0.5,1.0,v3);
viewer->creatViewPort(0.5,0.5,1.0,1.0,v4);
目前微信交流群不断壮大,由于人数太多,目前有两个群,为了鼓励大家分享,我们希望大家能在学习的同时积极分享,将您的问题或者小总结投稿发到群主邮箱主邮箱dianyunpcl@163.com。
●文章来源 |翻译组张子豪