图像去噪是数字图像办理中的重要环节和步骤。 去噪收效的利害直接影响到后续的图像办理工作如图像切割、 边缘检测等。 图像信号在产生、 传输过程中都可能会碰到噪声的污染, 一般数字图像系统中的常有噪声主要有: 高斯噪声〔主要由阻性元器件内部产生〕 、椒盐噪声〔主若是图像切割引起的黑图像上的白点噪声或光电变换过程中产生的泊松噪声〕等;
目前比较经典的图像去噪算法主要有以下三种:
均值滤波算法: 也称线性滤波, 主要思想为邻域平均法, 即用几个像素灰度的平均值来代替每个像素的灰度。 有效控制加性噪声, 但简单引起图像模糊, 能够对其进行改良,主要避开对光景边缘的圆滑办理。
中值滤波:基于排序统计理论的一种能有效控制噪声的非线性圆滑滤波信号办理 技术。中值滤波的特点即是 第一确定一个以某个像素为中心点的邻域, 一般为方形邻域,也能够为圆形、十字形等等,尔后将邻域中各像素的灰度值排序,取其 中间值作为中心像素灰度的新值, 这里领域被称为窗口, 当窗口搬动时, 利用中值滤波能够对图像进行圆滑办理。 其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很简单自适应化。
Wiener 维纳滤波: 使原始图像和其恢复图像之间的均方误差最小的复原方法 ,是一种自适应滤波器, 依照局部方差来调整滤波器收效。 对于去除高斯噪声收效明显。
实验一: 均值滤波对高斯噪声的收效 代码
I=imread('C:\\Documents 读取图像
J=imnoise(I,'gaussian',0,0.005);% 声
subplot(2,3,1);imshow(I); title(' 原始图像 ');
subplot(2,3,2); imshow(J);
title(' 参加高斯噪声此后的图像 ');
% 采用 MATLAB 中的函数 filter2 对受噪声搅乱的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; % K2=filter2(fspecial('average',5),J)/255;%
模板尺寸为 3 模板尺寸为 5
参加均值为 0 ,方差为
的高斯噪
and 桌面 \\1.gif');%
(完满word版)数字图像去噪典型算法及matlab实现
K3=filter2(fspecial('average',7),J)/255; %
模板尺寸为 7
K4= filter2(fspecial('average',9),J)/255; %
模板尺寸为 9
subplot(2,3,3);imshow(K1); title(' 改良后的图像 1');
subplot(2,3,4); imshow(K2); title(' 改良后的图像 2');
subplot(2,3,5);imshow(K3); title(' 改良后的图像 3');
subplot(2,3,6);imshow(K4);
title(' 改良后的图像 4'); PS:filter2 用法
fspecial 函数用于创立预定义的滤波算子,其语法格式为: h = fspecial(type)
h = fspecial(type,parameters)
参数 type 拟定算子种类, parameters 指定相应的参数,详尽格式为:
type='average',为均值滤波,参数为 n,代表模版尺寸,用向量表示,默认值为 [3,3] 。
type= 'gaussian',为高斯低通滤波器,参数有两个,n 表示模版尺寸,默认值为 [3,3], sigma 表示滤波器的标准差,单位为像素,默认值为 。
type= 'laplacian',为拉普拉斯算子,参数为 alpha,用于控制拉普拉斯算子的形状,取值范围为 [0,1],默认值为。
type= 'log',为拉普拉斯高斯算子, 参数有两个, n 表示模版尺寸, 默认值为 [3,3], sigma 为滤波器的标准差,单位为像素,默认值为 0.5 type= 'prewitt' ,为 prewitt 算子,用于边缘增强,无参数。
type= 'sobel',为出名的 sobel 算子,用于边缘提取,无参数。
type= 'unsharp',为对照度增强滤波器, 参数 alpha 用于控制滤波器的形状, 范围 为 [0,1],默认值为。
据我目测,使用均值滤波去噪〔高斯噪声〕收效采用的邻域半径越大收效越好, 自然其代价也会更大,别的确实的去噪收效的利害还需要用SNR等数据来胸襟。
实验二: 二维自适应维纳滤波对高斯噪声的滤除收效代码
(完满word版)数字图像去噪典型算法及matlab实现
桌面 \\1.gif'); %
读取图像
J=imnoise(I,'gaussian',0,0.005); % 参加均值为 0 ,方差为 的高斯
噪声
K2=wiener2(J,[3 3]); % 对加噪图像进行二维自适应维纳滤波 K2=wiener2(J,[5 5]); % 对加噪图像进行二维自适应维纳滤波 K2=wiener2(J,[7 7]); % 对加噪图像进行二维自适应维纳滤波 K2=wiener2(J,[9 9]); % 对加噪图像进行二维自适应维纳滤波
subplot(2,3,1);imshow(I); title(' 原始图像 ');
subplot(2,3,2);imshow(J); title(' 加噪图像 ');
subplot(2,3,3);imshow(K1); title(' 恢复图像 1');
subplot(2,3,4);imshow(K2); title(' 恢复图像 2');
subplot(2,3,5);imshow(K3); title(' 恢复图像 3');
subplot(2,3,6);imshow(K4);
title(' 恢复图像 3');
PS:维纳滤波的两个函数 wiener2 与 deconvwnr 都能够完成维纳滤波的功
能, deconvwnr 重申图象复原方面, wiener2 重申图象空间域锐化的作用,其中J=wiener2(I,[m,n])返回有噪声图像 I 经过 wierner( 维纳 )滤波后的图像, [m,n] 指定滤波器窗口大小为 m*n, 默认值为 3*3 , J=wiener2(I,[m,n],noise)指定噪声的功率,[J,noise]=wiener2(I,[m,n])在图像滤波的同时,返回噪声功率的估计值 noise。 imnoise 的语法格式为 J = imnoise(I,type)
(完满word版)数字图像去噪典型算法及matlab实现
J = imnoise(I,type,parameters)
其中 J = imnoise(I,type)返回对原始图像 I 增加典型噪声的有噪图像 J。 参数 type 和 parameters 用于确定噪声的种类和相应的参数。
实验三:对参加椒盐噪声的图像分别作均值、中值和维纳滤波代码
I=imread(1.gif');
J1=imnoise(I,'gaussian',0,0.02); J2=imnoise(I,'salt & pepper',0.02); J3=imnoise(I,'speckle',0.02); 运行收效见图 2
桌面 \\1.gif');
J=imnoise(I,'salt & pepper',0.02);
%h=ones(3,3)/9;% 产生 3*3 的全 1 数组
%B=conv2(J,h);% 卷积运算
K2=filter2(fspecial('average',3),J)/255; % 均值滤波模板尺寸为 3
K= medfilt2(J);% 采用二维中值滤波函数 medfilt2 对受椒盐噪声搅乱的图像滤波
K1=wiener2(J,[3 3]); % 对加噪图像进行二维自适应维纳滤波
subplot(2,3,1);imshow(I); title('
原始图像 ');
subplot(2,3,2);imshow(J); title('
加噪图像 ');
subplot(2,3,3);imshow(K2); title('
均值滤波后的图像 ');
(完满word版)数字图像去噪典型算法及matlab实现
subplot(2,3,4);imshow(K); title('
中值滤波后的图像 ');
subplot(2,3,5);imshow(K1); title('
维纳滤波后的图像 ');
经过图 3 我们也可得出结论, 即中值滤波对于去除椒盐噪声收效最好, 而维纳滤波去除收效那么较差。 中值滤波对于去除椒盐噪声收效明显, 是因为椒盐噪声只在画面上的局部点随机出现, 而中值滤波依照数据排序, 将未被污染的点代替噪声点的值的概率较大, 所以控制收效好。 对点、线和尖顶很多的图像不宜采用中值滤波,因为一些细节点可能被看作噪声点。
实验四 : 分别使用二维统计滤波对椒盐噪声和高斯噪声进行滤波代码
桌面 \\1.gif');
J1=imnoise(I,'salt & pepper',0.004); subplot(2,3,1);imshow(I); title(' 原始图像 ');
subplot(2,3,2);imshow(J1); title(' 加椒盐噪声后的图像 '); J= ordfilt2(J1,5,ones(3,4));% 进行二维统计序次过滤
subplot(2,3,3);imshow(J);
title(' 椒盐噪声滤波后的图像 '); J2=imnoise(I,'gaussian',0,0.004);
subplot(2,3,4);imshow(J2);
(完满word版)数字图像去噪典型算法及matlab实现
title(' 加高斯噪声后的图像 ');
J3= ordfilt2(J2,5,ones(3,4)); subplot(2,3,5);imshow(J3);
title(' 高斯噪声滤波后的图像 ');
PS:MATLAB小波解析工具箱供应的用于图像去噪的函数有 wpdencmp,其语法格式分别为:
X=wrcoef2( ‘ type ’ ,C,S, ’ wname’)
[xd,treed,datad,perf0,perfl2]=wpdencmp(x,sorh,N,
wrcoef2 和
’ wname’ ,crit,par,keepapp)
其中, X=wrcoef2( ‘type ’,C,S, ’wname返回基’)于小波分解结构[C,S]的小波重构图像X。参数 “type〞等于 a 表示重构近似系数; 等于 h 表示重构水平细节系数;等于 v 表示重构垂直细节系数,等于 d 表示重构对角细节系数。
[xd,treed,datad,perf0,perfl2]=wpdencmp(x,sorh,N,
’ wname’ ,crit,par,keepapp)是经过
小波包定限〔阈值化〕,返回输入信号或图像X的除噪结果 xd。输入参数中,
[ treed,datad]为 xd 的最正确小波包分解结构; perfl2 和 perf0 表示 L^2 复原和压缩百分数;perf12=100*(xd 的小波包系数向量范数 /X 的小波包系数向量范数 ) ^2。 Keepapp=1表示近似系数不能够阈值化,否那么能够阈值化; sorh= ’为s软’阈值化, h 为硬阈值化。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务