当前位置:文档之家› 数字图像处理实验指导书

数字图像处理实验指导书

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

二、实验原理与方法对比度线性展宽处理,其实质是对图像灰度值的一个线性映射——通过这种方式来实现突出图像中重要信息的目的。

通常情况下,处理前后的图像灰度级是相同的,即处理前后的图像灰度级都为[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 --=β,bb 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:mfor j=1:n……%按照公式(1-1)计算出结果,并负值到结果图中。

endend%显示原图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:mfor j=1:n……%计算3×3模板像素的均值(如公式(2-1)),负值到结果图中。

endend%显示原图image与处理后的新图result;figure(1)imshow(image);figure(2)imshow(result);imwrite(G, map,’结果图.bmp’)%将新图result保存为.bmp位图后结束。

2.Laplacian锐化处理[image, map]=imread(‘实验图像.BMP’);%读入一幅灰度图像,放在二维数组变量image中。

[m,n]=size(image);%得到图像的宽高。

result=zeros(m,n);%开辟新的空间,存放结果图像。

image=double(image);%转换数据类型。

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

)%设计两重循环(即:for (i=1:m) for(j=1:n))按照均值滤波原理,给出新图像的每个像素点的灰度值;for i=1:mfor j=1:n……%按照公式(2-2)计算出结果,并负值到结果图中。

endend%显示原图image与处理后的新图result;figure(1)imshow(image);figure(2)imshow(result);imwrite(G, map,’结果图.bmp’);%将新图result保存为.bmp位图后结束。

六、实验报告要求1.简述实验目的和实验原理。

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

3.分析实验结果。

4.回答思考问题。

选做实验:实验一图像的放大和缩小一、实验目的:要求同学了解图像的放大和缩小的效果。

二、实验的原理与方法:1)图像的缩小:分为按比例缩小和不安比例缩小两种。

图像缩小之后,因为承载的信息量小了,所以画布可相应缩小。

图像缩小实际上就是对原有的多个数据进行挑选或处理,获得期望缩小尺寸的数据,并且尽量保持原有的特征不丢失。

最简单的方法就是等间隔的选取数据。

设原图像大小为M*N,缩小为k1M*k2N,(K1<1,K2<1)。

算法步骤如下:设旧图像是F(i, j), i=1,2,…,M , j=1,2,…,N.新图像是I(x, y), x=1,2,…,k1M , y=1,2,…,k2N.2)图像的放大:图形的缩小是从多个信息中选出所需的信息,而图像的放大则是需要对多出的空位填入适当的值,是信息的估计。

最简单的思想是,如果要将原图放大k倍,则将原图像中的每个象素值,填在新图像中对应的k*k大小的字块中。

设原图像大小为M*N,放大为k1M*k2N,(K1>1,K2>1)。

算法步骤如下:设旧图像是F(i, j), i=1,2,…,M , j=1,2,…,N.新图像是I(x, y), x=1,2,…,k1M , y=1,2,…,k2N.I(x, y)=F(c1*I,c2*j)C1=k1 c2=k2三、实验内容与步骤1) 熟悉MATLAB语言的使用,包括矩阵的定义和一些必要语句,表达式、变量的使用,及其语言环境。

2)编写程序A 放大B 缩小3)对结果进行分析原图按比例缩小不按比例缩小原图放大后四、思考问题1)在图像放大后为上么会出现马赛克,问题如何解决。

2)比较等比例和不等比例放大缩小的结果。

五、报告要求1)简述实验目的和实验原理。

2)修改完善参考程序,并使其实现更多功能。

3)总结实验结论。

4)回答思考问题。

选做实验:实验二 色系的转换一、实验目的:了解色系的概念,现在长用的几种色系方法,及如何在他们之间转换。

二、实验的原理与方法: 什么是色系?我们生活的世界是五颜六色的,在色彩缤纷的世界里我们定义了红,橙,黄,绿,青,靛,紫等几种颜色,并把其他颜色看作某几种颜色合成的结果,但是这样的分法在图象处理时还是过于笼统,没有一个量化的标准,所以我们定义了色系的概念。

相关主题