图像处理之图像噪声和各种噪声的matlab实现

这篇具有很好参考价值的文章主要介绍了图像处理之图像噪声和各种噪声的matlab实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、图像噪声的基本定义

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

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

二、图像噪声的分类

1、高斯噪声

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

椒盐噪声又称为双极脉冲噪声,其概率密度函数为:
图像处理之图像噪声和各种噪声的matlab实现
椒盐噪声是指图像中出现的噪声两种灰度值,分别是a和b,这两种灰度值出现的概率分别是Pa和Pb。该噪声的均值和方差分别为:
图像处理之图像噪声和各种噪声的matlab实现
图像处理之图像噪声和各种噪声的matlab实现
通常情况下,脉冲噪声总是数字化允许的最大值或最小值。所以,负脉冲以黑点(胡椒点)出现在图像中,正脉冲以白点(盐点)出现在图像中。去除椒盐噪声的较好方法是中值滤波

3、均匀分布噪声
图像处理之图像噪声和各种噪声的matlab实现

4、指数分布噪声

图像处理之图像噪声和各种噪声的matlab实现

5、伽马分布/爱尔兰噪声
图像处理之图像噪声和各种噪声的matlab实现
以上五种噪声是书中一般给出的噪声分类,经过查询资料,其实还有其它几种噪声:泊松噪声、斑点/乘性噪声和瑞利噪声。

6、泊松噪声

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

7、斑点/乘性噪声

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

8、瑞利噪声
图像处理之图像噪声和各种噪声的matlab实现
瑞利噪声概率密度分布到原点的距离及密度的基本形状右偏,常用于倾斜状直方图的建模

三、各种噪声的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)

图像处理之图像噪声和各种噪声的matlab实现
(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);% 最终效果是从上到下噪声的方差越来越大,图像越来越模糊

图像处理之图像噪声和各种噪声的matlab实现
(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);

图像处理之图像噪声和各种噪声的matlab实现
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)

图像处理之图像噪声和各种噪声的matlab实现

(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);

图像处理之图像噪声和各种噪声的matlab实现
(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);

图像处理之图像噪声和各种噪声的matlab实现
3、均匀分布噪声

均匀分布表达式如下所示,可由rand(m,n)函数直接生成:
图像处理之图像噪声和各种噪声的matlab实现

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));

图像处理之图像噪声和各种噪声的matlab实现
4、指数分布噪声

指数分布的表达式如下所示,可由均匀分布来实现,注意a的取值为0.04。
图像处理之图像噪声和各种噪声的matlab实现

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));

图像处理之图像噪声和各种噪声的matlab实现
5、伽马分布/爱尔兰噪声

伽马噪声的分布服从伽马曲线的分布,其实现需要使用b个服从指数分布的噪声叠加而来,而指数分布的噪声可以使用均匀分布来实现。
图像处理之图像噪声和各种噪声的matlab实现
图像处理之图像噪声和各种噪声的matlab实现

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

图像处理之图像噪声和各种噪声的matlab实现
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);

图像处理之图像噪声和各种噪声的matlab实现
(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);

图像处理之图像噪声和各种噪声的matlab实现
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)

图像处理之图像噪声和各种噪声的matlab实现
(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);

图像处理之图像噪声和各种噪声的matlab实现
8、瑞利噪声

瑞利噪声的实现可以由平均噪声来实现,公式如下所示:
图像处理之图像噪声和各种噪声的matlab实现

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实现
由于刚刚开始学习图像处理,对于很多知识理解不到位。如有错误,恳请指正,任重而道远,慢慢加油!文章来源地址https://www.toymoban.com/news/detail-469561.html

到了这里,关于图像处理之图像噪声和各种噪声的matlab实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 不同图像的噪声,选用什么滤波器去噪,图像处理的噪声和处理方法

    提示:据说是科大讯飞的算法面试题 知道哪些噪声,分别用什么滤波器处理? 噪声来源灰常多,但主要可以分为三类: 1.来自捕捉源的(acquisition/digitization) ,比如一个摄像机的镜头、A/D或者sensor; 2.来自图像传输过程(image transmission), 传输图像的信道包括无线电、微波

    2024年02月05日
    浏览(48)
  • 图像处理:随机添加椒盐噪声和高斯噪声Python

    目录 图像处理:随机添加椒盐噪声和高斯噪声Python 1.常见的图像噪声 (1)高斯噪声 (2) 椒盐噪声 2.生成图像噪声 (1)高斯噪声 (2) 椒盐噪声(速度慢) (3) 椒盐噪声(快速版) 3. Demo测试         图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。在噪

    2024年02月02日
    浏览(45)
  • 数字图像处理:亮度对比度-几何变换-噪声处理

    亮度与对比度转换 图像变换可分为以下两种: 点算子:基于像素变换,在这一类图像变换中,仅仅根据输入像素值计算相应的输出像素值 邻域算子:基于图像区域进行变换 两种常用的点算子是用常数对点的像素值进行乘法或加法运算,可以表示为: g ( i , j ) = α ∗ f ( i ,

    2024年02月10日
    浏览(61)
  • 5-2图像处理经典案例:正弦噪声图像去噪

    学习目标:  图像处理经典案例  去除噪声   图像降噪的英文名称是Image Denoising, 图像处理中的专业术语。是指减少数字图像中噪声的过程,有时候又称为图像去噪。图像的噪声来源相对复杂,搞清楚图像噪声的成因对我们进行图像去噪的工作有帮助。因为对于满足某些数

    2024年02月12日
    浏览(39)
  • 【图像处理】python | 给图像添加噪声 | random_noise

    首先,我们看一下random_noise的构造: floating-point image是浮点图的意思。**kwargs是参数的意思,对这部分我也作一定的学习(之前不懂),改天写一个博客记录一下。它的作用:把多个参数打包。 1.image: 输入的图像是n维数组,会转换为浮点型 2.mode: 除了高斯型,还

    2024年02月01日
    浏览(43)
  • 计算机视觉学习笔记(图像的灰度与灰度级 图像的深度 图像噪声 图像处理)

    如果把白色和黑色之间按对数关系分为若干等级,称为灰度,灰度分为256阶,0为黑色,灰度就是没有色彩,RGB色彩分量全部相等(150,150,150)就代表灰度为150. 一幅图像中不同位置的亮度是不一样的,可用f(x,y)来表示(x,y)上的亮度。由于光是一种能量形式,因此亮度是非负

    2024年02月01日
    浏览(61)
  • 我在Vscode学OpenCV 图像处理二(滤除噪声干扰)

    图像平滑处理是一种用于减少图像噪声并模糊图像的技术,使图像更加清晰或者更容易进行其他图像处理操作的方法之一。 图像平滑处理的目标之一就是消除或减少这些噪声,使图像更清晰、更易于分析或更适合后续处理。不同的平滑技术可以在一定程度上模糊图像,从而有

    2024年02月05日
    浏览(46)
  • 【数字图像处理】实验三 图像分割(MATLAB实现)

    目录 一、实验意义及目的 二、实验内容 三、Matlab 相关函数介绍 四、算法原理 五、参考代码及扩展代码流程图 (1)参考代码流程图 (2)扩展代码流程图 六、参考代码 七、实验要求 (1)尝试不同的阈值选择方法,实现灰度图像二值化 (2)变换参数实现形态学滤波,查看滤波

    2024年02月05日
    浏览(51)
  • 【数字图像处理】实验二 图像增强(MATLAB实现)

    目录 一、实验意义及目的 二、实验内容 三、Matlab 相关函数介绍 四、算法原理 五、参考代码及扩展代码流程图  (1)参考代码流程图 (2)扩展代码流程图 六、参考代码 七、实验要求 (1)对以上处理变换参数,查看处理效果; (2)更改伪彩色增强方法为热金属编码或彩

    2023年04月12日
    浏览(86)
  • 【数字图像处理】实验(2)——图像增强(MATLAB实现)

    (1)进一步掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数。 (2)掌握各种图像增强方法。 1.打开一幅彩色图像Image1,使用Matlab图像处理函数,对其进行下列变换: (1)将Image1灰度化为gray,统计并显示其灰度直方图; (2)对gray进行分段线性变换; (3)对gray进行

    2023年04月23日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包