一、图像噪声的基本定义

噪声在图像上常表现为引起较强视觉效果的孤立像素点或像素块。一般噪声信号与要研究的对象不相关,其以无用的信息形式出现,扰乱图像的可观测信息。通俗的说即噪声让图像不清楚。

图像噪声按照噪声和信号之间的关系可以分为加性噪声和乘性噪声两种。假设图像的像素值为F(x,y),噪声信号为N(x,y)。如果混合叠加信号为F(x,y)+N(x,y)的形式,则这种噪声为加性噪声。如果叠加后信号为F(x,y)x[1+ N(x, y)]的形式,则这种噪声为乘性噪声。

二、图像噪声的分类

1、高斯噪声

高斯噪声是一种源于电子电路噪声和由低照明度或高温带来的传感器噪声。高斯噪声又称为正态噪声,是自然界中最常见的噪声。高斯噪声可以通过空域滤波的平滑或图像复原技术来消除。其概率密度函数为:

2、椒盐噪声

椒盐噪声又称为双极脉冲噪声,其概率密度函数为:

椒盐噪声是指图像中出现的噪声两种灰度值,分别是a和b,这两种灰度值出现的概率分别是Pa和Pb。该噪声的均值和方差分别为:


通常情况下,脉冲噪声总是数字化允许的最大值或最小值。所以,负脉冲以黑点(胡椒点)出现在图像中,正脉冲以白点(盐点)出现在图像中。去除椒盐噪声的较好方法是中值滤波

3、均匀分布噪声

4、指数分布噪声

5、伽马分布/爱尔兰噪声

以上五种噪声是书中一般给出的噪声分类,经过查询资料,其实还有其它几种噪声:泊松噪声、斑点/乘性噪声和瑞利噪声。

6、泊松噪声

泊松噪声是指其概率密度函数服从泊松分布的一类噪声,泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。泊松噪声一般在亮度很小或者高倍电子放大线路中出现。

7、斑点/乘性噪声

根据相干原理进行成像的系统中普遍存在的一类噪声,如超声、雷达、SAR等。噪声原理是反射表面在波长尺度上是粗糙的,因此反射波存在明显的散射效应,导致所成的像出现斑点。

8、瑞利噪声

瑞利噪声概率密度分布到原点的距离及密度的基本形状右偏,常用于倾斜状直方图的建模

三、各种噪声的matlab实现

关于imnoise函数可以看我之前写过的一篇博客:图像处理之matlab中imnoise函数用法详解

1、高斯噪声

(1)J=imnoise(I,‘gaussian’,m,v)/高斯噪声的直方图

close all;
clear all;
clc;
% 生成均值为100的图像,uint8函数转换为图像类型,
% ones(256,256)生成256*256大小的矩阵,注意乘以100是为了方便显示直方图使均值为100,否则均值将为1
I=uint8(100*ones(256,256));
% 添加高斯白噪声给图像I,均值为m,方差为v.默认m = 0,v = 0.01
J=imnoise(I,'gaussian',0,0.01);
K=imnoise(I,'gaussian',0,0.03);subplot(221),imshow(J);
subplot(222),imshow(K);
subplot(223),imhist(J);
subplot(224),imhist(K)


(2)J=imnoise(I,‘localvar’,V)

close all;
clear all;
clc;
I=imread('cameraman.tif');
I=im2double(I);
V=zeros(size(I));% 建立与图像I大小相同的矩阵V
for i=1:size(V,1) % size(V,1)表示图像的高/行,size(V,2)表示图像的宽/列,此处为遍历图像的高V(i,:)=0.02*i/size(V,1);% 此表达式使矩阵V的方差越来越大,给矩阵V第i行的所有元素赋值
end% J=imnoise(I,'localvar',V)将均值为0,局部方差为V的高斯噪声添加到图像I上,其中V是与I大小相同的一个数组
J=imnoise(I,'localvar',V);
subplot(121),imshow(I);
subplot(122),imshow(J);% 最终效果是从上到下噪声的方差越来越大,图像越来越模糊


(3)J=imnoise(I,‘localvar’,h,v)

close all;
clear all;
clc;
I=imread('cameraman.tif');
h=0:0.1:1; % h为在[0,1]之间的向量,表示图像的亮度值
v=0.01:-0.001:0; % v为一个长度和h相同,表示与h中亮度对应的高斯噪声的方差
% J=imnoise(I,'localvar',h,v)在图像的不同亮度值上叠加不同方差的高斯噪声,向量h中没有的亮度值将自动插值得到
J=imnoise(I,'localvar',h,v);
subplot(121),imshow(I);
subplot(122),imshow(J);


2、椒盐噪声

(1)J = imnoise(I,‘salt & pepper’,d)/椒盐噪声的直方图

close all;
clear all;
clc;
% 生成均值为100的图像,uint8函数转换为图像类型,
% ones(256,256)生成256*256大小的矩阵,注意乘以100是为了方便显示直方图使均值为100,否则均值将为1
I=uint8(100*ones(256,256));
J=imnoise(I,'salt & pepper',0.01);
K=imnoise(I,'salt & pepper',0.05);subplot(221),imshow(J);
subplot(222),imshow(K);
subplot(223),imhist(J);
subplot(224),imhist(K)

(2)图像添加椒盐噪声

close all;
clear all;
clc;
I=imread('cameraman.tif');
I=im2double(I);
% J = imnoise(I,‘salt & pepper’,d),默认d=0.05
% 在添加类型为Salt & Pepper的噪声时,符号&的前面和后面必须有空格,否则系统会出错
J=imnoise(I,'salt & pepper',0.01);
K=imnoise(I,'salt & pepper',0.05);
% 图像中黑色的像素点为椒盐噪声,白色的像素点为盐噪声
subplot(131),imshow(I);
subplot(132),imshow(J);
subplot(133),imshow(K);


(3)图像分别添加椒噪声和盐噪声

close all;
clear all;
clc;
I=imread('cameraman.tif');
I=im2double(I);
% rand(size(A))返回和A由相同尺寸的随机矩阵(各个元素值在0-1之间)
R=rand(size(I));
J=I;
% 将I中小于等于0.02的灰度值置为0,即图像的像素点显示为黑色
J(R<=0.02)=0;
K=I;
% 将I中小于等于0.03的灰度值置为1,即图像的像素点显示为白色
K(R<=0.03)=1;
subplot(131),imshow(I);
subplot(132),imshow(J);
subplot(133),imshow(K);


3、均匀分布噪声

均匀分布表达式如下所示,可由rand(m,n)函数直接生成:

close all;
clear all;
clc;
m=256;
n=256;
a=50;
b=180;
% 建立大小为256*256的均匀分布噪声图像,范围为50-180
I=a+(b-a)*rand(m,n); % 使用函数rand(m,n)就可以产生一个均值为0,方差为1的均匀噪声
subplot(121),imshow(uint8(I));
subplot(122),imhist(uint8(I));


4、指数分布噪声

指数分布的表达式如下所示,可由均匀分布来实现,注意a的取值为0.04。

close all;
clear all;
clc;
m=256;
n=256;
a=0.04;
% 建立大小为256*256的指数分布噪声图像,参数为0.04
I=(-1/a)*log(1-rand(m,n));
subplot(121),imshow(uint8(I));
subplot(122),imhist(uint8(I));


5、伽马分布/爱尔兰噪声

伽马噪声的分布服从伽马曲线的分布,其实现需要使用b个服从指数分布的噪声叠加而来,而指数分布的噪声可以使用均匀分布来实现。

close all;
clear all;
clc;
a=0.04;
b=3;
m=256;
n=256;
I=zeros(m,n);
for i=1:bI=I+(-1/a)*log(1-rand(m,n));
end
subplot(121),imshow(uint8(I));
subplot(122),imhist(uint8(I));


6、泊松噪声

(1)J = imnoise(I,‘poisson’)/泊松噪声的直方图

close all;
clear all;
clc;
% 生成均值为100的图像,uint8函数转换为图像类型,
% ones(256,256)生成256*256大小的矩阵,注意乘以100是为了方便显示直方图使均值为100,否则均值将为1
I=uint8(100*ones(256,256));
J=imnoise(I,'poisson');subplot(121),imshow(J);
subplot(122),imhist(J);


(2)图像添加泊松噪声

close all;
clear all;
clc;
I=imread('cameraman.tif');
% J = imnoise(I,‘poisson’)添加泊松噪声给图像I
J=imnoise(I,'poisson');
subplot(121),imshow(I);
subplot(122),imshow(J);


7、斑点/乘性噪声

(1)J = imnoise(I,‘speckle’,v)/斑点噪声的直方图

close all;
clear all;
clc;
% 生成均值为100的图像,uint8函数转换为图像类型,
% ones(256,256)生成256*256大小的矩阵,注意乘以100是为了方便显示直方图使均值为100,否则均值将为1
I=uint8(100*ones(256,256));
J=imnoise(I,'speckle');
K=imnoise(I,'speckle',0.2);subplot(221),imshow(J);
subplot(222),imshow(K);
subplot(223),imhist(J);
subplot(224),imhist(K)


(2)图像添加斑点/乘性噪声

close all;
clear all;
clc;
I=imread('cameraman.tif');
% J = imnoise(I,'speckle',v)添加斑点/乘性噪声给图像I,方差为v,默认v=0.04
J=imnoise(I,'speckle');
K=imnoise(I,'speckle',0.2);
subplot(131),imshow(I);
subplot(132),imshow(J);
subplot(133),imshow(K);


8、瑞利噪声

瑞利噪声的实现可以由平均噪声来实现,公式如下所示:

close all;
clear all;
clc;
m=256;
n=256;
a=-0.1;
b=1000;
% 建立大小为256*256的瑞利分布噪声图像
% 注意对a和b取值范围没有理解
I=a+sqrt((-b*log(1-rand(m,n))));% 使用函数rand(m,n)就可以产生一个均值为0,方差为1的均匀噪声
subplot(121),imshow(uint8(I));
subplot(122),imhist(uint8(I));


由于刚刚开始学习图像处理,对于很多知识理解不到位。如有错误,恳请指正,任重而道远,慢慢加油!

图像处理之图像噪声和各种噪声的matlab实现相关推荐

  1. 9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除

    9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除 文章目录 9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除 1 算法原理 2 代码 3 效果 1 ...

  2. 带噪图像的高斯滤波MATLAB,图像处理___高斯滤波与高斯噪声

    噪声 1.噪声表现形式 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块.一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息.通俗的说就是噪声让图像不清楚. 2 ...

  3. 【图像处理】——Python实现图像加噪(随机噪声、椒盐噪声、高斯噪声等)

    目录 1.随机噪声 2.椒盐噪声 3.高斯噪声 补充:numpy.clip函数 4.其他噪声 1.随机噪声 随机噪声就是通过随机函数在图像上随机地添加噪声点 随机函数random模块参考:https: ...

  4. OpenCV2 图像处理与计算机视觉(一)—— 去除一幅二值化图像中的椒盐噪声

    通过 imgproc.hpp 文件中的 threshold 函数我们可得一幅二值化图像(或者叫 mask 掩码图像),所谓一幅二值化图像中的椒盐噪声,即为在一个 image patch 中,如果某一点 ...

  5. python图像条状状噪声_一起学opencv-python十(给图像加噪声,模糊处理和图像锐化)...

    参考了https://www.bilibili.com/video/av24998616/?p=9 https://www.bilibili.com/video/av24998616/?p=10和 h ...

  6. 图像处理:随机添加椒盐噪声和高斯噪声Python

    图像处理:随机添加椒盐噪声和高斯噪声Python 目录 图像处理:随机添加椒盐噪声和高斯噪声Python 1.常见的图像噪声 (1)高斯噪声 (2) 椒盐噪声 2.生成图像噪声 (1)高斯噪声 (2) ...

  7. 图像处理之添加高斯与泊松噪声

    数学基础: 什么是泊松噪声,就是噪声分布符合泊松分布模型.泊松分布(Poisson Di)的公 式如下: 关于泊松分布的详细解释看这里:http://zh.wikipedia.org/wiki/泊松分 ...

  8. ITK:计算图像中的局部噪声

    ITK:计算图像中的局部噪声 内容提要 输入 输出 C++实现代码 内容提要 计算图像中的局部噪声 输入 输出 C++实现代码 #include "itkI

  9. 数字图像处理:各种变换滤波和噪声的类型和用途总结

    摘自http://imgtec.eetrend.com/blog/4564 一.基本的灰度变换函数 1.1图像反转  适用场景:增强嵌入在一幅图像的暗区域中的白色或灰色细节,特别是当黑色的面积在尺寸上 ...

  10. 给图像添加噪声,高斯噪声、椒盐噪声

    常见的噪声种类有:椒盐噪声.高斯噪声 常见的去噪声方法有:均值滤波,中值滤波.高斯滤波 import cv2 as cv import numpy as np import random as r a ...

最新文章

  1. html5-Canvas绘图
  2. java中break,continue,標籤實現goto效果(編程思想)
  3. chap10 构建Web内容的技术
  4. C++ STL 初步介绍01
  5. Foundation框架: 5.常用结构体知识补充
  6. 浅聊在美找工作以及工作之后的感受
  7. Java编程:获取用户是否输入回车符
  8. 如何下载Chrome历史版本
  9. 力扣简单题合集(带答案)
  10. python调用golang dataframe_用Python获取摄像头并实时控制人脸
  11. 随机数的产生原理与实现
  12. Replacing LIBOR
  13. 数据结构之二叉树的前中后序遍历以及层序遍历
  14. 8本入门级大数据经典图书,开启你的“深度学习” | 世界读书日
  15. 面试百度新浪头条b站阿里的研发实习生面试记录
  16. vs2013开发简单ATL ocx控件
  17. 套接字是什么,套接字通信及其原理
  18. Python实现进制转换器
  19. 请求rest服务,报网页406问题解决办法
  20. python切比雪夫滤波器_python scipy signal.iirfilter用法及代码示例

热门文章

  1. Intel SGX背景、其他可信计算技术和TEE技术(翻译自Intel SGX Explained)
  2. SEO中一些黑帽作弊方法介绍
  3. 域名已注册好,如何做网站?
  4. 搭建属于你的家庭网络实时监控–HTML5在嵌入式系统中的应用·高级篇
  5. 踩了个DNS解析的坑,但我还是没想通
  6. 互联网发展的三个阶段
  7. 模板template基础学习
  8. 谈谈PEG与高增长的关系
  9. R语言使用cor.test函数检验两个数值向量之间的相关性系数是否具有统计显著性、对相关性系数进行显著性检验、基于pearson相关性检验
  10. 在Excel中如何实现快速互换两列内容