Open3D常用点云滤波

这篇具有很好参考价值的文章主要介绍了Open3D常用点云滤波。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在点云处理中,过密的点云需要下采样,离群点和噪声点需要去除,通过滤波的方法,可以抽稀点云,把离群点去除,以便进行下一步处理

open3d中,很多滤波器已经被封装成了对应的方法(源码是C++)

1.直通滤波

直通滤波过滤指定维度(x,y,z)内,指定值域外的点

# 定义直通滤波函数
def pass_through(cloud, limit_min=0, limit_max=10, filter_value_name="z"):
 
    points = np.asarray(cloud.points)

    if filter_value_name == "x":

        ind = np.where((points[:, 0] >= limit_min) & (points[:, 0] <= limit_max))[0]
        x_cloud = pcd.select_by_index(ind)
        return x_cloud

    elif filter_value_name == "y":

        ind = np.where((points[:, 1] >= limit_min) & (points[:, 1] <= limit_max))[0]
        y_cloud = cloud.select_by_index(ind)
        return y_cloud

    elif filter_value_name == "z":

        ind = np.where((points[:, 2] >= limit_min) & (points[:, 2] <= limit_max))[0]
        z_cloud = pcd.select_by_index(ind)
        return z_cloud
pcd = o3d.io.read_point_cloud("./data/test.ply")
filtered_cloud = pass_through(pcd,limit_min=0,limit_max=50,
                             filter_value_name="y")

2.体素下采样

下采样

首先根据输入点云,计算一个正好包裹点云的长方体,然后根据给定的体素分辨率分割成小正方体(体素),最后用非空体素的质心或者中心坐标代替原来的点

调用o3d函数,参数只有一个:给定的体素分辨率

pcd = o3d.io.read_point_cloud("./data/test.ply")
pcd.voxel_down_sample(voxel_size = 0.05)

3.均匀下采样

也是下采样

通过构建球体,选择距离球心最近的点采样,比起体素下采样,均匀下采样不移动点本身的位置

调用o3d函数,参数只有一个:每k个点保留一个点

pcd = o3d.io.read_point_cloud("./data/test.ply")
pcd =pcd.uniform_down_sample(every_k_points = 3)

4.统计滤波

去除分布稀疏的点

对于点云中的每个点,计算到最近k个点的平均距离,然后假设结果构成高斯分布,过滤平均距离大于标准差的点

调用o3d函数,参数有两个:文章来源地址https://www.toymoban.com/news/detail-464049.html

# nb_neighbors:最近k个点    std_ratio:基于标准差的阈值,越小滤除点越多
cl,ind = pcd.remove_statistical_outlier(nb_neighbors=5,std_ratio=1)
pcd = pcd.select_by_index(ind)

5.半径滤波

也是去除分布稀疏的点

以每个点为中心建立给定半径的球体,移除球体中点的数量小于给定阈值的点

调用o3d函数,参数有两个:

# nb_points:基于球体内包含点数量的阈值  radius:半径
cl,ind = pcd.remove_radius_outlier(nb_points,radios=1)
pcd = pcd.select_by_index(ind)

到了这里,关于Open3D常用点云滤波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 『OPEN3D』1.1 点云处理 python篇

    『OPEN3D』1.1 点云处理 python篇

    目录 1.open3d中的点云IO 2.点云的可视化 3 点云voxel下采样 4. 顶点法线估计 5.最小外界矩 6. 凸包计算 7. 点云距离计算 8. DBSCAN clustering聚类 9. RANSAC(Random Sample Consensus)  10. 点云平面分割 11. 隐藏点移除 12.outliers移除 13 最远点采样(Farthest Point Sample) 专栏地址:https://blog.csdn.net/

    2024年02月02日
    浏览(27)
  • 基于Open3D的点云处理16-特征点匹配

    基于Open3D的点云处理16-特征点匹配

    将点云数据统一到一个世界坐标系的过程称之为点云配准或者点云拼接。(registration/align) 点云配准的过程其实就是找到同名点对;即找到在点云中处在真实世界同一位置的点。 常见的点云配准算法: ICP、Color ICP、Trimed-ICP 算法流程: 选点: 确定参与到配准过程中的点集。 匹

    2024年02月10日
    浏览(18)
  • 【点云处理教程】00计算机视觉的Open3D简介

    【点云处理教程】00计算机视觉的Open3D简介

            Open3D 是一个开源库,使开发人员能够处理 3D 数据。它提供了一组用于 3D 数据处理、可视化和机器学习任务的工具。该库支持各种数据格式,例如 .ply、.obj、.stl 和 .xyz,并允许用户创建自定义数据结构并在程序中访问它们。 Open3D 广泛应用于机器人、增强现实和自

    2024年02月14日
    浏览(11)
  • Open3D点云数据处理(二十):最小二乘直线拟合(三维)

    专栏目录:Open3D点云数据处理(Python) 最小二乘三维直线拟合的原理是通过最小化数据点到直线距离的平方和,找到最优的直线模型来拟合给定数据集。这个距离是指数据点到直线的垂线距离。 三维直线通常表示为两个平面的交线,形如 { A

    2024年02月12日
    浏览(50)
  • Open3D点云数据处理(十九):最小二乘直线拟合(矩阵方程法)

    专栏目录:Open3D点云数据处理(Python) 最小二乘直线拟合是一种常用的数据拟合方法,它的目标是找到一条直线,使得该直线和样本数据之间的误差平方和最小。从矩阵方程的角度来看,最小二乘直线拟合可以看作是求解一个超定线性方程组的问题。 具体来说,我们假设有

    2024年02月13日
    浏览(37)
  • open3d点云平移

    open3d点云平移

    功能简介 open3d中点云的平移函数为:pcd.translate((tx, ty, tz), relative=True)。当relative为True时,(tx, ty, tz)表示点云平移的相对尺度,也就是平移了多少距离。当relative为False时,(tx, ty, tz)表示点云中心(质心)平移到的指定位置。质心可以坐标可以通过pcd.get_center()得到。 代码

    2024年01月22日
    浏览(20)
  • Open3d点云对象详解

    Open3d点云对象详解

    PointCloud 是open3d中用于点云处理的类,封装了包括几何变换、数据滤波、聚类分割等一系列实用算法。如无特别说明,本例中所有例程均基于斯坦福兔子的点云模型,下载地址:斯坦福标准模型 读取和清除点云 一般点云数据的读取方法属于 open3d.io 的内容,但点云类也提供了

    2023年04月19日
    浏览(34)
  • Open3D 详解:点云裁剪实战

    Open3D 详解:点云裁剪实战 在进行点云处理时,经常需要对点云进行裁剪操作,以去除无用的噪点或仅保留感兴趣区域内的点云。Open3D 是一个广泛应用于三维数据处理的开源库,提供了简单易用的点云裁剪方法。 以下是一个基于 Open3D 的点云裁剪实战例程。首先,我们导入需

    2024年02月06日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包