open3d 两种点云滤波算法

这两种滤波非常有用,一定要用好;

半径滤波:

半径滤波器比较简单粗暴。以某点为中心画一个圆计算落在该圆中点的数量,当数量大于给定值时,则保留该点,数量小于给定值则剔除该点。此算法运行速度快,依序迭代留下的点一定是最密集的,但是圆的半径和圆内点的数目都需要人工指定;

统计滤波过滤:

第一次扫描:对每个点,我们计算它到它的所有临近N个点的平均距离。计算出这些距离的均值和标准差

第二次扫描:平均距离在M个标准差范围(由全局距离平均值和方差定义〉之外的点,可被定义为离群点并可从数据集中去除掉。

代码很简单,两行就行了:


point_cloud= o3d.io.read_point_cloud(filename_model)


cl, ind = point_cloud.remove_statistical_outlier(nb_neighbors=60,std_ratio=1)
cl, ind = point_cloud.remove_radius_outlier(nb_points=50, radius=2)



point_cloud = point_cloud.select_by_index(ind)

你可能感兴趣的:(点云及图像-免费,c++,python)