1、数 字 图 像 处 理 实 验 报 告学生姓名 王真颖学生学号 L0902150101指导教师 梁毅雄专业班级 计算机科学与技术 1501完成日期 2017 年 10 月 30 日计算机科学与技术系信息科学与工程学院目 录实验一 1一、实验目的 1二、实验基本原理 1三、实验内容与要求 1四、实验结果与分析 1实验总结 2参考资料 3实验一 数字图像基本操作及灰度调整一实验目的1.掌握读、写图像的基本方法;2.掌握 MATLAB 语言中图像数据与信息的读取方法;3.理解图像灰度变换处理在图像增强的作用;4掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。二实验基本原理灰度变换灰
2、度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。图像反转灰度级范围为0, L-1的图像反转可由下式获得 rLs1对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换:s = clog(1 + r),c 为常数,r 0幂次变换: ,cr对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:其对应的数学表达式为:直方图均衡化灰度直方图的横坐标是灰度级,纵坐标是
3、该灰度级出现的频度,它是图像最基本的统计特征。依据定义,在离散形式下, 用 rk 代表离散灰度级,用 pr(rk)代表 pr(r),并且有下式成立: nrPk)( 1,2010lkr式中:nk 为图像中出现 rk 级灰度的像素数,n 是图像像素总数,而 nk/n 即为频数。直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。假定变换函数为 dprTsr)()(0(a) Lena 图像 (b) Lena 图像的直方图图 1-1 Lena 图像及直方图当灰度级是离散值时,可用频数近似代替概率值,即 1,010)( lkrnrpk 式中:l 是灰度级的总数目,pr(rk)是取第 k 级灰度值
4、的概率,nk 是图像中出现第 k 级灰度的次数,n 是图像中像素总数。所以积分可以表示为下列累计分布函数(cumulative distribution function, CDF)1,010)()(00 lkrpnrTs jkjjrkjk 3实验内容与要求copy 若干个图形文件如 forest.tif 和 b747.jpg 到 MATLAB 目录下 work 文件夹中。1. 熟悉 MATLAB 语言中对图像数据读取,显示等基本函数。特别需要熟悉下列命令:熟悉 imread()函数,imwrite()函数,size() 函数 Subplot()函数:Figure()函数a.将 MATLAB
5、目录下 work 文件夹中的 forest.tif 图像文件读出.用到 imread,imfinfo 等文件,观察一下图像数据,了解一下数字图像在 MATLAB 中的处理就是处理一个矩阵。将这个图像显示出来(用 imshow) 。尝试修改 map 颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。b 将 MATLAB 目录下 work 文件夹中的 b747.jpg 图像文件读出,用 rgb2gray()将其转化为灰度图像,记为变量 B;2图像灰度变换处理在图像增强的作用;读入不同情况的图像,请自己编程和调用 Matlab 函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果;3绘
6、制图像灰度直方图的方法,对图像进行均衡化处理。请自己编程和调用 Matlab 函数完成如下实验。a.显示 B 的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust 函数将它的灰度值调整到0,1之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。b.对 B 进行直方图均衡化处理,试比较与源图的异同。c.对 B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。四实验结果与分析1. 熟悉 MATLAB 语言中对图像数据读取,显示等基本函数。a.将 MATLAB 目录下 work 文件夹中的 forest.tif 图像文件读出.对应源代码
7、如下:I ,map = imread(forest.tif),Imshow(I,map)结果如下图所示:图 3-1尝试修改 map 颜色矩阵的值,再将图像显示出来,相关代码如下:I ,map = imread(forest.tif),Imshow(I,map/4)对应图像颜色的变化如下:图 3-2Imfinfo 函数的使用,显示图片相关信息,其对应源代码如下:imfinfo(forest.tif,tif)对应结果如下ans = Filename: forest.tifFileModDate: 04-Dec-2000 13:57:58FileSize: 124888Format: tifForm
8、atVersion: Width: 447Height: 301BitDepth: 8ColorType: indexedFormatSignature: 73 73 42 0ByteOrder: little-endianNewSubfileType: 0BitsPerSample: 8Compression: PackBitsPhotometricInterpretation: RGB PaletteStripOffsets: 17x1 doubleSamplesPerPixel: 1RowsPerStrip: 18StripByteCounts: 17x1 doubleXResoluti
9、on: 72YResolution: 72ResolutionUnit: InchColormap: 256x3 doublePlanarConfiguration: ChunkyTileWidth: TileLength: TileOffsets: TileByteCounts: Orientation: 1FillOrder: 1GrayResponseUnit: 0.0100MaxSampleValue: 255MinSampleValue: 0Thresholding: 1ImageDescription: Carmanah Ancient Forest, British Columb
10、ia, Canadab 将 MATLAB 目录下 work 文件夹中的 b747.jpg 图像文件读出,用 rgb2gray()将其转化为灰度图像,记为变量 B,对应代码如下:I=imread(b747.jpg),Imshow(B);B = rgb2gray(I)对应结果如下:图 3-3结果分析:观察了图像数据了解一下数字图像在 MATLAB 中的处理就是处理一个矩阵rgb2gray()将真彩色图像转换成灰度图像或者将彩色色图转换成灰度色图2图像灰度变换处理在图像增强的作用,对应源代码如下:figure;subplot(2,3,1);I=imread(b747.jpg);I=im2double
11、(I);imshow(I);title(图像 3);subplot(2,3,5);r=0:0.001:1;s=r=0.35.*(0.105+2.6333*(r-0.35)+r0.65.*(1+0.3*(r-1);plot(r,s);title(2p,);subplot(2,3,2);T1=I=0.35.*(0.105+2.6333*(I-0.35)+I0.65.*(1+0.3*(I-1);imshow(T1);title(2I,);subplot(2,3,6);r=0:0.001:1;s=r=0.2*0.6+r0.4.*r+r=0.2*0.6+I0.4.*I+I=aB(t)=(B(t)-b)*1.5;imshow(B);对应结果如下:图 3-9结果分析:图九是对图片进行了要求中的线性变换处理后的输出结果,与其进行的平衡化处理的结果相比较可以看出此图的细节比较更严重,但是其对比度明显增强整体亮度比较暗,当然这是与所选的线性函数所相关的,不同的线性函数所处理后的结果不同。