两种点云去除噪音数据的滤波算法(附open3d python代码)

两种点云去除噪音数据的滤波算法(附open3d python代码)_第1张图片

 

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


统计滤波过滤:
第一次扫描:对每个点,我们计算它到它的所有临近N个点的平均距离。计算出这些距离的均值和标准差
第二次扫描:平均距离在M个标准差范围(由全局距离平均值和方差定义〉之外的点,可被定义为离群点并可从数据集中去除掉。



代码如下:

# coding:utf-8
import copy  # 点云深拷贝
import open3d as o3d

# -------------------------- 加载点云 ------------------------
print("->正在加载点云... ")
point_cloud = o3d.io.read_point_cloud("gongjian1.pcd")
pcd_ty = copy.deepcopy(point_cloud).translate((0, 1200, 0))

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

你可能感兴趣的:(点云处理代码合集,算法,人工智能)