PCL - 过滤掉密集区域中找不到的点

时间:2016-04-06 22:58:29

标签: filtering point-cloud-library point-clouds

我有一个主题的点云,然后我从一个特定平面内的所有点构造一个点云。这点云看起来像这样: enter image description here

我想过滤掉那个矩形中没有的额外点。当我得到飞机的所有点时,就会发生恰好位于同一平面的非相关点。我想过滤掉那些,所以我可以专门处理矩形中的点。

我对使用点云和对象建模非常陌生,所以我很难知道我在寻找什么。我尝试使用StatisticalOutlierRemoval,但是(并不令人惊讶的是)当这些额外的点本身有点密集时,它并不总能获得所有额外的点数。如果我在过滤中更改参数更具侵略性,它会开始从我感兴趣的矩形中删除点。

我知道有很多filters可用,但我真的不知道它们是如何工作的,或者哪一个最适合解决这个问题。我可以通过反复试验来检验每一个,但我希望有人可以指出我正确的方向。有没有办法得到我最终的结果?

2 个答案:

答案 0 :(得分:1)

你可以尝试:

  • 根据云的尺寸和密度,使用值为“r”(setRadiusSearch)和“k”(setMinNeighborsInRadius)的Radious Outlier Removal。作为哑巴的规则,这些值越高,过滤那些您有兴趣过滤的点的机会就越高。

  • 使用Pass Through Filter,如果您知道实际感兴趣的点的坐标,请使用这些坐标来构建一个带有setFilterLimits的“边界框”,这种方式在外面该框将被过滤。

正如您所说,当您尝试更改SOR过滤器的参数时,它开始删除您不想删除的点,可能通过过滤器是最好的选择。

希望这对你有所帮助。

答案 1 :(得分:0)

点云是否组织良好?如果是,您可以尝试使用中值滤波器吗? PCL仅将其提供给点云的z维。您可能还需要修改点云,以使其沿其他维度(x,y)进行过滤。