使用双边过滤器和PCL

时间:2015-11-06 19:05:48

标签: point-cloud-library

我正在尝试将双边滤波器(不是快速双边滤波器)与PCL 1.7一起使用,因为我有一个无序点云。我已经能够使其他PCL代码片段工作(所以它不是转换代码),我找不到如何使这个特定的过滤器工作的文档。我正在尝试以下代码,但在调用applyFilter时出现内存访问冲突:

    pcl::PointCloud<pcl::PointXYZI>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZI> ());
    // convert from custom format to pcl format
    convert(world_pts, left_intensities, cloud);

    pcl::search::KdTree<pcl::PointXYZI>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZI>);

    pcl::PointCloud<pcl::PointXYZI> cloud_filtered;

    pcl::BilateralFilter<pcl::PointXYZI> fbFilter; 
    fbFilter.setInputCloud(cloud); 
    fbFilter.setHalfSize(1.0);
    fbFilter.setStdDev(0.2);
    fbFilter.applyFilter(cloud_filtered); 

1 个答案:

答案 0 :(得分:2)

功能:

void pcl::BilateralFilter< PointT >::applyFilter ( PointCloud & output) 

期望引用输出点云 这就是为什么你会遇到内存访问违规

使用:

fbFilter.applyFilter(*cloud_filtered);

代替;)