Open3D 基于统计滤波去除噪点(5)

2024-01-08 21:37:07

Open3D 基于统计滤波去除噪点(5)

一、什么是统计滤波

统计滤波是一种常用的点云滤波方法,用于去除噪声和异常点。在统计滤波中,通过计算每个点邻域内的统计特征(如平均值和标准差),可以识别出与周围点不太相似的点,并将其视为噪声或异常点进行去除。这种方法通常使用一个固定大小的邻域窗口来计算统计特征,然后根据设定的阈值将点分类为内部点或者离群点。

统计滤波的优点包括简单易懂、计算高效,并且能够有效去除一些离群点和小型噪声。
在这里插入图片描述

二、具体实现

1.代码

import open3d as o3d

# 读取点云数据
point_cloud = o3d.io.read_point_cloud("D:\\shuju\\滤波前点云.pcd")

# 设置统计滤波的参数
# 这里以k=20和std_ratio=2.0为例
cl, ind = point_cloud.remove_statistical_outlier(nb_neighbors=20, std_ratio=2.0)

# 根据滤波结果创建新的点云
filtered_point_cloud = point_cloud.select_by_index(ind)

# 创建可视化窗口并添加原始点云和滤波后的点云
vis_original = o3d.visualization.Visualizer()
vis_filtered = o3d.visualization.Visualizer()
vis_original.create_window(width=800, height=600)
vis_filtered.create_window(width=800, height=600)
vis_original.create_window()
vis_filtered.create_window()
vis_original.add_geometry(point_cloud)
vis_filtered.add_geometry(filtered_point_cloud)

# 显示原始点云和滤波后的点云
vis_original.run()
vis_filtered.run()

# 写出滤波后的点云数据
o3d.io.write_point_cloud("D:\\shuju\\结果点云.pcd", filtered_point_cloud)

文章来源:https://blog.csdn.net/weixin_44329757/article/details/135466416
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。