PCL:如何更新 pcl::visualizer 中的法线云?

Posted

技术标签:

【中文标题】PCL:如何更新 pcl::visualizer 中的法线云?【英文标题】:PCL: How can I update the normals's cloud in pcl::visualizer? 【发布时间】:2013-08-15 09:53:33 【问题描述】:

我有一个线程可以在我处理它时可视化点云。 我还需要可视化法线,如何更新它们?

我找不到像普通云的 updateClouds 这样的东西。

void pclVisualizerThread::operator()()

    // prepare visualizer named "viewer"
    while (!viewer_->wasStopped ())
    
        viewer_->spinOnce (100);

        // Get lock on the boolean update and check if cloud was updated
        boost::mutex::scoped_lock updateLock(*(updateModelMutex_.get()));
        if((*update_))
        
            // I NEED ALSO TO UPDATE THE NORMALS
            if(!viewer_->updatePointCloud(cloud_, "Triangulated points"))
            
                viewer_->addPointCloud<pcl::PointXYZRGB>(cloud_, *rgb_, "Triangulated points");
                viewer_->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "Triangulated points");
            

            (*update_) = false;
        
        updateLock.unlock();

       
 

提前致谢。

【问题讨论】:

【参考方案1】:

一种方法是移除法线的云并再次添加:

void pclVisualizerThread::operator()()

    // prepare visualizer named "viewer"
    while (!viewer_->wasStopped ())
    
        viewer_->spinOnce (100);

        // Get lock on the boolean update and check if cloud was updated
        boost::mutex::scoped_lock updateLock(*(updateModelMutex_.get()));
        if((*update_))
        
            if(!viewer_->updatePointCloud(cloud_, "Triangulated points"))
            
                viewer_->addPointCloud<pcl::PointXYZRGB>(cloud_, *rgb_, "Triangulated points");
                viewer_->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "Triangulated points");
            
            viewer_->removePointCloud("normals", 0);
            viewer_->addPointCloudNormals<pcl::PointXYZRGB, pcl::Normal> (cloud_, normals_, 150, 0.35, "normals");
            (*update_) = false;
        
        updateLock.unlock();

       
 

【讨论】:

以上是关于PCL:如何更新 pcl::visualizer 中的法线云?的主要内容,如果未能解决你的问题,请参考以下文章

PCL:Visualizer 可视化❤️自定义颜色显示

如何在 xamarin ios pcl 中使用 protobuf-net

将文件下载进度从 PCL 更新到 Xamarin.Android

使用 SQLite 的 sqlite-net-pcl 库更新单行表中单个列的值的简单方法是啥?

准备尝试openFrameworks

PCL-安装