matlab 点云滤波(中值、均值、高斯滤波)代码

news2024/9/23 1:32:45

点云中值、均值、高斯滤波

介绍一下滤波函数

smoothdata: 对含噪数据进行平滑处理
B = smoothdata(___,method) 为上述任一语法指定平滑处理方法。例如,B = smoothdata(A,'sgolay') 使用 Savitzky-golay 滤波器对 A 中的数据进行平滑处理。

 Method-平滑处理方法

"movmean"(默认)|'movmedian'|'gaussian'|'lowess'|'loess'|'rlowess'|'rloess'|'sgolay'

  • 'movmean'   -A的每个窗口内的移动平均值,此方法对于减少数据中的周期性趋势很有用。
  • 'movmedian'  -A的每个窗口的移动中位数。当存在离群值时,此方法对于减少数据中的周期性区域很有用。
  • 'gaussian'   -A的每个窗口内的高斯加权移动平均值
  • 'lowess'  -A的每个窗口内的线性回归。该方法可能会耗费大量的计算资源但会减少不连续性
  • 'loess'  -A 的每个窗口内的二次回归。此方法的计算开销略高于‘lowess’。
  • 'rlowess'  -A的每个窗口内的稳健性线性回归。此方法比lowess的方法的计算开销更大,不过它处理离群值时更为稳健
  • 'rloess'  -A 的每个窗口内的稳健二次回归。此方法比loess方法的计算量开销更大,不过它在处理离群值时更为稳健
  • 'sgolay'   -Savitzky-Golay滤波器,它根据在A的每个窗口上拟合的二次多项式进行平滑处理。当数据变化很快时,此方法可能比其他方法更有效。
clc;clear all;close all;

%点云按高程进行赋色
%首先按照Z轴方向求取所在点云的高程极值(包括高程最大值与最小值),然后将高程归一化到0~255范围内,最后采用matlab中的colormap颜色染函数进行赋色并保存渲染结果到点云。
%读取点云
filename='E:\程序库\点云\规则点云\bunny.pcd';
ptCloud=pcread(filename);

x=ptCloud.Location(:,1);
y=ptCloud.Location(:,2)
z=ptCloud.Location(:,3)

zMIN=ptCloud.ZLimits(2)
zMAX=ptCloud.ZLimits(1)

color=hsv(256);
%hsv:以三列数组形式返回 hsv 颜色图,其中包含的行数与当前图窗的颜色图相同。如果不存在图窗,则行数等于默认长度 256。数组中的每一行包含一种特定颜色的红、绿、蓝强度。强度介于 [0,1] 范围内。
pccolor=zeros(length(z),3);%返回当前点云的颜色图

for i =1:length(z)
    index=floor(255*(z(i)-zMIN)/(zMAX-zMIN))+1;%将高程归一化到[0,255]
    pccolor(i,:)=color(index,:);%将高度为index的对应的hsv颜色图赋值给点云的颜色图。
end

%添加高斯噪声,均值为0,标准差为0.002
noise=normrnd(0,0.002,size(ptCloud.Location));
addgaussian=ptCloud.Location+noise;

%高斯平滑
pt_gaussiansmooth=smoothdata(addgaussian,'gaussian');
%均值平滑
pt_movmeansmooth=smoothdata(addgaussian,'movmean');
%中值平滑
pt_movmediansmooth=smoothdata(addgaussian,'movmedian');

%可视化原始点云
figure;subplot(221);pcshow(filename);title('原始点云');
%可视化高程赋色后的点云
ptColor2 = pointCloud(ptCloud.Location,"Color",pccolor);
subplot(222);pcshow(ptColor2);title('高程赋色后的点云');
colorbar;%显示颜色带
%可视化添加高斯噪声后的点云
subplot(2,2,[3,4]);pcshow(addgaussian);title('添加高斯噪声后的点云')

figure;subplot(221);pcshow(addgaussian);title('添加高斯噪声后的点云')
subplot(222);pcshow(pt_gaussiansmooth);title('高斯平滑');
subplot(223);pcshow(pt_movmeansmooth);title('均值平滑');
subplot(224);pcshow(pt_movmediansmooth);title('中值平滑');

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java实现修改excel中数据格式

目录 背景:过程:方案:个人想法:总结:1、清楚边界,全局观2、工欲善其事,必先利其器3、别总想着改源码,别总觉得自己做不出来,要给自己积极的心理暗示。有用。 背景&#x…

基于深度强化学习训练《街头霸王·二:冠军特别版》通关关底 BOSS -智能 AI 代理项目上手

文章目录 SFighterAI项目简介实现软件环境项目文件结构 运行指南环境配置验证及调整gym环境: gym-retro 游戏文件夹错误提示及解决Could not initialize NNPACK!错误提示:libGL error: MESA-LOADER: failed to open swrast 运行测试训练模型查看曲线 Tip…

《Redis设计与开发》读书笔记

《Redis设计与实现》读书笔记 简单动态字符串 SDS的定义 结构: buf数组:用于保存字符串 len属性:记录SDS中保存字符串的长度 free属性:记录buf中未使用字节数量 遵循C字符串以空字符串结尾的惯例,保存空字符串的…

默认成员函数之构造函数,构造函数的特点,创建,调用与对象创建的一语双关,默认构造函数等

内置类型与自定义类型 C当中的类型的话分为两类:一种就是内置类型/基本类型,就是c语言自带的那些类型基本类型,如int, char, double, 指针(任何类型的指针,因为指针就是地址嘛)等等;还有就是自…

某安全对抗行走APP逆向分析

1.定位url 抓包: https://api5.xxxx.com/xxx-rest-service/message/fun_getnearby 看一下参数: opentime:时间戳 reqdata:base64编码 sign 未知,需要解密 # -*- coding: utf-8 -*- # @Author : Codeooo # @Time : 2022-10-14import frida, sysm199a = "&qu…

learn_C_deep_5 (语句和表达式的概念、if语句的多种语法结构、C语言有没有布尔类型、“零值”的比较)

目录 语句和表达式的概念 if语句的多种语法结构 注释的便捷方法(环境vs) if语句执行的过程 逻辑与&& 逻辑或|| 运算关系的顺序 ​编辑 C语言有没有布尔类型 C99标准 sizeof(bool)的值为多少? _Bool原码 BOOL、TRUE、…

IT_开发提测标准规范

背景 公司 IT 规模小,开发提测质量差,流程不规范,导致测试任务重,于是推行 :IT_开发提测标准规范,正文如下;拟定开发提测标准规范后,测试与项目经理内部评审后,发至IT群…

低相位噪声链路调试分析

上图为原始状态,与项目结项评审指标差不多,确实存在几个噪声比较差的点。 频率分布大约在几Hz,20K,50K左右。 由于测试时由子卡进行输出,采用直接进行直接输出,以看出,明显的尖峰已经没有了,只剩下20K左右的尖峰,但是总体来说,效果很差,可能时单端输出的问题。试…

【SVN已解决】svn下载成功图标不显示解决方法

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

【小技巧】word文档编辑技巧(一)

文章目录 一、显示显示导航显示所有字符 二、格式格式-三级目录格式-文本格式-图格式-表格式-公式格式-参考文献 三、小技巧交叉引用连续交叉引用表/图目录等自动更新分节符设置页眉/页码word转pdf带导航 一、显示 显示导航 开启导航:视图->显示框->导航窗格…

《春琴抄》庭有枇杷树,今已亭亭如盖矣~

《春琴抄》庭有枇杷树,今已亭亭如盖矣~ 谷崎润一郎(1886年7月24日~1965年7月30日),日本近代小说家,唯美派文学主要代表人物之一,《源氏物语》现代文的译者。 代表作有《刺青》《春琴抄》《细雪》…

客户体验的重要性和企业发展的紧密联系

近年来,随着企业数字化转型的加速,客户服务的意义越来越被人们所重视。客户服务的质量不仅直接影响到客户满意度和忠诚度,而且会间接影响到企业的品牌口碑和市场竞争力。然而,目前市面上的很多企业帮助中心搭建平台,可…

【油猴脚本】ChatGPT 智能 Prompts 提示词助手

chatGPT 插件脚本 中文 Prompt 训练对话框 ChatGPT 智能 Prompts 可以为你带来更好的使用体验助你训练好用的ChatGPT:添加快捷指令(prompts)新增:论文专家角色、支持自动发送、固定智能助手…还有更多需求可以到仓库Issues里发起…

Qt Quick - ScrollView

Qt Quick - ScrollView 使用总结 一、概述二、使用四、分级五、滚动条控制六、触摸vs.鼠标交互七、美化 一、概述 ScrollView 为用户定义的内容提供滚动功能。类似QScrollArea 的功能。 二、使用 第一个例子展示了ScrollView的最简单用法。 ScrollView {width: 200height: …

本周大新闻|MR头显或成WWDC23重头戏;PICO 4 Pro本周开售

本周XR大新闻,AR方面,彭博社Mark Gurman确认XR头显将成为WWDC重头戏,同时将兼容iPad应用;Inprentus将发布用于AR光波导方案的闪耀光栅工艺;富采展示0.12英寸蓝光Micro LED;锐思华创公布多层光波导PGU&#…

大数据技术之Kafka集成

一、集成Flume 1.1 Flume生产者 (1)启动Kafka集群 zkServer.sh startnohup kafka-server-start.sh /opt/soft/kafka212/config/server.properties & (2)启动Kafka消费者 kafka-console-consumer.sh --bootstrap-server 192…

Django框架之定义模型和表迁移

django3.0 定义表模型并通过定义好的模型实现源代码创建数据表。 概述 模型是一个用于表示数据的Python类,包含基本的数据字段和行为。 通常一个模型就代表一张数据库表。 模型继承自django.db.models.Model,模型的每一个属性代表一个数据的字段。 定…

SLAM面试笔记(2) - ORB-SLAM2

目录 1 四叉树实现特征点均匀化分布 2 Bow词袋模型 2.1 什么是词袋? 2.2 词袋在ORB-SLAM2中的作用 2.3 离线训练字典树流程 3 ORB-SLAM的跟踪方法 3.1 恒速模型跟踪 3.2 重定位跟踪 3.3 参考关键帧跟踪 持续更新中... 1 四叉树实现特征点均匀化分布 参考…

SpringBoot实战(十六) 集成Hystrix

目录 一、简介1.Hystrix 的定义?2.Hystrix 的用处?3.Hystrix 的三种状态?4.Hystrix 解决什么问题?5.Hystrix 的设计原理?6.Hystrix 的实现原理? 二、集成 Hystrix1.Maven 依赖2.application.yml简易版&…

【CSS3】CSS3 伪元素选择器 ( 伪元素选择器语法简介 | 伪元素选择器权重计算 | 代码示例 )

文章目录 一、CSS3 伪元素选择器二、CSS3 伪元素选择器权重二、代码示例 一、CSS3 伪元素选择器 CSS3 伪元素选择器 : ::before 选择符 : 在 指定的标签元素内部的 前面 插入内容 ;::after 选择符 : 在指定的标签元素内部的 后面 插入内容 ; CSS3 伪元素选择器注意事项 : con…