首先了解一下图像存在的噪声类型,这样才能使我们在图像处理中思路更加清晰,以下的内容都来自于中英文文献和互联网,在此就不对每一个参考一一列出。
目前大多数数字图像系统中,输入图像都是采用先冻结再扫描方式将多维图像变成一维电信号,再对其进行处理、存储、传输等加工变换。最后往往还要在组成多维图像信号,而图像噪声也将同样受到这样的分解和合成。在这些过程中电气系统和外界影响将使得图像噪声的精确分析变得十分复杂。另一方面图像只是传输视觉信息的媒介,对图像信息的认识理解是由人的视觉系统所决定的。不同的图像噪声,人的感觉程度是不同的,这就是所谓人的噪声视觉特性课题。
图像噪声在数字图像处理技术中的重要性越来越明显,如高放大倍数航片的判读,X射线图像系统中的噪声去除等已经成为不可缺少的技术步骤。下面就是对图像噪声基本知识的介绍:其中最主要的有两类:电子噪声和光电子噪声,当然如果在核辐射的环境下,图像会呈现出一种雪花状的噪声,此类噪声更加复杂,需要运用多种去噪方法才能检查以及降噪。
图像噪声从统计理论观点可以分为图像噪声从统计理论观点可以分为平稳和非平稳噪声两种。在实际应用中,不去追究严格的数学定义,这两种噪声可以理解为:其统计特性不随时间变化的噪声称其为平稳噪声。其统计特性随时间变化而变化的称其为非平稳噪声。
还可以按噪声幅度随时间分布形状来定义,如其幅度分布是按高斯分布的就称其为高斯噪声,而按雷利分布的就称其为雷利噪声。
瑞利分布(Rayleigh distribution)
当一个随机二维向量的两个分量呈独立的、有着相同的方差的正态分布时,这个向量的模呈瑞利分布。瑞利分布的概率密度函数是[1]
高斯噪声
高斯噪声是一种具有正态分布(也称作高斯分布)概率密度函数的噪声。换句话说,高斯噪声的值遵循高斯分布或者它在各个频率分量上的能量具有高斯分布。它被极其普遍地应用为用以产生加成性高斯白噪声(AWGN)的迭代白噪声。噪声PDF如下:z代表图像灰度,u是z的均值,o是z的标准差,所以高斯噪声的灰度值大多集中在图像的均值附近,因此均值滤波器主要适合于去除高斯噪声,具体方法可以用matlab实现,但是matlab仅仅适合仿真看现象,正真在现实生活中我们需要的实际的降噪,比如用FPGA等等。
matlab代码分析:
%Main函数: diagram = imread('C:UsersAdministratorDesktopCompressedfiterlena256.jpg');%读入图片 diagram = rgb2gray(diagram);%将图片转换为灰度图 figure,imshow(diagram),title('Original picture');%显示原图 diagram_n = imnoise(diagram,'salt & pepper',0.01);%加入噪声 figure,imshow(diagram_n),title('Picture with noise');%显示加入噪声的图片 r=3;%构造滤波器模板 r为行数,c为列数 c=3; sigma = 1;%高斯函数中的参数sigma
w_a = fspecial('average',[r c]);%用Matlab自带函数构造均值滤波器 diagram_a2 = imfilter(diagram_n,w_a,'replicate');%用Matlab自带函数进行均值滤波 figure,imshow(diagram_a2),title('Average filter by Matlab');%显示滤波后的图片
w_g = fspecial('gaussian',[r c],1);%用Matlab自带函数构造高斯滤波器 diagram_g2 = imfilter(diagram_n,w_g,'replicate');%用Matlab自带函数进行均值滤波 figure,imshow(diagram_g2),title('Gaussian filter by Matlab');%显示滤波后的图片
脉冲噪声
脉冲噪声是非连续的,由持续时间短和幅度大的不规则脉冲或噪声尖峰组成,产生脉冲噪声的原因多种多样,其中包括电磁干扰以及通信系统的故障和缺陷,也可能在通信系统的电气开关和继电器改变状态时产生。由于脉冲噪声不具有像高斯噪声一样的统计特征,因此一般采用中值滤波器用于消除脉冲噪声。
%中值滤波 %diagram_m1 = filter_wq(diagram_n,[r c],'med',0);%调用自编函数进行中值滤波 %figure,imshow(diagram_m1),title('Med filter by WQ');%显示滤波后的图片 diagram_m2=medfilt2(diagram_n,'symmetric');%用Matlab自带函数对图像进行中值滤波 figure,imshow(diagram_m2),title('Med filter by Matlab');%显示滤波后的图片