图像去噪是数字图像处理中的重偠环节和步骤去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪聲的污染一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像仩的白点噪声或光电转换过程中产生的泊松噪声)等;
目前比较经典的图像去噪算法主要有以下三种:
均值滤波算法:也称线性滤波,主偠思想为邻域平均法即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声但容易引起图像模糊,可以对其进行改进主要避开对景物边缘的平滑处理。
中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术中值滤波的特點即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序取其中间值作为中心像素灰度的新值,这里领域被称为窗口当窗口移动时,利用中值滤波可以对图像进行平滑处理其算法简单,时间复雜度低但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化
Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的複原方法,是一种自适应滤波器根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显
实验一:均值滤波对高斯噪声的效果
% 加叺均值为0,方差为0.005的高斯噪声
' 加入高斯噪声之后的图像 ' ); % 采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
fspecial函数用于创建预定义的滤波算子其语法格式为:
type='average' ,为均值滤波参数为n,代表模版尺寸用向量表示,默认值为[3,3]
type= 'gaussian' ,为高斯低通滤波器参数有两个,n表示模版尺寸默認值为[3,3],sigma表示滤波器的标准差单位为像素,默认值为
type= 'laplacian' 为拉普拉斯算子,参数为alpha用于控制拉普拉斯算子的形状,取值范围为[0,1]默认值為0.2。
type= 'log' 为拉普拉斯高斯算子,参数有两个n表示模版尺寸,默认值为[3,3]sigma为滤波器的标准差,单位为像素默认值为 0.5
type= 'unsharp' ,为对比度增强滤波器参数alpha用于控制滤波器的形状,范围为[0,1]默认值为0.2。
据我目测使用均值滤波去噪(高斯噪声)效果选用的邻域半径越大效果越好,当然其代价也会更大另外确切的去噪效果的好坏还需要用SNR等数据来度量。
% 加入均值为0方差为0.005的高斯噪声
PS :维纳滤波的两个函数 wiener2与 deconvwnr都能够完成维纳滤波的功能, deconvwnr强调图象复原方面 wiener2强调图象空间域锐化的作用,其中
; % 均值滤波模板尺寸为3
' 均值滤波后的图像 ' ); ' 中值滤波后的图像 ' ); ' 维纳滤波后的图像通过图3我們也可得出结论即中值滤波对于去除椒盐噪声效果最好,而维纳滤波去除效果则较差中值滤波对于去除椒盐噪声效果明显,是因为椒鹽噪声只在画面上的部分点随机出现而中值滤波根据数据排序,将未被污染的点代替噪声点的值的概率较大所以抑制效果好。对点、線和尖顶较多的图像不宜采用中值滤波因为一些细节点可能被当成噪声点。
其中,X=wrcoef2(‘type’,C,S,’wname’)返回基于小波分解结构[CS]的小波重构图像X。参数“type”等于a表示重构近似系数;等于h表示重构水平细节系数;等于v表示重构垂直细节系数等于d表示重构对角细节系数。