我正在尝试将双边滤波器(不是快速双边滤波器)与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);
答案 0 :(得分:2)
功能:
void pcl::BilateralFilter< PointT >::applyFilter ( PointCloud & output)
期望引用输出点云 这就是为什么你会遇到内存访问违规
使用:
fbFilter.applyFilter(*cloud_filtered);
代替;)