注意:imnoise()用于强度介于0和1之间的图像,并且超出范围[0,1]的值将被剪切
噪声种类有:椒盐、高斯、泊松、随机等
参考: http://blog.csdn.net/Zhangcong2014/article/details/40404413?locationNum=4
https://blog.csdn.net/qq_38843532/article/details/90454559
在MATLAB中,可以使用imnoise函数给一幅图像添加噪声。
g = imnoise(f, type, parameters)
参数说明:
输出:g是添加噪声之后的图像。
输入:f是原图像,type是加入的噪声类型,parameters是噪声的一些参数。
概括地说,imnoise的函数原型为:g = imnoise(f, type, parameters),注意这个只是一个概括性的函数原型,因为parameters根据噪声种类的不同可以指定多个值,也可以指定一个值。所以真正可以直接调用的函数原型是下面的这些函数接口。
g=imnoise(f,‘gaussian’,m,var)是将均值为m,方差为var的高斯噪声加到图像f上。m的默认值是0,var默认值是0.01。
g=imnoise(f,‘salt & pepper’,d)给图像f添加椒盐噪声,其中d是噪声密度(即包含噪声值的图像区域的百分比)。因此,大约有d*numel(f)个像素受到污染,默认的噪声密度为0.05。
g=imnoise(f,‘speckle’,var)用方程g=f + n*f将乘性噪声添加到图像f上,其中n是均值为0、方差为var的均匀分布的随机噪声。var的默认值为0.04。
椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。
当噪声类型是 ‘salt & pepper’ 注意空格的位置 ,较严格
当噪声类型是’salt & pepper’的时候,第三个参数的意思是噪声密度,比如0.1,那么总像素个数的10%为黑白点,**是黑点还是白点都是随机的。**对我的需求不适用
另外用matlab里特定的函数imnoise 所生成的椒盐噪声的数值是 0和 255 ,**1、**如果想要值是 0~100之间的 34,可以把生成的数字乘一个系数,34/255;**2、*对于0255区间的数值转换到ab 令 生成数(b-a)/255+a 就行了
参考:https://www.ilovematlab.cn/thread-133585-1-1.html
可参考https://blog.csdn.net/weixin_44225182/article/details/100898895
这位作者是对jpg图像进行处理的,我这边需要对bmp图像进行处理,不适用
产生指定方差和均值的随机数
设某个随机变量x均值为mu,方差为var2,若要产生同样分布的随机变量y,但使新的随机变量参数改变,均值为mu_1,方差为var_12,可以用如下公式进行变换:y=var_1/var*(x-mu)+mu_1,其中x为随机变量,其余为常数(原分布参数)。具体到正态分布,若要产生均值为u,方差为o^2的MN的随机数矩阵,可以用
y=orandn(M,N)+u得到。对于均匀分布,若要产生[a,b]区间的均匀分布的MN的随机数矩阵,则可以用
y=rand(M,N)(b-a)+a得到。
%=========================================%
randn函数产生高斯随机噪声
randn(N,1)就是产生服从方差为1,均值为0 ( 即N(0,1) )的Gaussian分布的NX1随机噪音矩阵,
根据Gaussian概率密度函数的特性,
产生均值为5,标准差为0.05的Gaussian分布的NX1随机噪音矩阵:
noise=5+0.05*randn(N,1)。
例:
rand 生成均匀分布的伪随机数。分布在(0~1)之间
主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数
rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数,参数还可以
是’single’
rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪
随机数
2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)
主要语法:和上面一样
3, randi 生成均匀分布的伪随机整数
主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数
randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵
————————————————
原文链接:https://blog.csdn.net/qq_25544855/article/details/79343656