广东海洋大学学生实验报告书(学生用表)实验名称图像的基本操作课程名称数字图像处理课程号学院(系)信息学院专业电子信息工程班级电子1103班学生姓名杜嘉星学号201011611308实验地点实验日期实验1图像的基本操作一、实验目的:学会用MATLAB工具箱中的函数对图像进行读取、显示和保存等的基本操作。二、实验内容:1、仔细阅读MATLAB帮助文件中有关函数imread,size,whos,imshow,imwrite的使用说明,能充分理解其使用方法。2、并能运用以上函数完成相应的实验操作。三、实验要求:掌握并能熟练应用上述函数。实验报告需要提交每步处理的命令并回答相关的问题。四、实验相关知识:学习有关函数的使用imread使用函数imread可以将图像读入MATLAB环境,imreaed的语法为imread(’filename’),其中filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。例如,f=imread(‘chestxray.jpg’);要想读取指定路径中的图像,最简单的办法就是在filename中输入完整的或相对的。例如,f=imread(‘D:\myimages\chestxray.jpg’);size函数size可给出一幅图像的行数和列数。用如下格式可自动确定一幅图像的大小:[M,N]=size(f);该语法将返回图像的行数(M)和列数(N)。whos函数whos可以显示出一个数组的附加信息。语句为:whosfimshow在MATLAB桌面上图像一般使用函数imshow来显示,该函数的基本语法为:imshow(f,GDOU-B-11-112G)。其中,f是一个图像数组,G是显示该图像的灰度级数。若省略G,则默认的灰度级数是256。语法imshow(f,[lowhigh])会将所有小于或等于low的值都显示为黑色,所有大于或等于high的值都显示为白色。语法imshow(f,[])可以将变量low设置为数组f的最小值,将变量high设置为数组f的最大值。这一形式在显示一幅动态范围较小的图像或既有正值又有负值的图像时非常有用。imwrite函数imwrite可以将图像写到磁盘上,该函数的语法为imwrite(f,’filename’)。该语法结构中,filename中包含的字符串必须是一种可识别的文件格式扩展名。若filename中不包含路径信息,则imwrite会将文件保存到当前的工作目录中。另外一种常用的只适用于JPEG图像的函数用法是:imwrite(f,’filename.jpg’,’quality’,q),q是一个0到100间的整数,q越小,图像退化就越严重。五、实验步骤:1、读入和显示图象(1)从硬盘中读入一幅名为1a.tif的图像,用whos提取该图像的基本信息,并使用imshow将其显示出来。(2)读入图像1b.tif,并使用imshow显示。这幅图像的动态范围很小,但可以使用下列语句修正其显示结果:imshow(h,[])。写出两次图像显示效果有什么差别。2、保存图像:读入1c.tif,分别以q=50、25、15和0将该图像用imwrite函数保存到硬盘上,文件名分别为1c50.jpg,1c25.jpg,1c15.jpg,1c0.jpg。写出q值对保存的图像有何影响。3、用MATLAB语言编程读入一幅24bit的彩色图像,将其转化成灰度图像、二值图像。并将所有图像保存。五丶程序代码与图片读取图片clearall;closeall;clc;f=imread('D:\image\avril.jpg');%读取图片并显示[m,n]=size(f);whosf;imshow(f);Size代码结果:NameSizeBytesClassf559x484x3811668uint8arrayGrandtotalis811668elementsusing811668bytesImshow(h,[])的图片显示结果与原图的差别:clearall;closeall;clc;f=imread('D:\image\avril.tif');%读取图片并显示subplot(131);imshow(f);xlabel('(a)原图');g=imread('D:\image\avril.tif');subplot(132),imshow(g);xlabel('(b)(f,[])')imwrite(f,’filename.jpg’,’quality’,q)q的取值对图像的影响:clearall;closeall;clc;f=imread('D:\image\avril.jpg');%读取图片并显示imwrite(f,'D:\image\Ic50.jpg','quality',50);imshow(f);Ic0Ic15Ic25Ic50灰度图像:f=rgb2gray(imread('D:\image\avril.jpg'));imshow(f)imwrite(f,'huidu.jpg');二值图像a=imread('D:\image\avril.jpg');b=rgb2gray(a);level=graythresh(b);c=im2bw(b,level);imshow(c);实验结果分析与总结:在经过对q值的几次测试之后,通过保存出来的图片的对比,q值越小,图片的清晰度月模糊。这次的实验主要对imread,size,whos,imshow,imwrite函数的使用和了解,能充分理解其使用方法。这次实验对在matlab上的图片的写入和读出,并没有太多的难度,但是这次的实验主要是让我们对在matlab上经行图片的初步处理,基本上实验还是很成功的。成绩指导教师日期第页,共页