【图像处理】常见图像噪声模型和生成方法

常见的噪声模型有(z是噪声值,μ表示均值,s2表示方差):

1、高斯噪声

2、瑞里噪声μ=a+sqrt(pi*b/4),s2=b(4-pi)/4

3、伽马噪声 μ=b/a,s2=b/a^2

4、指数分布噪声 μ=1/a,s2=1/a^2

5、均匀分布噪声 μ=(a+b)/2,s2=(b-a)^2/12

6、椒盐噪声其中盐表示亮点,椒表示暗点。

7、周期噪声,比如空间域图像受到正弦波信号干扰。

 

现在我们来试着给图像加上噪声。C++,python,matlab提供了普通随机数和服从高斯分布的随机数,可以直接生成椒盐噪声、均匀分布噪声和高斯噪声。但是剩下的几种噪声模型,要生成服从这些噪声模型的随机数就不太容易了。假设我们只能获取普通随机数,现在要把普通随机数变成服从特定函数分布的随机数,在连续系统下是很困难的,但是离散系统下有多种方法可以使用。比如给出一个很大的、有重复元素的集合,集合内元素的数量比上集合总数就是该元素在特定函数分布中应该出现的概率,这样随机获取集合的元素,出现某种元素的概率是服从特定的分布的。我使用另外一种方法。

假设当前图像像素范围为[0,255],我们将当前概率密度函数映射为p(x),x属于[0,255],然后通过累加方法求出概率函数F(x),x属于[0,255],注意这里F(255)=1,否则需要进行归一化。之后我获取普通随机数r,搜索得出r的值处于F(i)和F(i+1)之间,那么我就把i或者i+1作为获取到的服从p(x)分布的随机数。

获取服从分布的随机数r之后,再通过随机数生成(x,y)位置,给该点像素值加上r作为噪声。

https://github.com/artzers/NGImageProcessor.git ImageNoiseGenerator.py

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值