图像噪声模型(matlab)

article/2025/9/30 3:47:18

概述

在图像的采集、传送和转换过程中,会添加一些噪声,表现为图像模糊、失真和有噪声等。图像复原就是尽可能恢复退化图像的本来面目,沿用图像退化的逆过程进行处理。图像复原技术是根据图像退化的先验知识建立一个退化模型,以此模型为基础,采用各种逆退化处理方法进行恢复,得到质量改善的图像。图像复原技术主要包括图像的噪声模型、图像的滤波模型及常用的图形复原方法。

图形复原最基本的任务是在去除图像中的噪声同时,不丢失图像中的细节信息,假设成像系统是在位移不变系统,则获取图像g(x,y) = f(x,y)h(x,y) + n(x,y),f(x,y)表示理想的、没有退化的图像,g(x,y)是退化后观察得到的图像,n(x,y)为加性噪声。图像复原是在已知g(x,y)、h(x,y)和n(x,y)的一些先验知识的条件下,求解f(x,y)的过程。
在这里插入图片描述
图像复原是根据图像退化的原因建立相对应的数学模型,从退化图像中提取所需要的信息,沿着图像退化的逆过程来恢复图像的本来面目。实际图像复原是设计一个滤波器,从降质图像g(x,y)中计算得到真实图像的估计值,最大程度的接近真实图像f(x,y)。图像复原是一个求逆的问题。
在这里插入图片描述
图像的噪声按照噪声和信号之间的关系可分为加性噪声和乘性噪声,假设图像的像素值为F(x,y),噪声信号为N(x,y)。如果混合叠加信号为F(x,y)+N(x,y),则这种噪声为加性噪声;如果叠加后信号为F(x,y)×[1+N(x,y)]的形式,则这种噪声为乘性噪声。

噪声概述

高斯噪声

高斯噪声是一种源于电子电路噪声和由低照明度或高温带来的传感器噪声。高斯噪声也成为正态噪声。高斯噪声可以通过空域滤波的平滑或图像修复原技术来消除。
随机变量z表示灰度值,μ为噪声的期望,σ为噪声的标准差,σ^2为噪声的方差。
在这里插入图片描述

椒盐噪声

椒盐噪声又称为双极脉冲噪声,其概率密度函数为:
在这里插入图片描述
椒盐噪声是指在图像中出现的噪声只有两种灰度值,分别为a和b,改噪声的均值和方差分别为:m = aPa+bPb,σ^2 = (a-m)2*Pa+(b-m)2*Pb,通常情况下脉冲噪声总是数字化为允许的最大值和最小值,所以,负脉冲以黑色(胡椒点)出现在图像中,正脉冲以白点(盐点)出现在图像中,去除椒盐噪声的较好办法是中值滤波。

均匀分布噪声

均匀分布噪声的概率密度函数为:
在这里插入图片描述
均匀分布噪声的期望和方差分别为:m = (a+b)/2;σ^2 = (b-a)^2/12

指数分布噪声

指数分布噪声的概率密度函数为:
在这里插入图片描述
指数分布噪声的期望和方差为:m = 1/a;σ^2 = 1/a^2

伽马分布噪声

伽马分布噪声的概率密度函数为:
在这里插入图片描述
伽马分布噪声的期望和方差为:m = b/a;σ^2 = b/a^2

代码实现

J = imnoise(I,type,parameters)
type:高斯噪声:gaussian、0均值白噪声:localvar、泊松噪声:poisson、椒盐噪声:salt&peper、乘性噪声:speckle
parameters:对应噪声的参数

#通过均值和方差产生高斯噪声
>> I = uint8(100*ones(256,256));
>> J = imnoise(I,'gaussian',0,0.01);#高斯噪声方差为0.01
>> K = imnoise(I,'gaussian',0,0.03);
>> figure,
>> subplot(221),imshow(J)
>> subplot(222),imhist(J)
>> subplot(223),imshow(K)
>> subplot(224),imhist(K)

在这里插入图片描述

#通过位置信息产生高斯噪声
>> I = imread('E:\persional\matlab\images\ba.tif');
>> I = im2double(I);
>> V = zeros(size(I));#建立矩阵V
>> for i=1:size(V,1)V(i,:) = 0.02*i/size(V,1);end
>> J = imnoise(I,'localvar',V);
>> figure,
>> subplot(121),imshow(I);
>> subplot(122),imshow(J);

在这里插入图片描述

#通过亮度来产生高斯噪声
>> I = imread('E:\persional\matlab\images\lena.bmp');
>> I = im2double(I);
>> h = 0:0.1:1;
>> v = 0.01:-0.001:0;
>> J = imnoise(I,'localvar',h,v);
>> figure,
>> subplot(121),imshow(I);
>> subplot(122),imshow(J);

在这里插入图片描述
添加椒盐噪声:

>> I = imread('E:\persional\matlab\images\lena.bmp');
>> I = im2double(I);
>> J = imnoise(I,'salt & pepper',0.01);
>> K = imnoise(I,'salt & pepper',0.03);
>> figure,
>> subplot(131),imshow(I);
>> subplot(132),imshow(J);
>> subplot(133),imshow(K);

在这里插入图片描述
给图像添加椒盐噪声和盐噪声:

>> I = imread('E:\persional\matlab\images\lena.bmp');
>> I = im2double(I);
>> R = rand(size(I));
>> J = I;
>> J(R<=0.02)=0;#添加椒噪声
>> K = I;
>> K(R<=0.03)=1;#添加盐噪声
>> figure,
>> subplot(131),imshow(I);
>> subplot(132),imshow(J);
>> subplot(133),imshow(K);

在这里插入图片描述
给图像添加泊松噪声:

>> I = imread('E:\persional\matlab\images\lena.bmp');
>> J = imnoise(I,'poisson');
>> figure,
>> subplot(121),imshow(I);
>> subplot(122),imshow(J);

在这里插入图片描述

给图像添加乘性噪声:

>> I = imread('E:\persional\matlab\images\lena.bmp');
>> J = imnoise(I,'speckle');%添加乘性噪声,方差默认
>> K = imnoise(I,'speckle',0.2);%方差为0.2
>> figure,
>> subplot(131),imshow(I);
>> subplot(132),imshow(J);
>> subplot(133),imshow(K);

在这里插入图片描述
均匀分布的噪声:

>> m=256;n=256;
>> b=160;
>> a=40;
>> I = (b-a)*rand(m,n);
>> subplot(121),imshow(I);
>> subplot(122),imhist(I);

在这里插入图片描述

指数分布的噪声:

>> m=256;n=256;
>> a = 0.04;
>> k = -1/a;
>> I = k*log(I);
>> figure,
>> subplot(121),imshow(uint8(I));
>> subplot(122),imhist(uint8(I));

在这里插入图片描述


http://chatgpt.dhexx.cn/article/e8eeF4mW.shtml

相关文章

OpenCV 图像噪声

图像噪声 由于图像采集、处理、传输等过程不可避免的会受到噪声的污染&#xff0c;妨碍人们对图像理解及分析处理。常见的图像噪声有高斯噪声、椒盐噪声等。 1.1椒盐噪声 椒盐噪声也称为脉冲噪声&#xff0c;是图像中经常见到的一种噪声&#xff0c;它是一种随机出现的白点或…

图像噪声学习总结

目录 一、图像噪声 1.1.图像噪声概念 1.2.噪声来源—两个方面 1.3. 图像噪声的特征 1.4.图像噪声的分类 1.4.1常见的图像噪声主要有以下几种&#xff1a; 1.4.2 图像噪声模型 &#xff08;1&#xff09;高斯噪声 &#xff08;2&#xff09;脉冲噪声&#xff08;椒盐噪…

图像噪声与去噪

图像的空域噪声以及二维降噪算法介绍 1 图像噪声的成因 图像在生成和传输过程中常常因受到各种噪声的干扰和影响而是图像降质&#xff0c;这对后续图像的处理和图像视觉效应将产生不利影响。噪声种类很多&#xff0c;比如:电噪声&#xff0c;机械噪声&#xff0c;信道噪声和其他…

图像噪声处理

一、为图像添加噪声 为图像添加噪声可以起到数据增强的作用 对训练数据添加适量噪声&#xff0c;可以使训练后的模型更加鲁棒&#xff0c;对模型的性能提升有一定的帮助。 两种常用噪声&#xff1a;椒盐噪声和高斯噪声 import cv2 import numpy as np import random #添加椒…

图像噪声简介

一、什么是图像噪声&#xff1f; 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般&#xff0c;噪声信号与要研究的对象不相关&#xff0c;它以无用的信息形式出现&#xff0c;扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。 二、噪声来源—两个方面…

VS找不到标识符

情况一&#xff1a; 忘记加&#xff1a;&#xff1a; 情况二&#xff1a; 没有包含相应的头文件 #include “xxx”** 情况三&#xff1a; 调用函数没有声明或定义

VS C++程序报错:找不到标识符

报错如下&#xff1a; 原因&#xff1a; cpp编译时是顺序编译的&#xff0c;我在一个函数中嵌套使用了上面报错的InsertNextNode&#xff08;&#xff09;函数&#xff0c;而把InsertNextNode&#xff08;&#xff09;函数的定义放在了上一个函数的后面&#xff0c;所以报错找…

c++编译错误error C3861: “xxxx”: 找不到标识符

错误描述 在导入自定义的头文件时&#xff0c;报C3861 “_ReturnAddress”: 找不到标识符错误&#xff0c;错误信息如下 解决办法 在自定义的头文件前面导入&#xff0c;指向的头文件即可 include ""//自定义头文件 include <ppltasks.h> 参考&#xff…

找不到标识符问题

复习动态数组时&#xff0c;出现了找不到标识符的问题&#xff0c;原因是cpp编译时是“顺序编译”的&#xff0c;主函数调用vector_2()函数的时&#xff0c;vector_2()在它所调用的函数printfV()的定义之前&#xff0c;因此找不到标识符。 将两函数调换顺序即可编译通过 &…

编写C语言出现“找不到标识符”

用C语言编写代码的时候虽然是从main函数开始的。但是其中有一个编译的过程。这个过程就是顺序编译。例如函数2调用了函数1。 #include<iostream> using namespace std; void print2() {cout << "调用第一个函数";print1();//调用第一个函数 } void prin…

关于error C3861: “xxxx”: 找不到标识符的处理方法

关于 error c3861:“XXXX”&#xff1a;找不到标识符的见解 在写代码是编译器提醒了找不到标识符的错误下来学习了一下,总结了一下希望对大家有帮助,先来认识一下什么是标识符&#xff08;如果知道就当巩固复习&#xff09;。 标识符:标识符&#xff08;identifier&#xff09…

error C3861: “AT_CHECK”: 找不到标识符

今天跑别人代码时遇到这个问题 会提示我 error C3861: “AT_CHECK”: 找不到标识符 我搜了一下发现在pytorch1.5版本之后AT_CHECK标识符已经不再使用了 只需要把 AT_CHECK 换成 TORCH_CHECK 即可

VS 2022 :C3861 “Covers”: 找不到标识符

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3861 “Covers”: 找不到标识符 CampusGuide 没有声明函数是无法调用的哦&#xff01; 还有还有 如果你的多行注释不是成对出现&#xff0c;它就会这样提示&#xff1a; 错误(活动) E00…

成功解决error C3861: “printf”: 找不到标识符

问题描述&#xff1a; 错误如下&#xff1a;error C3861: “printf”: 找不到标识符。 解决方法 提示找不到标识符“printf”&#xff0c;猜想这可能是由于编译器没能包含进头文件stdio.h造成的&#xff0c;然后我就在代码上面重新写了一行#include<stdio.h>,之后再运行…

“pcl_isfinite”: 找不到标识符

错误信息是&#xff1a;“pcl_isfinite”: 找不到标识符 我搜了&#xff0c;好多网站&#xff0c;搜了好多包&#xff0c;都没有这个“pcl_isfinite”的定义。后来看别人的代码找到了。。。 在我们自己的代码中&#xff1a;添加一行&#xff1a; # define pcl_isfinite(x) s…

VS中使用c++函数显示找不到标识符

VS中使用c函数显示找不到标识符 解决办法&#xff1a;把函数定义在main函数前原因&#xff1a;这个CPP并没有面向对象的结构。所以进行编译时是“顺序编译”的&#xff0c;而main函数的定义又在A的定义之前、自然找不到标识符了 如图使用函数时&#xff0c;出现代号为C3801的错…

VS找不到标识符问题

问题描述&#xff1a; 在我的一个screen.cpp文件中&#xff0c;我调用在这个文件里面定义的一个函数 并且在我的这个cpp文件中&#xff0c;我也明确定义函数 但是却爆出来的错误&#xff0c;注意这个错误不是没有定义 如果我把函数名改为&#xff1a;load_buyer_. 报的错误就…

地理加权回归GWR4.0软件下载与使用

1、GWR4.0软件下载链接&#xff1a;https://download.csdn.net/download/xiaodongfly/7027693 &#xff08;GWR4.0官方下载网址&#xff1a;https://gwrtools.github.io/&#xff0c;但是我打不开&#xff0c;所以从上面那个链接下载的软件&#xff09; 2、软件的安装 双击安…

spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归

地理加权回归&#xff08;Geographically Weighted Regression, GWR&#xff09;经过多年发展&#xff0c;已经具备了多种形式&#xff0c;在R语言中也对应着多个工具包&#xff0c;其中spgwr是一个开发较早、比较经典的工具包&#xff0c;功能也相对基础。 library(spgwr)在该…

地理加权归回模型 (GWR) 参数估计

作者&#xff1a;陈凤 (西安交通大学)   Stata连享会   计量专题 || 精品课程 || 简书推文 || 公众号合集 连享会计量方法专题…… 文章目录 连享会计量方法专题…… 1. 地理加权回归模型简介2. 地理加权回归模型的参数估计方法连享会计量方法专题…… 3. 常用的核函数3.1. G…