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

2023-05-16

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

介绍一下滤波函数

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('中值平滑');

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab 点云滤波(中值、均值、高斯滤波)代码 的相关文章

随机推荐

  • chmod命令详解

    chmod用于改变文件或目录的访问权限 用户用它控制文件或目录的访问权限 该命令有两种用法 一种是包含字母和操作符表达式的文字设定法 xff1b 另一种是包含数字的数字设定法 1 文字设定法 语法 xff1a chmod who 43 61
  • CDN视频存储解决方案

    一 方案背景 高清 超高清视频的蓬勃发展 xff0c 用户对高品质视频体验的渴望 xff0c 对网络的并发处理和内容平台的存储能力提出了更高的要求 作为产业链的重要一环 xff0c CDN xff08 内容分发网络 xff09 进入规范发展
  • vim中替换字符串的方法有哪些

    这篇文章为大家带来有关vim中替换字符串的方法介绍 xff0c 如果在日常学习或工作遇到这个问题 xff0c 希望大家通过这篇文章的几种方法解决替换字符串的问题 s str1 str2 g 替换每一行中所有str1为str2 常用 xff0
  • SSL连接中握手协议及握手过程

    SSL的主要目的是在两个通信应用程序之间提供私密信和可靠性 这个过程通过3个元素来完成 xff1a 1 握手协议 握手协议负责协商被用于客户机和服务器之间会话的加密参数 当一个SSL客户机和服务器第一次开始通信时 xff0c 它们在一个协议
  • SSL证书是什么?SSL运作方式?

    SSL证书创建加密连接并建立信任 在线业务最重要的组成部分之一是创建一个值得信赖的环境 xff0c 潜在客户对此充满信心 SSL证书通过建立安全连接来建立信任的基础 为了确保访问者的连接安全 xff0c 浏览器提供了特殊的视觉提示 xff0
  • 带宽叠加是什么意思?

    视频会议的清晰度 流畅性 xff0c 往往是用户最为看重的体验感 xff0c 而网络带宽速度如何 xff0c 直接影响到了视频会议的呈现效果 如何让企业级 政务级视频会议常用的局域网带宽更快 通常我们在企业网络或实际项目中 xff0c 随着
  • SQL语法整理(五)-视图

    视图 含义 xff1a 从数据库一个或多个表中导出的虚拟表 作用 xff1a 方便用户操作 要求所见即所需 xff0c 无需添加额外的查询条件 xff0c 直接查看 增加数据的安全性 xff1a 通过视图 xff0c 用户只能查看或修改指定
  • 【Dart快速入门】安装与运行程序

    Dart is a client optimized language for fast apps on any platform 下载安装 Dart SDK Dart SDK 可以用来开发 WEB 命令行程序 服务端程序等 如果是开发移动
  • MATLAB 曲线形状,粗细,颜色使用大全

    颜色的改变 可以 通过改变R G B 的值改变线条的颜色 xff1a matlab命令 xff1a plot x y Color R G B RGB颜色表如下 xff1a 二 改变曲线的粗细 xff1b 通过改变c 1 43 c 1 43
  • torch.zeros() 函数详解

    torch zeros 函数 返回一个形状为为size 类型为torch dtype xff0c 里面的每一个值都是0的tensor torch zeros size out 61 None dtype 61 None layout 61
  • Anaconda 删除虚拟环境

    删除虚拟环境 xff1a 删除环境 xff1a 使用命令conda remove n your env name 虚拟环境名称 all xff0c 即可删除 删除虚拟环境中的包 xff1a 使用命令conda remove name you
  • Python实现流星雨效果的代码

    绘制一颗流星 import numpy as np import matplotlib pyplot as plt from matplotlib collections import LineCollection x0 y0 61 1 1
  • python绘制散点图,非常全,非常详细(已验证)

    少废话 xff0c 直接上代码 import matplotlib pyplot as plt import numpy as np 1 首先是导入包 xff0c 创建数据 n 61 10 x 61 np random rand n 2 随
  • python读写 doc文件和docx文件

    背景 xff1a Python 中可以读取 word 文件的库有 python docx 和 pywin32 优点缺点python docx跨平台只能处理 docx 格式 xff0c 不能处理 doc格式pywin32仅限 windows
  • (清华源)ERROR: Could not find a version that satisfies the requirement pycocotools (unavailable)

    安装 pycocotools 的新方法 xff0c 清华源 ERROR Could not find a version that satisfies the requirement pycocotools unavailable from
  • Pytorch可视化特征图(代码 亲测可用)

    2013年Zeiler和Fergus发表的 Visualizing and Understanding Convolutional Networks 早期LeCun 1998年的文章 Gradient Based Learning Appl
  • Pytorch深度学习常用预训练网络模型的下载地址

    Resnet model urls 61 resnet18 https download pytorch org models resnet18 5c106cde pth resnet34 https download pytorch or
  • matlab 使用pointcloud类在geotiff文件的基础上选择点

    Import all 4 5 million points from a laz file pc 61 pointCloud 39 ALS strip laz 39 Plot all points of point cloud pc plo
  • Flutter报错:Android toolchain “but Android SDK not found at this location”

    Flutter报错 Android toolchain but Android SDK not found at this location 当前环境 macOS 10 13 6Android Studio 3 5Android Studi
  • matlab 点云滤波(中值、均值、高斯滤波)代码

    点云中值 均值 高斯滤波 介绍一下滤波函数 smoothdata 对含噪数据进行平滑处理 B 61 smoothdata method 为上述任一语法指定平滑处理方法 例如 xff0c B 61 smoothdata A 39 sgolay