当前位置: 首页 > 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;就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解…...

自定义SpringMVC拦截器,实现内外网访问控制功能

这篇文章简单介绍如何自定义一个SpringMVC拦截器&#xff0c;并通过拦截器实现具体的功能。 首先&#xff0c;需要创建一个自定义的拦截器类&#xff0c;该类实现HandlerInterceptor接口。 package cn.edu.sgu.www.mhxysy.interceptor;import cn.edu.sgu.www.mhxysy.feign.Fei…...

在pycharm中配置GPU训练环境(Anaconda)(yolov5)

目录 1. 具体的配置过程&#xff1a; 2. 在指定位置&#xff08;路径&#xff09;创建虚拟环境&#xff1a; 3. conda常用命令&#xff1a; 4: 在跑模型时候遇到的一些问题&#xff1a; 4.1: conda添加python解释器找不到对应的python.exe文件 4.2: 报错“OSError: [WinErr…...

【LeetCode刷题-链表】--146.LRU缓存

146.LRU缓存 方法一&#xff1a;哈希表双向链表 使用一个哈希表和一个双向链表维护所有在缓存中的键值对 双向链表按照被使用的顺序存储了这些键值对&#xff0c;靠近头部的键值对是最近使用的&#xff0c;而靠近尾部的键值对是最久使用的哈希表即为普通的哈希映射&#xff0…...

mysql 问题解答

01 Mysql有哪些数据类型 MySQL支持多种数据类型,这些类型可以分为几个大的类别:数值类型、日期和时间类型、字符串(字符和字节)类型、空间类型、JSON类型。下面是每种类型的简要说明和用途,以及示例。 数值类型 整型: TINYINT:非常小的整数,如性别标识(0代表女性,1代…...

组件与Props:React中构建可复用UI的基石

目录 组件&#xff1a;构建现代UI的基本单位 Props&#xff1a;组件之间的数据传递 Props的灵活性&#xff1a;构建可配置的组件 组件间的通信&#xff1a;通过回调函数传递数据 总结&#xff1a; 组件&#xff1a;构建现代UI的基本单位 组件是前端开发中的关键概念之一。…...

接口框架第二篇—unittest/pytest 有什么区别

1.用例编写方法 unittest 1&#xff09;测试文件必须导入unittest包 2&#xff09;测试类必须继承unittest.TestCase 3&#xff09;测试类必须有unittest.main()方法 4&#xff09;测试方法必须要以test_打头 pytest 1&#xff09;测试文件名要以test_打头&#xff0c;或…...

Window 7 / 10 / 11 .bat .cmd 中文路径不识别解决方案

一般都是编码问题 我们在批处理的第一行加入: chcp 65001 进行转为UTF-8 编码就可以实现中文路径识别...

Linux命令(113)之rev

linux命令之rev 1.rev介绍 linux命令rev是将文件中的每行内容已字符为单位反向输出&#xff0c;即第一个字符最后输出&#xff0c;最后一个字符最先输出 2.rev用法 rev [参数] filename rev参数 参数说明-V显示版本信息-h显示帮助信息 3.实例 3.1.显示rev的版本信息 命令…...

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite&#xff08;sql&#xff09;是一款开源轻量级的数据库软件&#xff0c;不需要server&#xff0c;可以集成在其他软件中&#xff0c;非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite&#xff08;Qt自带驱动&#xff09;。 二、下载和配置 2.1 SQLite下载…...

若依分离版——配置多数据源(mysql和oracle),实现一个方法操作多个数据源

目录 一、若依平台配置 二、编写oracle数据库访问的各类文件 三. 一个方法操作多个数据源 一、若依平台配置 1、在ruoyi-admin的pom.xml添加依赖 <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version…...