(按模板)实验三 图像的平滑滤波比较实验目的及原理(2017年春)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

班级:姓名:学号:

实验三图像的平滑滤波比较

目的

1、理解图像滤波的基本定义及目的;

2、掌握空域滤波的基本原理及方法;

3、掌握用MATLAB语言进行图像的空域滤波的方法。

原理

一、多次相加求平均降噪

1.完成人为的往一幅图像中加入噪声,并通过多次相加求平均的方法消除所加入的噪声。

在MATLAB中提供了给图像加入噪声的函数imnoise

imnoise的语法格式为

J = imnoise(I,type)

J = imnoise(I,type,parameters)

其中J = imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。

参数type和parameters用于确定噪声的类型和相应的参数。

下面的命令是对图像eight.tif分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:

例:

I=imread('eight.tif');

J1=imnoise(I,'gaussian',0,0.02);

J2=imnoise(I,'salt & pepper',0.02);

J3=imnoise(I,'speckle',0.02);

subplot(2,2,1),imshow(I),title('原图像');

subplot(2,2,2),imshow(J1),title('加高斯噪声');

subplot(2,2,3),imshow(J2),title('加椒盐噪声');

subplot(2,2,4),imshow(J3),title('加乘性噪声');

代数运算中需要有若干幅带有随机噪声的图像数据,在这里我们运用MATLAB 中的FOR循环语句来完成产生多幅带有噪声的图像数据及将这些图像数据进行

相加运算。MATLAB中FOR END循环的用法如下:

for end循环

这种循环允许一组命令以固定的和预定的次数重复,循环的一般形式为:for variable = expression

statements

end

2、均值滤波

模块系数都是1,为保持灰度值范围(算得R后要将其除以系数总个数)

在MATLAB图像处理工具箱中,提供了medfilt2函数用于实现中值滤波。

Medfilt2函数的语法格式为:

B = medfilt2(A) 用3×3的滤波窗口对图像A进行中值滤波。

B = medfilt2(A,[m n]) 用指定大小为m×n的窗口对图像A进行中值滤波。

3、中值滤波

在一维的情况下,中值滤波器是一个含有奇数个像素的窗口。在处理之后,位于窗口正中的像素的灰度值,用窗口内各像素灰度值的中值代替。

中值滤波很容易推广到二维的情况。二维窗口的形式可以是正方形、近似圆形的或十字形的。

4、自适应滤波

能根据图像的局部方差调整滤波器的输出。局部方差越大,平滑作用越强。目标是使恢复图像(,)f x y *与原始图像(,)f x y 的均方误差22{[(,)(,)]}e E f x y f x y *=-最小

5、卷积与滤波的关系

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 大小相同。例如:

Fspecial 函数用于创建预定义的滤波算子,其语法格式为: h = fspecial(type)

h = fspecial(type,parameters) 实验结果 实验分析

原图像

加高斯噪声

加椒盐噪声加乘性噪声

加高斯噪声去高斯噪声

原图3*3滤波9*9滤波

原图加噪图去噪图

原图去噪图

原图f

f1P

原图f

f1P

相关文档
最新文档