0中南大学数字图像处理实验报告1目录一、实验一:数字图像基本操作及灰度调整1.实验目的··············································12.实验基本原理··········································13.实验内容与要求········································34.实验具体实现··········································4二、实验二:数字图像的空间域滤波和频域滤波1.实验目的···············································92.实验基本原理···········································93.实验内容与要求········································124.实验具体实现··········································14三、实验三:图像分割与边缘检测1.实验目的··············································322.实验基本原理·········································323.实验内容与要求·······································344.实验具体实现·········································352实验一:数字图像基本操作及灰度调整1.实验目的1)掌握读、写图像的基本方法。2)掌握MATLAB语言中图像数据与信息的读取方法。3)理解图像灰度变换处理在图像增强的作用。4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。2.实验原理1.灰度变换灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。1)图像反转灰度级范围为[0,L-1]的图像反转可由下式获得rLs12)对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换:s=clog(1+r),c为常数,r≥03)幂次变换:0,0,ccrs4)对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:其对应的数学表达式为:32.直方图均衡化灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。依据定义,在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:nnrPkkr)(1,,2,1,010lkrk式中:nk为图像中出现rk级灰度的像素数,n是图像像素总数,而nk/n即为频数。直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。假定变换函数为dprTsrr)()(0(a)Lena图像(b)Lena图像的直方图图1.2Lena图像及直方图当灰度级是离散值时,可用频数近似代替概率值,即1,,1,010)(lkrnnrpkkkr式中:l是灰度级的总数目,pr(rk)是取第k级灰度值的概率,nk是图像中出现第k级灰度的次数,n是图像中像素总数。所以积分可以表示为下列累计分布函数(cumulativedistributionfunction,CDF)1,,1,010)()(00lkrrpnnrTsjkjjrkjjkk3、实验内容与要求复制若干图形文件(如forest.tif和b747.jpg)至MATLAB目录下work文件夹中。1.熟悉MATLAB语言中对图像数据读取,显示等基本函数特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、4Subplot()函数、Figure()函数。1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread,imfinfo等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray()将其转化为灰度图像,记为变量B。2.图像灰度变换处理在图像增强的作用读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。3.绘制图像灰度直方图的方法,对图像进行均衡化处理请自己编程和调用Matlab函数完成如下实验。1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。2)对B进行直方图均衡化处理,试比较与源图的异同。3)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。图1.1分段线性变换函数4.实验具体实现1.熟悉MATLAB语言中对图像数据读取,显示等基本函数1)文件读取与信息显示:loadtrees;5[X,map]=imread('forest.tif');subimage(X,map);I=imread('forest.tif');imshow(I);imfinfo('forest.tif');ans=Filename:'F:\MATLAB\R2007a\toolbox\images\imdemos\forest.tif'FileModDate:'04-Dec-200013:57:58'FileSize:124888Format:'tif'FormatVersion:[]Width:447Height:301BitDepth:8ColorType:'indexed'FormatSignature:[7373420]ByteOrder:'little-endian'NewSubFileType:0BitsPerSample:8Compression:'PackBits'PhotometricInterpretation:'RGBPalette'StripOffsets:[17x1double]SamplesPerPixel:1RowsPerStrip:18StripByteCounts:[17x1double]XResolution:72YResolution:72ResolutionUnit:'Inch'Colormap:[256x3double]PlanarConfiguration:'Chunky'TileWidth:[]TileLength:[]TileOffsets:[]6TileByteCounts:[]Orientation:1FillOrder:1GrayResponseUnit:0.0100MaxSampleValue:255MinSampleValue:0Thresholding:1ImageDescription:'CarmanahAncientForest,BritishColumbia,Canada'2)map颜色矩阵的修改[X,map]=imread('forest.tif');map1=map+map;subimage(X,map1);新的颜色矩阵值变成原文件的2倍,图像明显变亮,颜色的R、G、B值增强。3)灰度图像的转化RGB=imread('b747.jpg');B=rgb2gray(RGB);2.图像灰度变换处理在图像增强的作用g1=imadjust(I,[01],[10]);7g2=imcomplement(g1);g3=im2uint8(mat2gray(log(1+double(I))));图中对图像文件进行了基本的灰度变换,包括用式s=L–1–r得到的图像反转,对反转图像的求补,以及对数变换的采用。3.绘制图像灰度直方图的方法,对图像进行均衡化处理1)图像灰度直方图的显示与灰度调整imhist(B);J=imadjust(B,[],[01]);imhist(J);subimage(J);在原始图像中,直方图的组成成分集中在高灰度等级(亮)一侧,且图像灰度范围为[0,1],故将灰度值调整到[0,1]间后直方图无明显变化。类似的,将灰度值调整到[0,0.5]时,整个图像变暗,直方图横向压缩1倍。2)对B进行直方图均衡化处理,试比较与原图的异同。I=imread('pout.tif');[J,T]=histeq(I);figure,plot((0:255)/255,T);8原图像中目标物的灰度主要集中于高亮度部分,而且象素总数较多,所占的灰度等级较少。经过直方图均衡后,目标物的所占的灰度等级得到扩展,对比度加强,使整个图像得到增强。数字图像均衡化后,其直方图并非完全均匀分布,这是因为图像的象素个数和灰度等级均为离散值,而且均衡化使灰度级并归。因此,均衡化后,其直方图并非完全均匀分布。3)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。x1=0:0.01:0.125;x2=0.125:0.01:0.75;x3=0.75:0.01:1;y1=2*x1;y2=0.25+0.6*(x2-0.125);y3=0.625+1.5*(x3-0.75);x=[x1,x2,x3];y=[y1,y2,y3];subplot(2,2,4);plot(x,y);通过在所关心范围内为所有灰度值指定一个较高值,而为其他灰度指定一个较低值,或将所需范围变亮,分段线性变换可提高图像中特定灰度范围的亮度,常用于图像特征值的提取。这里将原始图像位于[0.125,0.75]间的灰度值调低,放大其余的灰度值,突出显示图像低频域和高频域的部分。9实验二:数字图像的空间域滤波和频域滤波1.实验目的1.掌握图像滤波的基本定义及目的。2.理解空间域滤波的基本原理及方法。3.掌握进行图像的空域滤波的方法。4.掌握傅立叶变换及逆变换的基本原理方法。5.理解频域滤波的基本原理及方法。6.掌握进行图像的频域滤波的方法。2.实验基本原理1.空间域增强空间域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。空域滤波一般分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。结合这两种分类方法,可将空间滤波增强分为四类:线性平滑滤波器(低通)非线性平滑滤波器(低通)线性锐化滤波器(高通)非线性锐化滤波器(高通)空间滤波器都是基于模板卷积,其主要工作步骤是:1)将模板在图中移动,并将模板中心与图中某个像素位置重合;2)将模板上的系数与模板下对应的像素相乘;3)将所有乘积相加;4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。2.平滑滤波器1)线性平滑滤波器线性低通平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,10对3×3的模板来说,最简单的是取所有系数为1,为了保持输出图像任然在原来图像的灰度值范围内,模板与象素邻域的乘积都要除以9。MATLAB提供了fspecial函数生成滤波时所用的