matlab图像去噪算法设计精只是分享文档格式.docx

上传人:b****2 文档编号:14488019 上传时间:2022-10-23 格式:DOCX 页数:13 大小:772.57KB
下载 相关 举报
matlab图像去噪算法设计精只是分享文档格式.docx_第1页
第1页 / 共13页
matlab图像去噪算法设计精只是分享文档格式.docx_第2页
第2页 / 共13页
matlab图像去噪算法设计精只是分享文档格式.docx_第3页
第3页 / 共13页
matlab图像去噪算法设计精只是分享文档格式.docx_第4页
第4页 / 共13页
matlab图像去噪算法设计精只是分享文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

matlab图像去噪算法设计精只是分享文档格式.docx

《matlab图像去噪算法设计精只是分享文档格式.docx》由会员分享,可在线阅读,更多相关《matlab图像去噪算法设计精只是分享文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

matlab图像去噪算法设计精只是分享文档格式.docx

使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。

对于去除高斯噪声效果明显。

实验一:

均值滤波对高斯噪声的效果

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。

参数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1