1. PCLVisualizer显示点云时视角保存需求
看似一个很简单的需求,就是们在界面显示点云后,人为操作鼠标(旋转,平移,缩放)后使得点云显示的视角与比例刚好符合实际需求。
那么,不由得就会想把这个调节好后的视角保存下来,当下次程序启动或者使用过程中,直接让点云显示到达这个视角。 本文对应的PCL版本1.11.1.
2. 网上查的资料
于是乎,网上搜索了一下,答案无非就是先读取当前相机的几个关键设置:
pcl::visualization::Camera cam_params;//cloud_viewer_为pcl::visualization::PCLVisualizer::Ptrcloud_viewer_->getCameraParameters(cam_params,0);camera_param_ = { cam_params.pos[0], cam_params.pos[1], cam_params.pos[2],cam_params.view[0], cam_params.view[1], cam_params.view[2],cam_params.focal[0], cam_params.focal[1], cam_params.focal[2]};
通过上面的代码,保存当前相机信息 pos view focal。
在需要还原到理想视角时,直接setCameraPosition设置相机 。
void
setCameraPosition (double pos_x, double pos_y, double pos_z,double view_x, double view_y, double view_z,double up_