在使用PCL是经常需要自行调节到某一个视角去看点云的表现,如果是做算法,有时还需要在同一角度去对比不同算法得到的结果,因此获得点云在某一视角下的参数,然后设置其下次启动时位于此视角是非常常见的需求。
获得PCL视角参数代码如下:
pcl::visualization::Camera camera;
viewer->getCameraParameters(camera);
printf("%lf,%lf,%lf,", camera.pos[0], camera.pos[1], camera.pos[2]);
printf("%lf,%lf,%lf\n", camera.view[0], camera.view[1], camera.view[2]);
可以把代码放在键盘响应函数内,然后通过按键来打印当前视角。获得当前视角后,直接用如下代码进行初始化视角即可:
viewer->setCameraPosition(-29.570503, -52.226951, 51.029257, 0.540905, 0.478015, 0.692043);
上面的参数次序和上一段代码打印出的次序一致。