图像的空间域滤波和频域滤波

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

实验三:数字图像的空间域滤波和频域滤波

一、实验目的

1. 掌握图像滤波的基本定义及目的。

2. 理解空间域滤波的基本原理及方法。

3. 掌握进行图像的空域滤波的方法。

4. 掌握傅立叶变换及逆变换的基本原理方法。

5. 理解频域滤波的基本原理及方法。

6. 掌握进行图像的频域滤波的方法。

二、实验内容

1、平滑空间滤波:

1) 读入一幅灰度图像,给这幅图像分别加入椒盐噪声和高斯噪声后并显示。

2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果, 要求在同一窗口中显示。

3) 使用函数imfilter 时,分别采用不同的填充方法(或边界选项,如零填

充、’replicate ’、’symmetric ’、’circular ’)进行低通滤波,显示处理后的图像。

4) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处 理,要求在同一窗口中显示结果。

5) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。

2、锐化空间滤波

1) 读入一幅图像,采用3×3的拉普拉斯算子w = [ 1, 1, 1; 1 – 8 1; 1, 1,

1]对其进行滤波。

2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5×5 的拉普拉斯算子

w = [ 1 1 1 1 1

1 1 1 1 1

1 1 -24 1 1

1 1 1 1 1

1 1 1 1 1]

3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对图像进行锐化滤波,

并利用式2(,)(,)(,)g x y f x y f x y =-∇完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。

4) 自己设计锐化空间滤波器,并将其对噪声图像进行处理,显示处理后的图像;

三、实验代码及结果

1、(1)

>>i1=imread('C:\Users\Administrator\Desktop\图片1.bmp');

>> I1=rgb2gray(i1);

>> I1_noise1=imnoise(I1,'salt & pepper');

>> I1_noise2=imnoise(I1,'gaussian');

>>subplot(1,2,1),imshow(I1_noise1),title('I1.noise1'),subplot(1,2,2),imshow(I1_noise2),title('I1.n oise2');

(2)

>> I1_1=filter2(fspecial('average'),I1_noise1)/255;

>> I1_2=medfilt2(I1_noise1);

>>subplot(1,2,1),imshow(I1_1),title('I1.noise1.average'),subplot(1,2,2),imshow(I1_2),title('I1.nois e1.medfilt2');

>> I1_3=filter2(fspecial('average'),I1_noise2)/255;

>> I1_4=medfilt2(I1_noise2);

>>subplot(1,2,1),imshow(I1_3),title('I1.noise2.average'),subplot(1,2,2),imshow(I1_4),title('I1.nois e2.medfilt2');

(3)

>> h=fspecial('motion',15,15);

>> I1_5=imfilter(I1,h,0);

>> I1_6=imfilter(I1,h,'replicate');

>> I1_7=imfilter(I1,h,'symmetric');

>> I1_8=imfilter(I1,h,'circular');

>>subplot(2,2,1),imshow(I1_5),title('零填充'),subplot(2,2,2),imshow(I1_6),title('replicate'),subplot(2,2,3),imshow(I1_7),title('symmetric'),subp lot(2,2,4),imshow(I1_8),title('circular');

(4)同(2)的第二种情况。

(5)

>> domain=[0 0 1 0 0;

0 0 1 0 0;

1 1 1 1 1;

0 0 1 0 0;

0 0 1 0 0];

>> I1_9=ordfilt2(I1_noise1,5,domain);

>> I1_10=ordfilt2(I1_noise2,5,domain);

>> subplot(1,2,1),imshow(I1_9),title('I1.9'),subplot(1,2,2),imshow(I1_10),title('I1.10');

2、(1)

>> m=imread('C:\Users\Administrator\Desktop\图片3.bmp');

>> M=rgb2gray(m);

>> M1=double(M)/255;

>> w=[1 1 1;

1 -8 1;

1 1 1];

>> M1_1=conv2(M1,w);

>> imshow(M1_1),title('M1.1');

相关文档
最新文档