matlab图像去噪算法设计精只是分享文档格式.docx
- 文档编号:14488019
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:13
- 大小:772.57KB
matlab图像去噪算法设计精只是分享文档格式.docx
《matlab图像去噪算法设计精只是分享文档格式.docx》由会员分享,可在线阅读,更多相关《matlab图像去噪算法设计精只是分享文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。
对于去除高斯噪声效果明显。
实验一:
均值滤波对高斯噪声的效果
I=imread('
C:
\DocumentsandSettings\Administrator\桌面\1.gif'
);
%读取图像
J=imnoise(I,'
gaussian'
0,0.005);
%加入均值为0,方差为0.005的高斯噪声
subplot(2,3,1);
imshow(I);
title('
原始图像'
subplot(2,3,2);
imshow(J);
加入高斯噪声之后的图像'
%采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
K1=filter2(fspecial('
average'
3),J)/255;
%模板尺寸为3
K2=filter2(fspecial('
5),J)/255;
%模板尺寸为5
K3=filter2(fspecial('
7),J)/255;
%模板尺寸为7
K4=filter2(fspecial('
9),J)/255;
%模板尺寸为9
subplot(2,3,3);
imshow(K1);
改进后的图像1'
subplot(2,3,4);
imshow(K2);
改进后的图像2'
subplot(2,3,5);
imshow(K3);
改进后的图像3'
subplot(2,3,6);
imshow(K4);
改进后的图像4'
PS:
filter2用法
fspecial函数用于创建预定义的滤波算子,其语法格式为:
h=fspecial(type)
h=fspecial(type,parameters)
参数type制定算子类型,parameters指定相应的参数,具体格式为:
type='
,为均值滤波,参数为n,代表模版尺寸,用向量表示,默认值为[3,3]。
type='
,为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,单位为像素,默认值为
0.5。
laplacian'
,为拉普拉斯算子,参数为alpha,用于控制拉普拉斯算子的形状,取值范围为[0,1],默认值为0.2。
log'
,为拉普拉斯高斯算子,参数有两个,n表示模版尺寸,默认值为[3,3],sigma为滤波器的标准差,单位为像素,默认值为0.5
prewitt'
,为prewitt算子,用于边缘增强,无参数。
sobel'
,为著名的sobel算子,用于边缘提取,无参数。
unsharp'
,为对比度增强滤波器,参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2。
运行效果见图1:
据我目测,使用均值滤波去噪(高斯噪声)效果选用的邻域半径越大效果越好,当然其代价也会更大,另外确切的去噪效果的好坏还需要用SNR等数据来度量。
实验二:
二维自适应维纳滤波对高斯噪声的滤除效果
%读取图像
%加入均值为0,方差为0.005的高斯噪声
K2=wiener2(J,[33]);
%对加噪图像进行二维自适应维纳滤波
K2=wiener2(J,[55]);
K2=wiener2(J,[77]);
K2=wiener2(J,[99]);
imshow(J);
加噪图像'
恢复图像1'
imshow(K2);
恢复图像2'
恢复图像3'
维纳滤波的两个函数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)
J=imnoise(I,type,parameters)
其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。
参数type和parameters用于确定噪声的类型和相应的参数。
下面的命令是对图像1.gif分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:
实验三:
对加入椒盐噪声的图像分别作均值、中值和维纳滤波
I=imread(1.gif'
J1=imnoise(I,'
0,0.02);
J2=imnoise(I,'
salt&
pepper'
0.02);
J3=imnoise(I,'
speckle'
运行效果见图2
%h=ones(3,3)/9;
%产生3*3的全1数组
%B=conv2(J,h);
%卷积运算
%均值滤波模板尺寸为3
K=medfilt2(J);
%采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波
K1=wiener2(J,[33]);
均值滤波后的图像'
imshow(K);
中值滤波后的图像'
维纳滤波后的图像'
MATLAB中提供了卷积运算的函数命令conv2,其语法格式为:
C=conv2(A,B)
C=conv2(A,B)返回矩阵A和B的二维卷积C。
若A为ma×
na的矩阵,B为mb×
nb的矩阵,则C的大小为(ma+mb+1)×
(na+nb+1)。
MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:
Y=filter2(h,X)
其中Y=filter2(h,X)返回图像X经算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。
例如:
其实filter2和conv2是等价的。
MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。
Fspecial函数用于创建预定义的滤波算子,其语法格式为:
参数type制定算子类型,parameters指定相应的参数,具体格式为前文已有叙述。
ones产生全1数组,zeros产生全零数组。
ones(a,b)产生a行b列全1数组ones(a)产生a行a列全1叔祖
运行效果见图3:
通过图3我们也可得出结论,即中值滤波对于去除椒盐噪声效果最好,而维纳滤波去除效果则较差。
中值滤波对于去除椒盐噪声效果明显,是因为椒盐噪声只在画面上的部分点随机出现,而中值滤波根据数据排序,将未被污染的点代替噪声点的值的概率较大,所以抑制效果好。
对点、线和尖顶较多的图像不宜采用中值滤波,因为一些细节点可能被当成噪声点。
实验四:
分别使用二维统计滤波对椒盐噪声和高斯噪声进行滤波
0.004);
imshow(J1);
加椒盐噪声后的图像'
J=ordfilt2(J1,5,ones(3,4));
%进行二维统计顺序过滤
椒盐噪声滤波后的图像'
0,0.004);
imshow(J2);
加高斯噪声后的图像'
J3=ordfilt2(J2,5,ones(3,4));
imshow(J3);
高斯噪声滤波后的图像'
PS:
效果见图4:
MATLAB小波分析工具箱提供的用于图像去噪的函数有wrcoef2和wpdencmp,其语法格式分别为:
X=wrcoef2(‘type’,C,S,’wname’)
*xd,treed,datad,perf0,perfl2+=wpdencmp(x,sorh,N,’wname’,crit,par,keepapp)
其中,X=wrcoef2(‘type’,C,S,’wname’)返回基于小波分解结构[C,S]的小波重构图像X。
参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 图像 算法 设计 只是 分享