在点云库中使用快速双边过滤器

时间:2015-11-06 13:52:44

标签: c++ visual-studio filter kinect point-cloud-library

我正在尝试应用双边滤镜来平滑2点云以进行注册。代码如下:

pcl::FastBilateralFilter<pcl::PointXYZRGB> filter;
filter.setInputCloud(input);
filter.setSigmaS(5);
filter.setSigmaR(5e-3);
filter.applyFilter(*output);

结果是一个空点云,我似乎无法弄清楚原因。其他人使用这种方法取得了很大的成功。我已经尝试根据本文(http://people.csail.mit.edu/sparis/bf_course/course_notes.pdf)中的内容操纵我的SigmaS和SigmaR值,但输出没有变化。对此为何的任何想法?感谢信。

2 个答案:

答案 0 :(得分:0)

我的输入云被搞砸了,因为它不是一个“有组织的点云”;也就是说,我的Point Cloud中的两个给定点之间没有关系。 PCL中的双边过滤器需要组织输入点云。 Click here for more info.

由于我使用的是Kinect v2,因此我可以生成有组织的点云;事实上,我把它初始化为有组织的。稍后在我的代码中,我使用cloud-&gt; clear()命令删除了Point Cloud中的所有height,width和isDense信息;但是,我的初衷是删除数据点,以便我可以添加新的点。

答案 1 :(得分:0)

libfreenect2已经有一个kinectv2边缘识别双边滤波器