数字图像处理实验 7.docx
《数字图像处理实验 7.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验 7.docx(10页珍藏版)》请在冰豆网上搜索。
![数字图像处理实验 7.docx](https://file1.bdocx.com/fileroot1/2023-1/28/a00efc4c-1789-4d12-8936-2d7747d75bf5/a00efc4c-1789-4d12-8936-2d7747d75bf51.gif)
数字图像处理实验7
实验三空域滤波的研究
学校:
海南大学
班级:
信息安全
(1)班
姓名:
谯红亮
学号:
20091616310019
指导老师:
姚孝明
成绩:
————
实验目的:
通过具体应用与编程,熟悉掌握空域滤波的本质及其具体算法。
实验内容:
1、熟悉matlab环境内应用imagetoolbox提供的空域滤波函数,观察相关操作对原图像的作用。
2、应用matlab语句,编写相应空域滤波程序,观察其结果,并与采用既有工具函数局得到的结果进行比较
(空域滤波)
实验步骤:
1、打开matable软件;导入Pout图像,
取一个3*3的均权值。
h=fspecial('average',[33]);
把Pout用h进行imfilter处理,得出其空域滤波
A=imfilter(pout,h);
显示A图像
figure,imshow(A);
2、取一个5*5的均权值
h1=fspecial('average',[55]);
把Pout用h1进行imfilter处理,得出其空域滤波
B=imfilter(pout,h1);
高斯滤波
h2=fspecial('gaussian');
C=imfilter(pout,h2);
单独显示图像C
figure,imshow(C);
3、用函数定义一个数组为294*243全部值为0
T=zeros(293,242);
把Pout赋值给T
T(2:
end-1,2:
end-1)=pout;
D=zeros(291,240);
fori=2:
292用两个for循环对T做平均处理
forj=2:
241
D(i-1,j-1)=(T(i-1,j-1)+T(i-1,j)+T(i-1,j+1)+T(i,j-1)+T(i,j)+T(i,j+1)+T(i+1,j-1)+T(i+1,j)+T(i+1,j+1))/9;
end
end
D=uint8(D);
figure,imshow(D);显示图像D
4、E=zeros(291,240);
fori=2:
292用两个for循环对T做最大值处理
forj=2:
241
E(i-1,j-1)=max([T(i-1,j-1),T(i-1,j),T(i-1,j+1),T(i,j-1),T(i,j),T(i,j+1),T(i+1,j-1),T(i+1,j),T(i+1,j+1)]);
end
end
E=uint8(E);
figure,imshow(E);显示图像E
5、F=zeros(291,240);
fori=2:
292用两个for循环对T做最小值处理
forj=2:
241
E(i-1,j-1)=min([T(i-1,j-1),T(i-1,j),T(i-1,j+1),T(i,j-1),T(i,j),T(i,j+1),T(i+1,j-1),T(i+1,j),T(i+1,j+1)]);
end
end
F=uint8(F);
figure,imshow(F);显示图像F
6、G=zeros(291,240);
fori=2:
292用两个for循环对T做中间值处理
forj=2:
241
G(i-1,j-1)=median([T(i-1,j-1),T(i-1,j),T(i-1,j+1),T(i,j-1),T(i,j),T(i,j+1),T(i+1,j-1),T(i+1,j),T(i+1,j+1)]);
end
end
G=uint8(G);
figure,imshow(G);显示图像G
7、A1=imnoise(pout,'salt&pepper',0.02);
figure,imshow(A1);
T1=zeros(293,242);T1(2:
end-1,2:
end-1)=A1;
fori=2:
292
forj=2:
241用两个for循环对T1做平均处理
D1(i-1,j-1)=(T1(i-1,j-1)+T1(i-1,j)+T1(i-1,j+1)+T1(i,j-1)+T1(i,j)+T1(i,j+1)+T1(i+1,j-1)+T1(i+1,j)+T1(i+1,j+1))/9;
end
end
D1=uint8(D1);
figure,imshow(D1);显示图像D1
8、D2=zeros(291,240);
fori=2:
292用两个for循环对T1做最大值处理
forj=2:
241
D2(i-1,j-1)=max([T1(i-1,j-1),T1(i-1,j),T1(i-1,j+1),T1(i,j-1),T1(i,j),T1(i,j+1),T1(i+1,j-1),T1(i+1,j),T1(i+1,j+1)]);
end
end
D2=uint8(D2);
figure,imshow(D2);显示图像D2
9、D3=zeros(291,240);
fori=2:
292
forj=2:
241用两个for循环对T1做最小值处理
D3(i-1,j-1)=min([T1(i-1,j-1),T1(i-1,j),T1(i-1,j+1),T1(i,j-1),T1(i,j),T1(i,j+1),T1(i+1,j-1),T1(i+1,j),T1(i+1,j+1)]);
end
end
D3=uint8(D3);
figure,imshow(D3);显示图像D3
10、D4=zeros(291,240);
fori=2:
292用两个for循环对T做中间值处理
forj=2:
241
D4(i-1,j-1)=median([T1(i-1,j-1),T1(i-1,j),T1(i-1,j+1),T1(i,j-1),T1(i,j),T1(i,j+1),T1(i+1,j-1),T1(i+1,j),T1(i+1,j+1)]);
end
end
D4=uint8(D4);
figure,imshow(D4);显示图像D4
实验总结:
通过本次实验,对于滤波器进行了了解,有平均权值,最大值、最小值、中间值的处理方式得出各种图像,可以对比出其背景值不一样。
熟练掌握了图像的各种处理方式;