我有一个主题的点云,然后我从一个特定平面内的所有点构造一个点云。这点云看起来像这样:
我想过滤掉那个矩形中没有的额外点。当我得到飞机的所有点时,就会发生恰好位于同一平面的非相关点。我想过滤掉那些,所以我可以专门处理矩形中的点。
我对使用点云和对象建模非常陌生,所以我很难知道我在寻找什么。我尝试使用StatisticalOutlierRemoval,但是(并不令人惊讶的是)当这些额外的点本身有点密集时,它并不总能获得所有额外的点数。如果我在过滤中更改参数更具侵略性,它会开始从我感兴趣的矩形中删除点。
我知道有很多filters可用,但我真的不知道它们是如何工作的,或者哪一个最适合解决这个问题。我可以通过反复试验来检验每一个,但我希望有人可以指出我正确的方向。有没有办法得到我最终的结果?
答案 0 :(得分:1)
你可以尝试:
根据云的尺寸和密度,使用值为“r”(setRadiusSearch
)和“k”(setMinNeighborsInRadius
)的Radious Outlier Removal。作为哑巴的规则,这些值越高,过滤那些您有兴趣过滤的点的机会就越高。
使用Pass Through Filter,如果您知道实际感兴趣的点的坐标,请使用这些坐标来构建一个带有setFilterLimits
的“边界框”,这种方式在外面该框将被过滤。
正如您所说,当您尝试更改SOR过滤器的参数时,它开始删除您不想删除的点,可能通过过滤器是最好的选择。
希望这对你有所帮助。
答案 1 :(得分:0)
点云是否组织良好?如果是,您可以尝试使用中值滤波器吗? PCL仅将其提供给点云的z维。您可能还需要修改点云,以使其沿其他维度(x,y)进行过滤。