PCL 删除点云中重复的点

一、简介

项目中有三个点云依次要将其拼接起来,然后每个点云的点是500w 个点左右,这样的话我们最终的点云的个数应该是1500w 个点,我用matlab 加载加载了 好长时间,其实如果点云拼接的比较好的话应该也是900w个点左右,我个人拼接的点云在X方向上的误差是0.9u,Y 方向是1u,但是在Z方向是达到10个u,后来想到一个新的方法就是将点云转为Tif 图然后用TIff图加权处理,这个是后话,目前主要是将点云中重复的点(重复的点的概念就是到给点的距离很近的,我这里的点间距是5u,所以我这里设定的搜索距离是小于5u的)。

加权的那个方法的前提是x y要拼的很好,因为这个项目是计算轮廓度的,所以后面取点是很苛刻的,最后使用matlab的拉格朗日差值来计算轮廓

步骤:

1、加载点云

2、设置重复点云的半径R

3、便利每个点,求出R范围的左右点,记录其索引vector<int> v;

4、删除v 中重复的索引

5、删除剩余索引对应的点

注意:这里如果同时都加载了opencv 和PCL中的 FLANN 个库的时候一定要调整顺序,将PCL的调到前面,不然就和opencv 的冲突会报错。

二、代码 

猜你喜欢

转载自blog.csdn.net/weixin_39354845/article/details/130826529