Point cloud outlier removal 点云异常值移除

从扫描设备收集数据时,生成的点云往往包含想要删除的噪声和伪影(artifacts)。本教程介绍了 Open3D 的异常值删除功能。

Prepare input data 准备输入数据

加载点云,使用voxel_downsample下采样。

print("Load a ply point cloud, print it, and render it")
sample_pcd_data = o3d.data.PCDPointCloud()
pcd = o3d.io.read_point_cloud(sample_pcd_data.path)
o3d.visualization.draw_geometries([pcd],zoom=0.3412,front=[0.4257, -0.2125, -0.8795],lookat=[2.6172, 2.0475, 1.532],up=[-0.0694, -0.9768, 0.2024])print("Downsample the point cloud with a voxel of 0.02")
voxel_down_pcd = pcd.voxel_down_sample(voxel_size=0.02)
o3d.visualization.draw_geometries([voxel_down_pcd],zoom=0.3412,front=[0.4257, -0.2125, -0.8795],lookat=[2.6172, 2.0475, 1.532],up=[-0.0694, -0.9768, 0.2024])

或者使用uniform_down_sample 点云下采样,通过收集每n个点。

print("Every 5th points are selected")
uni_down_pcd = pcd.uniform_down_sample(every_k_points=5)
o3d.visualization.draw_geometries([uni_down_pcd],zoom=0.3412,front=[0.4257, -0.2125, -0.8795],lookat=[2.6172, 2.0475, 1.532],up=[-0.0694, -0.9768, 0.2024])

Select down sample 选择下采样

下面函数使用select_by_index ,它采用二进制掩码(binary mash)来仅输出选定的点。所选点和未所选点将可视化。

def display_inlier_outlier(cloud, ind):inlier_cloud = cloud.select_by_index(ind)outlier_cloud = cloud.select_by_index(ind, invert=True)print("Showing outliers (red) and inliers (gray): ")outlier_cloud.paint_uniform_color([1, 0, 0])inlier_cloud.paint_uniform_color([0.8, 0.8, 0.8])o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud],zoom=0.3412,front=[0.4257, -0.2125, -0.8795],lookat=[2.6172, 2.0475, 1.532],up=[-0.0694, -0.9768, 0.2024])

Statistical outlier removal 统计异常值删除

statistical_outlier_removal删除与平均值相比,与其相邻点距离过大的点。它需要两个输入参数:

nb_neighbors,它指定在计算给定点的平均距离时要考虑的相邻要素数。

std_ratio,允许根据点云中平均距离的标准偏差设置阈值水平。此数字越低,过滤器的激进程度就越高,删除的越多。

print("Statistical oulier removal")
cl, ind = voxel_down_pcd.remove_statistical_outlier(nb_neighbors=20,std_ratio=2.0)
display_inlier_outlier(voxel_down_pcd, ind)

Radius outlier removal 半径异常值删除

radius_outlier_removal移除在给定球体周围具有较少邻居的点。可以使用两个参数来调整筛选器以显示您的数据:

nb_points,允许您选取球体应包含的最小点数。

radius,它定义将用于计算相邻要素的球体的半径。

print("Radius oulier removal")
cl, ind = voxel_down_pcd.remove_radius_outlier(nb_points=16, radius=0.05)
display_inlier_outlier(voxel_down_pcd, ind)

Open3d Point cloud outlier removal 点云异常值移除相关推荐

  1. Guaranteed Outlier Removal for Point Cloud Registration with Correspondences

    1. 问题公式化: 其中,代表函数的参数,是输入点云的索引,他的子集 通常称为一致集,最优的使得获取最大的一致集.将称为inliers,为outliers.(注意这里的问题是求最大一致性点集,而不是I ...

  2. games202:六,实时光线追踪RTRT:Temporal Filtering、联合双边滤波、Outlier Removal、SVGF、RAE

    games202:六,实时光线追踪RTRT:Temporal Filtering.联合双边滤波.Outlier Removal .SVGF.RAE RTRT现状 实时降噪方法 一,Temporal F ...

  3. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

  4. R语言使用car包的outlierTest函数通过假设检验的方法检测回归模型中的异常值(outlier)、输出异常值对应的统计量、p值以及Bonferonnii校正p值

    R语言使用car包的outlierTest函数通过假设检验的方法检测回归模型中的异常值(outlier).输出异常值对应的统计量.p值以及Bonferonnii校正p值 目录

  5. 《cloud+》如果百度云飘走了你该怎么办?

    为什么80%的码农都做不了架构师?>>>    <cloud+>是<[data+++]保护个人隐私的安全套装>系列的一部分,在此之前还有三篇,分别是<c ...

  6. spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

  7. (二)spring cloud微服务分布式云架构-整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢?Spring Cloud大型企业分布式微服务云架构源码请加一七九 ...

  8. 北京供销大数据集团发布SinoBBD Cloud 一体化推动产业云发展

    9月5日,第五届全球云计算大会在上海世博展览馆盛大开幕,国内外顶尖企业汇聚一堂,新一代云计算技术产品纷纷亮相.作为国内领先的互联网基础服务提供商,北京供销大数据集团(以下简称"SinoBBD ...

  9. spring cloud微服务分布式云架构-Spring Cloud简介

    Spring Cloud是一系列框架的有序集合.利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现.注册.配置中心.消息总线.负载均衡.断路器.数据监控等(这里只简单的列了 ...

最新文章

  1. 蚂蚁森林最高效的合种团队—招募有合作精神的队友云植树
  2. android banner阴影,仿照锤子科技官网的banner 3d效果
  3. for循环和数组练习
  4. pygame里面物体闪烁运动_利用自闪烁发光二极管探究小车在倾斜轨道上的运动规律...
  5. 初步使用jeesite代码生成器
  6. python爬虫安装了pycharm还要安装什么_Pycharm安装与使用
  7. 3DSmax里的nurms toggle命令中文版是什么意思
  8. 使用pytorch实现crnn
  9. jQuery的ajax教程
  10. 基于USB数据采集卡(DAQ)与IO模块的热电阻温度采集
  11. 有关龙的成语(词语)、故事、诗歌
  12. 华为服务器用户名密码忘记,电脑坏了,腾讯云华为云忘记宝塔面板登陆名和密码怎么办?...
  13. 将计算机设置成交换机主机名,交换机配置基本使用命令解析
  14. 超详细测试项目——Web电商项目测试点整理.....
  15. C语言文件操作函数总结——超详细
  16. Echarts 里的桑基图
  17. 什么是Socket 编程
  18. 新员工加入企业微信的2种方法:邀请和被邀请
  19. Unity 快速检测本机网络链接状态
  20. 车载DSP音频功放频率响应曲线2.5到20khz增益降太多是什么原因?

热门文章

  1. 输入一串字符,并判断其中英文字符和数字字符的个数——C语言实现(C语言练习)
  2. 中字符转换中文乱码的处理方法
  3. 计算机网络自顶向下方法笔记02
  4. 软件开发好用的工具推荐
  5. iOS 一个错误 Unable to find a specification for
  6. 魔兽worldserver.conf 服务端配置文件说明
  7. 查看docker与宿主机网卡的对应关系,tcpdump在容器外网络抓包
  8. java 正则 提取数字_java使用正则提取字符串中的数字(例如提取短信中的验证码)详解...
  9. codeforces703B
  10. 技巧---数学分析1:变换积分次序