数字图像处理实验三.

  • 格式:doc
  • 大小:371.00 KB
  • 文档页数:5

下载文档原格式

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

数字图像处理—实验三

一.实验内容:

⑴5⨯5区域的邻域平均法⑵5⨯5中值滤波法

二.实验目的:

了解各种平滑处理技术的特点和用途,掌握平滑技术的仿真与实现方法。学会用Matlab中的下列函数对输入图像进行上述2类运算。感受不同平滑处理方法对最终图像效果的影响。

nlfilter;mean2;std2;fspecial;filter2;medfilt2;imnoise

三.实验步骤:

1.仔细阅读Matlab帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。

2.将test3_1.jpg图像文件读入Matlab,用nlfilter对其进行5⨯5邻域平均和计算邻域标准差。显示邻域平均处理后的结果,以及邻域标准差图像。

clc;clear;

figure;

subplot(1,3,1);

i1=imread('test3_1.jpg');

i1=im2double(i1);

imshow(i1);title('原图像');

subplot(1,3,2);

T1=nlfilter(i1,[5 5],@mean2);

imshow(T1);title('邻域平均处理后结果');

subplot(1,3,3);

T2=nlfilter(i1,[5 5],@std2);

imshow(T2);title('邻域标准差图像');

3.在test3_1.jpg图像中添加均值为0,方差为0.02的高斯噪声,对噪声污染后的图像用nlfilter进行5⨯5邻域平均。显示处理后的结果。(使用imnoise 命令)

clc;clear;

figure;

subplot(1,3,1);

i1=imread('test3_1.jpg');

i1=im2double(i1);

imshow(i1);title('原图像');

subplot(1,3,2);

T1=imnoise(i1,'gaussian',0,0.2);

imshow(T1);title('加高斯噪声');

subplot(1,3,3);

T2=nlfilter(i1,[5 5],@mean2);

imshow(T2);title('处理后结果');

4.将test3_2.jpg图像文件读入Matlab,用fspecial函数生成一5⨯5邻域平均窗函数,再用filter2函数求邻域平均,试比较与用nlfilter 函数求邻域平均的速度。

clc;clear;

figure;

subplot(1,2,1);

i1=imread('test3_2.jpg');

i1=im2double(i1);

imshow(i1);title('原图像');

T1=fspecial('average',[5 5]);

subplot(1,2,2);

T2=filter2(T1,i1);

imshow(T2);title('处理后结果');

5.用medfilt2函数对test3_2.jpg图像进行中值滤波。显示处理结果。

clc;clear;

figure;

subplot(1,2,1);

i1=imread('test3_2.jpg');

i1=im2double(i1);

imshow(i1);title('原图像');

subplot(1,2,2);

T1=medfilt2(i1);

imshow(T1);title('处理后结果');

6.编写中值滤波程序(函数)。对test3_2.jpg图像进行中值滤波。显示处理结果。

clc;clear;

figure;

subplot(1,3,1);

i1=imread('test3_2.jpg');

imshow(i1);title('原图像');

i2=double(i1);

subplot(1,3,2);

[h,w]=size(i1);

a(1:25)=0;

T1=i2;

for i=3:h-2;

for j=3:w-2;

for ii=-2:2;

for jj=-2:2;

a((ii+2)+5*(jj+2)+1)=i2(i+ii,j+jj);

end;

end;

a=sort(a);

T1(i,j)=a(13);

end;

end;

T2=uint8(T1);

imshow(T2);title('编程中值滤波');

subplot(1,3,3);

T3=medfilt2(i1);

imshow(T3);title('自带中值滤波(比较)');

四.实验报告要求:

用imshow函数生成各类图像,提交原图像和经各种方法处理后的图像。给出中值滤波程序。对图像平滑结果进行分析。