图像的空间域滤波和频域滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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');