View multiple Point Clouds in same window using PCL in C++ -


i have 2 point cloud, want visualise in same window.

#include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/cloud_viewer.h>  int main () {     pcl::visualization::cloudviewer viewer("cloud viewer");      pcl::pointcloud<pcl::pointxyzrgba>::ptr body (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("body.pcd", *body);      pcl::pointcloud<pcl::pointxyzrgba>::ptr head (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("head.pcd", *head);      viewer.showcloud (body);     viewer.showcloud (head);     while (!viewer.wasstopped ())     {     }     return 0; } 

i can see last pcd file.

please note don't want use pcd_viewer tool since need other processing on data.

regarding comment

"okay. check soon. can tell me set camera parameters , background color using cloud_viewer api?"

i not 100% sure if can using pcl::visualization::cloudviewer. however, if move code pcl::visualization::pclvisualizer can viewer.setbackgroundcolor(double red,double green,double blue) (where values range 0..1. set camera). camera, can use pcl::visualization::pclvisualizer::setcameraposition. moving code cloudviewer pclvisualizer preatty easy.

#include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h>  int main () {     pcl::visualization::pclvisualizer viewer("cloud viewer");      pcl::pointcloud<pcl::pointxyzrgba>::ptr body (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("body.pcd", *body);      pcl::pointcloud<pcl::pointxyzrgba>::ptr head (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("head.pcd", *head);      viewer.addpointcloud (body,"body");// note before showcloud     viewer.addpointcloud (head,"head");// note before showcloud     viewer.spin();     return 0; } 

edit ther acutally way this. looking here, can see can run of function of pcl::visualization::pclvisualizer using pcl::visualization::cloudviewer::runonvisualizationthreadonce or pcl::visualization::cloudviewer::runonvisualizationthread functions. this, need create function part uses pcl::visualization::pclvisualizerand pass cloudviewer::runonvisualizationthreadonce or cloudviewer::runonvisualizationthread.

for example

#include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/cloud_viewer.h>  void  setbackground (pcl::visualization::pclvisualizer& viewer) {     viewer.setbackgroundcolor (1.0, 0.5, 1.0);     }  int main () {     pcl::visualization::pclvisualizer viewer("cloud viewer");      pcl::pointcloud<pcl::pointxyzrgba>::ptr body (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("body.pcd", *body);      pcl::pointcloud<pcl::pointxyzrgba>::ptr head (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("head.pcd", *head);      viewer.showcloud (body,"body");     viewer.showcloud (head,"head");      viewer.runonvisualizationthreadonce(setbackground);      while (!viewer.wasstopped ())     {     }     return 0; } 

the issue not see how potentially pass arguments pcl::visualization::pclvisualizer function want use in function crated (in previous example pcl::visualization::pclvisualizer::setbackgroundcolorin setbackground. this, think using directly pcl::visualization::pclvisualizer better.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -