Matlab给三维点云添加高斯噪声和随机噪声
写在前面
在我们进行点云配准一类的模拟实验时,第一步就是对原始点云进行适当的RT变换,并添加一定的噪声,得到测量点云,然后才可以用我们的算法去进行后面的配准操作。在添加噪声这一块,matlab里并没有特定的函数,因此需要我们在了解噪声原理的基础上,利用简洁的代码实现。
鉴于网上搜索高斯噪声要么是二维的实现,要么是c语言实现,鲜有针对三维点云的matlab实现源码,笔者分享一下自己的实现过程,供新手参考。
高斯噪声的定义
高斯分布,也称正态分布,又称常态分布,记为N(μ,σ^2),其中μ,σ^2为分布的参数,分别为高斯分布的期望和方差。当有确定值时,p(x)也就确定了,特别当μ=0,σ^2=1时,X的分布为标准正态分布。
所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。注意在模拟测量点云的生成中,这个噪声只是相当于把现有的点移动了一个位置,而不是添加新的点进去。
Matlab实现
a=ptCloudTformed.Location;
s_noise=normrnd(0,0.01,size(a,1),2);%加噪音,其中mean parameter mu = 0, standard deviation parameter sigma = 0.01
s_simulated=a(:,1:2)+s_noise;
ss=[s_simulated,a(:,3)];
ptCloudA = pointCloud(ss);
随机噪声
顾名思义,遵循随机分布
代码实现更加简单,注意ss = n+(m-n)* rand(10000,3);此时不再是randn
效果如图
Matlab给三维点云添加高斯噪声和随机噪声的更多相关文章
- python序列中添加高斯噪声
def wgn(x, snr): snr = 10**(snr/10.0) xpower = np.sum(x**2)/len(x) npower = xpower / snr return np.r ...
- Matlab函数——awgn(高斯噪声)
Matlab函数--awgn awgn 将白色高斯噪声添加到信号中 语法 y = awgn(x,snr) y = awgn(x,snr,sigpower) y = awgn(x,snr,'mea ...
- 使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)
在matlab中,存在执行直接得函数来添加高斯噪声和椒盐噪声.Python-OpenCV中虽然不存在直接得函数,但是很容易使用相关的函数来实现. 代码: import numpy as np impo ...
- 三维点云去噪无监督学习:ICCV2019论文分析
三维点云去噪无监督学习:ICCV2019论文分析 Total Denoising: Unsupervised Learning of 3D Point Cloud Cleaning 论文链接: htt ...
- 【Matlab】向图像域添加噪声/高斯/均匀/伽马/指数/椒盐
[向图像域添加噪声] matlab自带一个函数:imnoise,可以对图像添加噪声. Matlab的说明 https://www.mathworks.com/help/images/ref/imnoi ...
- 用matlab给图像加高斯噪声和椒盐噪声(不调用imnoise函数)
图像画面中的噪声,大致可以分为两类:高斯噪声和椒盐噪声.在这里,我们先看下图像中两种噪声各自的特征. 椒盐噪声:噪声幅值基本相同,但出现位置随机. 高斯噪声:图像中每一点都存在噪声,但幅值是随机分布的 ...
- Matlab绘制三维曲面(以二维高斯函数为例)
原文地址为:Matlab绘制三维曲面(以二维高斯函数为例) 寒假学习了一下Python下的NumPy和pymatlab,感觉不是很容易上手.来学校之后,决定继续看完数字图像处理一书.还是想按照上学期的 ...
- Dlib三维点云示例
Dlib三维点云示例 源代码来自Dlib的示例代码http://dlib.net/3d_point_cloud_ex.cpp.html 在windows下需要链接winmm``comctl32``gd ...
- CVPR2020:训练多视图三维点云配准
CVPR2020:训练多视图三维点云配准 Learning Multiview 3D Point Cloud Registration 源代码和预训练模型:https://github.com/zgo ...
随机推荐
- Redis 的 Sentinel
Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服 ...
- jmeter测试计划配置
用户定义的变量: 测试计划上可以添加用户定义的变量.一般添加一些系统常用的配置.如果测试过程中想切换环境,切换配置,一般不建议在测试计划上添加变量,因为不方便启用和禁用,一般是直接添加用户自定义变量组 ...
- POJ 1270
#include<iostream> #include<algorithm> #define MAXN 26 #define MAX 300 using namespace s ...
- OSS和CDN配置使用
Oss和cdn目的就是: 1 把资源文件和程序分开存储 2 可以通过cdn缓存加速 下面介绍阿里云OSS和CDN如何配制 一 阿里云开通子RAM账户 1 不使用主账号访问OSS,需要创建子RA ...
- springboot自定义错误页面
springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { re ...
- HTML BODY 背景图片
内嵌: background:url(背景图片路径) no-repeat;/*不重复默认在左上方*/ background:url(背景图片路径) no-repeat center;/*不重复背景 ...
- JVM调优一些相关内容
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...
- tomcat启动(三)Catalina简要分析
上篇解析Bootstrap到 daemon.setAwait(true); daemon.load(args); daemon.start(); 这三个方法实际是反射调用org.apache.cata ...
- NLP 装桶(Bucketing)和填充(padding)
翻译模型也是用了装桶(bucketing)和填充(padding),这两种方法是用于高效地处理不同长度句子的情况.我们首先来弄清楚是怎么一回事.当我们从英语翻译成法语的时候,假设我们的输入英语的长度为 ...
- 12-mapReduce的简介和yarn搭建
Hadoop的核心组件之er: mapreduce 目前的计算框架 mapreduce spark storm flink(阿里) mapreduce的核心理念: 移动计算, 而不是移动数据(redu ...