2017-08-21 5 views
4

Ich habe einen „XYZL“ Punktwolke wie folgt aus:Wie visualisiert man die Punktwolke "XYZL"?

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

und ich möchte es Visualize. Es ist nicht mit Befehlen visualisierbar, die Punktwolken "XYZ" oder "XYZRGB" visualisieren.

Nun frage ich mich, wie kann ich diese Art von Punktwolke visualisieren?

Antwort

2

Ein PointXYZL könnte als eine PointXYZI-Cloud visualisiert werden. Einfach zwischen den beiden konvertieren, und dann

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(); 
} 
Verwandte Themen