【图像处理】常见图像噪声模型和生成方法
2016-05-07 20:15
330 查看
常见的噪声模型有(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 href="https://github.com/artzers/NGImageProcessor/blob/master/ImageNoiseGenerator.py" target=_blank>ImageNoiseGenerator.py
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 href="https://github.com/artzers/NGImageProcessor/blob/master/ImageNoiseGenerator.py" target=_blank>ImageNoiseGenerator.py
相关文章推荐
- Linux驱动LCD driver学习总结
- codeforce 350 A. Holidays
- jQuery核心函数
- java多线程学习-java.util.concurrent详解(一) Latch/Barrier
- POJ 1129 Channel Allocation
- Spark定制班第5课:基于案例一节课贯通Spark Streaming流计算框架的运行源码
- 【BestCoder Round #81 (div.2)】HDU5671Matrix
- codeforces 447C DZY Loves Sequences(最长上升子序列变体)
- OpenCV(学习笔记4)-图像模糊
- 2012 Multi-University #9
- 搭建maven私服
- html5-创建浮动框架
- Android阴影背景
- Android实现点击两次返回键退出
- 软件工程(三)
- 猫狗收容所之程序员面试经典
- R语言时间序列基础库zoo
- iOS8.0以后的相册
- LeetCode------Remove Duplicates from Sorted List
- PowerDesigner的安装和数据库创建(转载)