2017-08-21 1 views
4

J'ai un nuage de points "XYZL" comme ceci:Comment visualiser le nuage de points "XYZL"?

pcl::PointCloud<pcl::PointXYZL>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZL>); 

et je veux visulize il. Il n'est pas visualisable par les commandes qui visualisent les nuages ​​de points "XYZ" ou "XYZRGB". Maintenant, je me demande comment puis-je visualiser ce type de nuage de points?

Répondre

2

Un PointXYZL peut être visualisé comme un nuage PointXYZI. Il suffit de convertir entre les deux, puis

void displayCloud(pcl::PointCloud<pcl::PointXYZI>::Ptr cloud, const std::string& window_name) 
{ 
    if (cloud->size() < 1) 
    { 
     std::cout << window_name << " display failure. Cloud contains no points\n"; 
     return; 
    } 

    boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer(window_name)); 
    pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZI> point_cloud_color_handler(cloud, "intensity"); 

    viewer->addPointCloud<pcl::PointXYZI>(cloud, point_cloud_color_handler, "id"); 
    viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "id"); 

    viewer->registerKeyboardCallback(keyboardEventOccurred, (void*)viewer.get()); 

    while (!viewer->wasStopped() && !close_window){ 
     viewer->spinOnce(50); 
    } 
    close_window = false; 
    viewer->close(); 
}