点云库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);

猜你喜欢

转载自blog.csdn.net/zzh_AI/article/details/93059027