添加高斯噪声

概念

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯白噪声包括热噪声和散粒噪声。在通信信道测试和建模中,高斯噪声被用作加性白噪声以产生加性白高斯噪声。

我的理解:高斯噪声就是符合高斯分布的噪声,在数字图像处理这块就是二维的高斯分布(正态分布)。那么怎么添加高斯噪声呢?首先我们肯定要得到一个二维的、符合高斯分布的噪声矩阵,最后将其添加到原图像上。这样高斯噪声就添加成功了。

方法一:利用randn()函数生成高斯噪声

这里需要用到randn()函数,该函数就专门用来生成正态分布数据的一个函数。

比如 randn(10,10),然后这个矩阵和原图像矩阵相加即可(注意缩放灰度范围)

randn(10,10)

ans =

-0.3587 0.6694 0.2922 0.4127 -0.4399 -0.2027 1.2917 -1.2807 0.0522 -0.2097

1.4851 -0.2349 -0.0809 -1.0475 0.4734 -0.8012 -1.3658 -2.4489 1.2525 -0.0725

0.1214 0.2553 0.2774 -0.9508 -0.3378 -1.1350 0.7951 -0.6749 -0.1797 -0.5646

-0.7056 1.5769 -0.8234 1.5896 1.5743 0.1304 -0.3575 -1.0971 -0.2286 -1.5035

1.4605 0.6227 -0.6059 1.5939 0.0120 -0.1012 -0.9397 -1.6988 -2.3375 1.0503

-0.2038 0.7016 0.7310 -0.4053 -0.0419 -0.3276 -0.7675 0.6319 0.3662 -1.0595

-1.3164 0.1579 0.3200 -0.2055 0.5508 -0.6350 0.7769 1.1788 1.1854 -1.0070

0.1054 1.0071 0.4267 0.6462 -1.1893 -1.8829 -1.2166 -0.2838 1.0378 0.8280

0.9141 -1.5962 -0.0540 1.5489 1.0449 0.6155 -0.6227 0.2447 0.2955 -0.7770

-0.7474 0.6233 1.3306 -0.2167 -0.2423 1.3778 -1.0203 -1.1946 0.4893 0.0451

代码:

t=imread('a1.jpg');

[m,n,z]=size(t);

y=0+0.1*randn(m,n);%二维高斯分布矩阵 0是均值 0.1是标准差

%先将其double化,再除以255 便于后面计算

t1=double(t)/255;

%加上噪声

t1=t1+y;

%将像素范围扩大至0--255

t1=t1*255;

%转换为uint8类型

t1=uint8(t1);

subplot(1,2,1),imshow(t),title('原图');

subplot(1,2,2),imshow(t1),title('加入均值为0,标准差为0.1的高斯噪声后');

效果图:

方法二:随机生成高斯噪声(这个我还没有懂那个随机生成高斯噪声函数怎么来的!)

代码:

image=imread('a1.jpg');

[width,height,z]=size(image);

subplot(1,2,1);

imshow(image);

title('原图');

av=0;

std=0.1;

u1=rand(width,height);

u2=rand(width,height);

x=std*sqrt(-2*log(u1)).*cos(2*pi*u2)+av;

result1=double(image)/255+x;

result1=uint8(255*result1);

subplot(1,2,2);

imshow(result1);

title('加入均值为0,标准差为0.1的高斯噪声后');

效果图:

方法三:利用imnoise()函数

代码

t=imread('a1.jpg');

imshow(t),title('原图');

t1=imnoise(t,'gaussian',0,0.01);

figure,imshow(t1),title('添加均值为0,方差为0.01的高斯噪声');

t2=imnoise(t,'gaussian',0,0.02);

figure,imshow(t2),title('添加均值为0,方差为0.02的高斯噪声');

t3=imnoise(t,'gaussian',0,0.03);

figure,imshow(t3),title('添加均值为0,方差为0.03的高斯噪声');

t4=imnoise(t,'gaussian',0.2,0.01);

figure,imshow(t4),title('添加均值为0.2,方差为0.01的高斯噪声');

t5=imnoise(t,'gaussian',0.4,0.01);

figure,imshow(t5),title('添加均值为0.4,方差为0.01的高斯噪声');

效果图:

注意:imnoise()中参数写的是方差,而方法一、二中是标准差。

randn函数加噪声_MATLAB--数字图像处理 添加高斯噪声相关推荐

  1. 数字图像处理——添加高斯噪声椒盐噪声

    数字图像处理--添加高斯噪声&椒盐噪声 本文链接:https://blog.csdn.net/u012936765/article/details/53200918 最近交了数图作业,mark ...

  2. MATLAB--数字图像处理 添加高斯噪声

    添加高斯噪声 概念 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声.如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声.高斯白噪声的二阶矩不相 ...

  3. 点云添加高斯噪声的C++实现

    文章目录 0 添加高斯噪声后的点云 1 什么是高斯噪声 2 怎样添加高斯噪声 0 添加高斯噪声后的点云 红色为添加的高斯噪声点,白色为原始点 1 什么是高斯噪声 高斯噪声是指它的概率密度函数服从高斯分 ...

  4. C++版本OpenCv教程(二十七)图像中添加高斯噪声

    OpenCV 4中同样没有专门为图像添加高斯噪声的函数,对照在图像中添加椒盐噪声的过程,我们可以根据需求利用能够产生随机数的函数来完成在图像中添加高斯噪声的任务.在OpenCV 4中提供了fill() ...

  5. 向数据中添加高斯噪声

    什么是高斯噪声 高斯噪声既是符合高斯正态分布的误差.一些情况下我们需要向标准数据中加入合适的高斯噪声会让数据变得有一定误差而具有实验价值.高斯噪声还有一些其他用途但是我不太了解,这里我是为了实现多项式 ...

  6. python添加高斯噪声_使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)

    在matlab中,存在执行直接得函数来添加高斯噪声和椒盐噪声.Python-OpenCV中虽然不存在直接得函数,但是很容易使用相关的函数来实现. 代码: import numpy as np impo ...

  7. python高斯滤波和降噪_python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子...

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验一,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验一. 由于时间紧张,代码没有进行任何优化, ...

  8. 如何正确地给图像添加高斯噪声

    高斯噪声是一个均值为 0 方差为 σn2\sigma_n^2σn2​ 的正态分布,是一个加性噪声.但要正确地给图片添加高斯噪声,还要取决于程序中读入图片的数据格式. 如果图片的数据格式为 uint8, ...

  9. Python3|Opencv——添加高斯噪声Gauss Noise

    # -*- coding:utf-8 -*- #@Time: 2020/2/18 #@Author: EmmaHuu #@File: gauss_noise """ 添加 ...

  10. 通过matlab编程,对以下图像分别添加高斯噪声和椒盐噪声(参数自定),并使用理想低通滤波器、高斯低通滤波器和巴特沃斯低通滤波器进行去噪。

    添加高斯噪声和椒盐噪声,并用理想低通滤波器进行去噪 t=imread('C:\Users\Administrator\Desktop\123.jpg'); subplot(3,2,1) imshow( ...

最新文章

  1. Angularjs中文教程
  2. form表单中的常用控件
  3. 关于MVVM与MVC
  4. extundelete安装_Linux数据安全工具:数据恢复软件extundelete概述
  5. idea安装golang插件(仅针对2017年之前的idea版本)
  6. [清华集训2017]无限之环(网络流)
  7. android exittext记事本,GUI练习——记事本
  8. 安卓学习笔记04:安卓平台架构
  9. python查看系统进程_在Python中获取操作系统的进程信息
  10. Why is it called “armature” instead of “skeleton”? or perhaps “rig”?
  11. HashMap 容量为什么总是为 2 的次幂?
  12. C/C++[codeup 1944]八进制
  13. 【React 】基于Antd Design的RadioGroup按钮组控件封装
  14. 打开和关闭 Oralce PDB数据库
  15. VirtualBox虚拟机提示内存0x00000000不能为written问题
  16. 44session绑定解绑、钝化活化
  17. mysql 中间表 性能_mysql性能优化
  18. 关于修复mp4文件损坏的过程小记
  19. python 数组写入文件 并 读取
  20. 未明学院学员报告:喜马拉雅APP上,原来大家最爱听的是……

热门文章

  1. java access 2007,使用Access 2007 VBA创建数据透视表
  2. python中如何用for循环语句1加到100?
  3. PTA 乙级 【1005】继续(3n+1)猜想
  4. Mybatis 批量更新运行异常,数据库 postgres
  5. azure mysql on vnet_管理 VNet 终结点 - Azure CLI - Azure Database for MySQL | Microsoft Docs
  6. Evenly Separated Strings
  7. 电信crm网站的服务器,电信crm系统.pdf
  8. 疫情时代无接触AI人脸识别技术助力智慧工地迅猛发展
  9. 苹果退款_销售和退款政策 - Apple (中国大陆)
  10. Oracle新增字段后,写入数据是提示ORA-00917:XXX 标识符无效