数字图像处理实验指导书

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

实验一 灰度图像的对比度线性展宽

一、实验目的

让学生通过使用对图像采用线性对比度展宽的方法进行处理,获得对图像画质的改善。

二、实验原理与方法

对比度线性展宽处理,其实质是对图像灰度值的一个线性映射——通过这种方式来实现突出图像中重要信息的目的。通常情况下,处理前后的图像灰度级是相同的,即处理前后的图像灰度级都为[0,255]。那么,从原理上讲,我们就只能通过抑制非重要信息的对比度来腾出空间给重要信息进行对比度展宽。

设原图像的灰度为),(j i f ,处理后的图像的灰度为),(j i g ,对比度线性展宽的原理示意图如图1.1所示。假设原图像中我们关心的景物的灰度分布在[a f ,b f ]区间内,处理后的图像中,我们关心的景物的灰度分布在[a g ,b g ]区间内。在这里)(a b g g g -=∆)(a b f f f -=∆<,也就是说我们所关心的景物的灰度级得到了展宽。根据图中所示的映射关系中分段直线的斜率我们可以得出线性对比度展宽的计算公式:

0 b g a g a b )j 图1.1 对比度线性展宽映射关系

),(j i f α, a f j i f <≤),(0

=),(j i g a a g f j i f +-)),((β,

b a f j i f f <≤).,( (1-1)

b b g f j i f +-)),((γ, 255),(<≤j i f f b

(m i ,3,2,1 =;n j ,3,2,1 =)

其中,a a f g =

α,a b a b f f g g --=β,b

b f g --=255255γ,图像的大小为m ×n 。 三、实验内容与步骤

1.熟悉MATLAB 语言的使用,主要包括图像处理相关的语句、表达式,以及变量的使用。

2.按照所给出的参考伪代码编写程序,实现对一幅灰度图像的对比度线性展宽。

3.调整α,β,γ的值,观察对处理结果的影响。

四、思考问题

1.在映射关系中,分段直线的斜率的大小对图像处理结果有哪些影响?

2.在进行对比度展宽的时候,如果确定和选取所关心的景物?

五、参考伪代码程序

[image, map]=imread(‘实验图像.BMP ’);

%读入一幅灰度图像,放在二维数组变量image 中。

[m,n]=size(image);

%得到图像的宽高。

result=zeros(m,n);

%开辟新的空间,存放结果图像。

fa=50;

fb=200;

%输入所关心的图像景物的灰度分布范围[fa,fb]。

image=double(image);

%转换数据类型。

(因为在MATLAB中,图像的像素值为uint8型数据描述的,而这种类型不允许进行算术运算,所以要对F进行数据类型转换,即:F=double(F);然后,在进行循环处理。)

%设计两重循环(即:for (i=1:m) for(j=1:n))按照公式(1-1),给出新图像的每个像素点的灰度值;

for i=1:m

for j=1:n

……%按照公式(1-1)计算出结果,并负值到结果图中。

end

end

%显示原图image与处理后的新图result;

figure(1)

imshow(image);

figure(2)

imshow(result);

imwrite(G, map,’结果图.bmp’)

%将新图result保存为.bmp位图后结束。

六、实验报告要求

1.简述实验目的和实验原理。

2.根据伪代码,完成编写为MATLAB程序,并实现更多的功能。

3.分析实验结果。

4.回答思考问题。

实验二图像去噪与边缘锐化

一、实验目的

采用均值滤波器分别对具有高斯噪声和椒盐噪声的图像进行滤波处理,比较滤波器对两种噪声的抑制效果。

采用Laplacian锐化算子对图像进行边缘锐化处理。

二、实验原理与方法

均值滤波器实际上就是对包含噪声的图像上的每个像素点,用一个给定的模板,模板的中心放在待处理像素的位置上,将模板内全体像素的均值替代原来的像素值即可。

例如,采用一个3×3的模板,待处理的像素为f(i,j),则处理后图像对应的像素值为g(i-1,j+1)

g(i,j)=1/9*(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+ f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1));

(2-1)

采用Laplacian锐化算子进行图像边缘的锐化,是采用二阶差分运算获得像素间的差异值,由此,获得对图像景物边界的锐化。Laplacian也可以算子也可以写成是模板作用的方式,如下:

设待处理的像素为f(i,j),则处理后图像对应的像素值为g(i-1,j+1),则g(i,j)=4*f(i,j) -(f(i-1,j-1)+f(i,j-1)+f(i,j+1)+f(i+1,j));

(2-2)

三、实验内容与步骤

1.熟悉MATLAB语言的使用,主要包括图像处理相关的语句、表达式,以及变量的使用。

2.按照所给出的参考伪代码编写程序,实现对一幅包含高斯噪声以及椒盐噪声的灰度图像进行均值滤波。

3.调整滤波器模板的大小(分别比较3×3,5×5,7×7的模板),观察对

处理结果的影响。

3.对输入的图像采用Laplacian锐化算子进行滤波处理,并观察锐化算子对景物的哪些边缘的增强效果比较明显。

4.采用两种以上的方法对锐化后的小于0的数据进行标准化处理,观察不同方法所获得的不同处理效果。

四、思考问题

1.采用均值滤波,对高斯噪声和椒盐噪声的抑制哪种比较有效?

2.模板大小的不同,所处理效果有何不同?为什么?

3.对Laplacian锐化算子的处理结果中,对小于0的部分,采用不同的方法标准化到[0,255]时,图像的显示效果有什么不同?为什么?

五、参考伪代码程序

1.均值滤波去噪

[image, map]=imread(‘实验图像.BMP’);

%读入一幅灰度图像,放在二维数组变量image中。

[m,n]=size(image);

%得到图像的宽高。

result=zeros(m,n);

%开辟新的空间,存放结果图像。

template_size=3;

%输入作用模板的大小(或5×5或7×7);

image=double(image);

%转换数据类型。

(因为在MATLAB中,图像的像素值为uint8型数据描述的,而这种类型不允许进行算术运算,所以要对F进行数据类型转换,即:F=double(F);然后,在进行循环处理。)

%设计两重循环(即:for (i=1:m) for(j=1:n))按照均值滤波原理,给出新图像的每个像素点的灰度值;

for i=1:m

相关文档
最新文档