当前位置: 首页 > news >正文

[概述] 点云滤波器

拓扑结构

点云是一种三维数据,有几种方法可以描述其空间结构,以利于展开搜索

https://blog.csdn.net/weixin_45824067/article/details/131317939

        KD树

         头文件:pcl/kdtree/kdtree_flann.h

         函数:pcl::KdTreeFLANN

         作用:

                用于范围搜索:比如搜索给定点指定半径内存在的点

                用于最近邻居搜索:比如搜索距离指定点最近的点

                用于支持其他高级操作

        八叉树

         头文件:pcl/octree/octree_search.h

          函数:pcl::octree::OctreePointCloudSearch

         作用:

                用于空间搜索:与前面类似,搜索指定点附近的点,或以体素为单位搜索,直接返回指定点锁所在的体素,或直接搜索返回K个邻近点,或搜索指定半径内的邻近点

                体素化:通过八叉树将点云数据分割为一系列体素(立方体)。每个体素代表一个固定大小的区域,并包含在该区域内的点云数据。如此,可以估计点云密度,表面重建等,支持更高级的点云处理任务

滤波器

https://blog.csdn.net/weixin_45824067/article/details/131334072

点云传统滤波算法_点云高斯滤波_Man_1man的博客-CSDN博客

上面两个链接都有代码

分割功能滤波       

分割功能滤波是一种常用的点云处理方法,可以将点云数据分割为不同的部分,以便对每个部分进行独立处理。

 直通滤波

         头文件:pcl/filters/passthrough.h

         函数:pcl::PassThrough

         介绍:直通滤波是一种基于范围过滤的方法,用于通过限制某个维度的范围来滤除点云数据中不需要的部分

        作用:用于去除在指定范围之外的离群点、空间限定区域或多余的数据。直通滤波通常在建立好KD树之后进行,以提高滤波的效率。

 条件滤波

          头文件:pcl/filters/conditional_removal.h

          函数:pcl::ConditionalRemoval

          介绍:条件滤波(Conditional Filter)是一种基于条件的点云滤波方法,可以根据给定的条件筛选出满足条件的点云数据,从而去除不需要的点云数据,有点分段函数的味道,当点云在一定范围则留下,不在则舍弃。直通滤波器是一种较简单的条件滤波器,其更像是一个不带有滤波核的工具。

红色区域为过滤后被保留下的点云,绿色为被过滤掉的点云

         提取索引滤波

          头文件:pcl/filters/extract_indices.h

          函数:pcl::ExtractIndices

          介绍:提取索引滤波(Extract Indices Filter)是一种常用的点云滤波方法,其主要目的是提取指定索引范围内的点云数据,以去除不需要的点云数据。

下采样类滤波

        体素网格下采样

         头文件:pcl/filters/voxel_grid.h

         函数:pcl::VoxelGrid

         介绍:体素滤波根据给定的点云构造一个三维体素栅格并进行下采样达到滤波的效果。通过输入的点云数据创建一个三维体素栅格,然后将每个体素内所有的点都用该体素内的代表点(重心)来近似,这样就大大减少了数据量。体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能,但是会移动点的位置。此外体素滤波器可以去除一定程度的噪音点及离群点。

        特点:体素滤波根据给定的点云构造一个三维体素栅格并进行下采样达到滤波的效果。通过输入的点云数据创建一个三维体素栅格
,然后将每个体素内所有的点都用该体素内的代表点(重心)来近似,这样就大大减少了数据量。体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能,但是会移动点的位置。此外体素滤波器可以去除一定程度的噪音点及离群点。
 

左:原数据  右:体素下采样结果

         均匀采样滤波       

         头文件:pcl/filters/uniform_sampling.h

         函数:pcl::UniformSampling

         介绍:均匀采样滤波基本上等同于体素滤波器,但是其不改变点的位置。下采样后,其点云分布基本均匀,但是其点云的准确度要好于体素滤波,因为没有移动点的位置

去除噪声点类滤波

         统计学离群点移除过滤器

         头文件:pcl/filters/statistical_outlier_removal.h

         函数:pcl::StatisticalOutlierRemoval

         介绍:用于去除明显离群点。离群点特征是在空间中分布稀疏。激光扫描通常会生成不同点密度的点云数据集,测量误差也会导致稀疏的异常值/离群点。考虑到离群点的特征,则可以定义某处点云小于某个密度,既点云无效。

         具体步骤:对于每个点,计算从它到其最近的k个点平均距离。通过假设点云中其点的距离结果分布是具有均值和标准差的高斯分布,根据给定均值与方差,平均距离在标准范围之外的点,可以被定义为离群点并从数据中去除。

         特点:主要是根据密度去除离群点(去噪),对密度差异较大的离群点效果较好。

     半径离群值滤波

           头文件:pcl/filters/radius_outlier_removal.h

           函数:pcl::RadiusOutlierRemoval

           介绍:半径滤波(Radius Outlier Removal Filter)半径滤波通过计算每个点与周围点的距离,判断该点是否为离群点,并将其从点云数据中去除。

          步骤:以某点为中心画一个圆计算落在该圆中点的数量,当数量大于给定值时,则保留该点,数量小于给定值则剔除该点。

          特点:半径滤波器与统计滤波器相比更加简单粗暴。此算法运行速度快,依序迭代留下的点一定是最密集的,但是圆的半径和圆内点的数目都需要人工指定。

红色区域为过滤后被保留下的点云,绿色为被过滤掉的点云

         高斯滤波

        

          头文件:pcl/filters/convolution.h  pcl/filters/convolution_3d.h   

          函数:pcl::filters::GaussianKernel 或pcl::GaussianFilter类  pcl::filters::Convolution3D

          介绍:高斯滤波(Gaussian Filter)其主要目的是平滑点云数据以去除噪声。高斯滤波器的基本思想是将每个点周围的点用高斯函数进行加权平均,从而达到平滑点云数据的效果。其李永乐高斯函数经傅里叶变换后仍具有高斯函数的特性,令指定区域的权重为高斯分布,从而将高频的噪声点滤除。在点云处理中,高斯滤波通常被用于去除高频噪声。

         特点:高斯滤波平滑效果较好,但是边缘角点也会被较大的平滑。


         双边滤波

         头文件:pcl/filters/bilateral.h

         函数:pcl::BilateralFilter

         介绍:其主要目的是平滑点云数据以去除噪声,同时保留点云数据的边缘和细节信息。双边滤波器的基本思想是将每个点周围的点用高斯函数和距离函数进行加权平均,从而达到平滑点云数据的效果。双边滤波既可以平滑点云数据,又可以保留边缘和细节信息,因此在点云处理中应用广泛。此外,去噪效果效果需要根据实际点云情况,不是所有需要平滑和保留边缘的情况使用;有两个参数需要调整,需要多次实验。
 

         特点:双边滤波是结合图像的空间[像素范围域(range domain)]邻近度和像素值相似度的一种折中处理,同时考虑空域[空间域(spatial domain)]信息和灰度相似性,达到保边去噪(既有效地对空间三维模型表面进行降噪,又可以保持点云数据中的几何特征信息,避免三维点云数据被过渡光滑)的目的。对点云数据的小尺度起伏噪声进行平滑光顺。

        注意:能使用双边滤波的点云必须得包含强度字段。现有的points类型中,只有PointXYZI和PointXYZINormal有强度信息。FastBilateralFilter只适用于有序点云。

BF为双边滤波,MED为中值滤波,AVE为均值滤波

        

         随机采样一致滤波

           头文件:pcl/sample_consensus/ransac.h   

                          pcl/sample_consensus/sac_model_plane.h

                          pcl/sample_consensus/sac_model_sphere.h

           函数:pcl::RandomSampleConsensus

           介绍:随机采样一致滤波(Random Sample Consensus Filter,RANSAC Filter)其主要目的是去除点云数据中的离群点(outliers)。随机采样一致滤波器的基本思想是随机选择一组点作为模型,计算其他点到该模型的距离,从而找到最佳的模型,并将该模型上的点作为局内点(inliers),将其他点作为离群点(outliers)进行删除。随机采样一致滤波既可以去除离群点,又可以保留点云数据的形状和结构信息,因此在点云处理中应用广泛。

           特点:主要用于排除错误样本,可以从一组包含“局外点”的观测数据中,通过迭代的方式估计数学模型参数。

声明:本文总结于上列参考文章,系学习所用。

相关文章:

[概述] 点云滤波器

拓扑结构 点云是一种三维数据,有几种方法可以描述其空间结构,以利于展开搜索 https://blog.csdn.net/weixin_45824067/article/details/131317939 KD树 头文件:pcl/kdtree/kdtree_flann.h 函数:pcl::KdTreeFLANN 作用&#xff1a…...

[笔记] 汉字判断

参考博客&#xff1a;如果判断一个字符是西文字符还是中文字符 结论&#xff1a; 汉字转数字后&#xff0c;会占两位字符位&#xff0c;两位都是负数。 参考下面代码 输入&#xff1a;你 输出&#xff1a;01 #include<bits/stdc.h> using namespace std; int main() {cha…...

Android开发笔记(三)—Activity篇

活动组件Activity 启动和结束生命周期启动模式信息传递Intent显式Intent隐式Intent 向下一个Activity发送数据向上一个Activity返回数据 附加信息利用资源文件配置字符串利用元数据传递配置信息给应用页面注册快捷方式 启动和结束 &#xff08;1&#xff09;从当前页面跳到新页…...

nodejs+vue+python+php在线购票系统的设计与实现-毕业设计

伴随着信息时代的到来&#xff0c;以及不断发展起来的微电子技术&#xff0c;这些都为在线购票带来了很好的发展条件。同时&#xff0c;在线购票的范围不断增大&#xff0c;这就需要有一种既能使用又能使用的、便于使用的、便于使用的系统来对其进行管理。在目前这种大环境下&a…...

基于Taro + React 实现微信小程序半圆滑块组件、半圆进度条、弧形进度条、半圆滑行轨道(附源码)

效果&#xff1a; 功能点&#xff1a; 1、四个档位 2、可点击加减切换档位 3、可以点击区域切换档位 4、可以滑动切换档位 目的&#xff1a; 给大家提供一些实现思路&#xff0c;找了一圈&#xff0c;一些文章基本不能直接用&#xff0c;错漏百出&#xff0c;代码还藏着掖…...

城市内涝解决方案:实时监测,提前预警,让城市更安全

城市内涝积水问题是指城市地区在短时间内遭遇强降雨后&#xff0c;地面积水过多&#xff0c;导致城市交通堵塞、居民生活不便、财产损失等问题。近年来&#xff0c;随着全球气候变化和城市化进程的加速&#xff0c;城市内涝积水问题越来越突出&#xff0c;成为城市发展中的一大…...

编译正点原子LINUXB报错make: arm-linux-gnueabihf-gcc:命令未找到

编译正点原子LINUX报错make: arm-linux-gnueabihf-gcc&#xff1a;命令未找到 1.报错内容2.解决办法3./bin/sh: 1: lzop: not found4.编译成功 1.报错内容 make: arm-linux-gnueabihf-gcc&#xff1a;命令未找到CHK include/config/kernel.releaseCHK include/generat…...

工地现场智慧管理信息化解决方案 智慧工地源码

智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术&#xff0c;以PC端&#xff0c;移动端&#xff0c;设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等…...

Javaweb之HTML,CSS的详细解析

2. HTML & CSS 1). 什么是HTML ? HTML: HyperText Markup Language&#xff0c;超文本标记语言。 超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大。除了文字信息&#xff0c;还可以定义图片、音频、视频等内容。 标记语言&#xff1a;由标签构成的语言…...

基于python+django+vue开发的酒店预订管理系统 - 毕业设计 - 课程设计

文章目录 源码下载地址项目介绍项目功能界面预览项目备注毕设定制&#xff0c;咨询 源码下载地址 点击这里下载源码 项目介绍 该系统是基于pythondjango开发的酒店预定管理系统。适用场景&#xff1a;大学生、课程作业、毕业设计。学习过程中&#xff0c;如遇问题可在github…...

使用vscode实现远程开发,并通过内网穿透在公网环境下远程连接

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…...

ArrayList集合2

ArrayList集合的一些方法 ⑥chear()从列表中移除所有元素 ⑦.isEmpty()判断列表中是否包含元素&#xff0c;不包含返回true&#xff0c;否则返回false public class Test{public static void main(String[] args){Arraylist<String> list new Arraylist<String>()…...

vue+asp.net Web api前后端分离项目发布部署

一、前后端项目介绍 1.前端项目是使用vue脚手架进行创建的。 脚手架版本&#xff1a;vue/cli 5.0.8 编译器版本&#xff1a;vs code 1.82.2 2.后端是一个asp.net Core Web API 项目 后端框架版本&#xff1a;.NET 6.0 编译器版本&#xff1a;vs 2022 二、发布部署步骤 第…...

iOS App Store上传项目报错 缺少隐私政策网址(URL)解决方法

​ iOS App Store上传项目报错 缺少隐私政策网址(URL)解决方法 一、问题如下图所示&#xff1a; ​ 二、解决办法&#xff1a;使用Google浏览器&#xff08;翻译成中文&#xff09;直接打开该网址 https://www.freeprivacypolicy.com/free-privacy-policy-generator.php 按…...

如何使用Ruby 多线程爬取数据

现在比较主流的爬虫应该是用python&#xff0c;之前也写了很多关于python的文章。今天在这里我们主要说说ruby。我觉得ruby也是ok的&#xff0c;我试试看写了一个爬虫的小程序&#xff0c;并作出相应的解析。 Ruby中实现网页抓取&#xff0c;一般用的是mechanize&#xff0c;使…...

一文深入了解 CPU 的型号、代际架构与微架构

在 10 月 16 号的时候&#xff0c;Intel 正式发布了第 14 代的酷睿处理器。但还有很多同学看不懂这种发布会上发布的各种 CPU 参数。借着这个时机&#xff0c;给大家深入地讲讲 CPU 的型号规则、代际架构与微架构方面的知识。 CPU 在整个计算机硬件中、技术体系中都算是最最重…...

Java通过cellstyle属性设置Excel单元格常用样式全面总结

最近做了一个导出Excel的功能&#xff0c;导出是个常规导出&#xff0c;但是拿来模板一看&#xff0c;有一些单元格的样式设置&#xff0c;包括合并&#xff0c;背景色&#xff0c;字体等等&#xff0c;毕竟不是常用的东西&#xff0c;需要查阅资料完成&#xff0c;但是搜遍全网…...

如何查看WiFi密码

本文分享一下手机和电脑上如何查看已经连接过的WiFi的密码&#xff0c;然后好分享给他人。 手机上分享wifi密码很简单&#xff0c;步骤如下&#xff1a; 生成二维码&#xff0c;读取WiFi密码 1、首先&#xff0c;在“设置”中找到“无线网络”&#xff0c;点击需要查找密码的Wi…...

2023NOIP A层联测22 总结

T1 简单分析了性质&#xff0c;发现可以用双指针求值&#xff0c;后面又发现可以用类似于线段树求最大子段和的方式维护。用时 40min T2 是期望&#xff0c;想了 30min 没有思路&#xff0c;于是打暴力&#xff0c;但是打的时候没有想清楚&#xff0c;就打了很久&#xff0c;大…...

HTTPS的加密方式超详细解读

在了解https的加密方式之前&#xff0c;我们需要先行了解两个特别经典的传统加密方式&#xff1a; 1、对称加密 1.1、定义 需要对加密和解密使用相同密钥的加密算法。所谓对称&#xff0c;就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

轻量级Docker管理工具Docker Switchboard

简介 什么是 Docker Switchboard &#xff1f; Docker Switchboard 是一个轻量级的 Web 应用程序&#xff0c;用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器&#xff0c;使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...

41道Django高频题整理(附答案背诵版)

解释一下 Django 和 Tornado 的关系&#xff1f; Django和Tornado都是Python的web框架&#xff0c;但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架&#xff0c;鼓励快速开发和干净、实用的设计。它遵循MVC设计&#xff0c;并强调代码复用。Django有…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录

#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...