本文的内容主要介绍了常见噪声的分类与其特性。将噪声建模,然后用模型去实现各式各样的噪声。
实际生活中的各种照片的老化,都可以归结为以下老化模型。
这个模型很简单,也可以直接用以下公式来表达。
在频域内,用以下公式区表示。
根据以上式子,可以看出,老旧照片的复原,主要分为两个任务,一个是去噪;另一个是去卷积,或者称为逆滤波,也就是将老化滤波器做反处理。
本文首先由噪声类型与其建模。随后的博文,会介绍几种基础的去噪方法和基础的逆滤波方法。
a = 0; b = 0.08; n_gaussian = a + b .* randn(M,N);
瑞利噪声相比高斯噪声而言,其形状向右歪斜,这对于拟合某些歪斜直方图噪声很有用。
瑞利噪声的实现可以借由平均噪声来实现。如下所示。
这里的表示均值为0,方差为1的均匀分布的噪声。Matlab里,使用函数rand(M,N)就可以产生一个均值为0,方差为1的均匀噪声。
a = -0.2; b = 0.03; n_rayleigh = a + (-b .* log(1 - rand(M,N))).^0.5;
伽马噪声的分布,服从了伽马曲线的分布。伽马噪声的实现,需要使用b个服从指数分布的噪声叠加而来。指数分布的噪声,可以使用均匀分布来实现。
使用若干个(这里用b表示)均匀分布叠加,就可以得到伽马噪声。
当然,当b=1的时候,就可以得到指数噪声了。
a = 25; b = 3; n_Erlang = zeros(M,N); for j=1:b n_Erlang = n_Erlang + (-1/a)*log(1 - rand(M,N)); end
如同前面所示,均匀噪声可以由函数rand(M,N)直接产生。
a = 0; b = 0.3; n_Unifrom = a + (b-a)*rand(M,N);
椒盐噪声的实现,需要一些逻辑判断。这里我们的思路是,产生均匀噪声,然后将超过阈值的点设置为黑点,或白点。当然,如果需要拟合电影胶片的损伤的话,可以选用别的类型噪声去拟合。
a = 0.05; b = 0.05; x = rand(M,N); g_sp = zeros(M,N); g_sp = f; g_sp(find(x<=a)) = 0; g_sp(find(x > a & x<(a+b))) = 1;
原文发于博客:http://blog.csdn.net/thnh169/
[数字图像处理]常见噪声的分类与Matlab实现,布布扣,bubuko.com
原文地址:http://blog.csdn.net/zhoufan900428/article/details/37695357