您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > MATLAB数字图像处理
图像处理与分析实验指导书何家峰王华香崔苗朱铮涛编写广东工业大学信息工程学院2006年6月图像是一种重要的信息源,图像处理的最终目的就是要帮助人类理解信息的内涵。数字图像处理技术的研究内容涉及光学系统、微电子技术、计算机科学、数学分析等领域,是一门综合性很强的边缘学科。随着计算机的迅猛发展,图像处理技术已经广泛应用于各个领域。“数字图像处理”课程内容主要包括利用计算机对图像信息进行图像采集、图像变换、图像增强与恢复、图像分割、图像分析与理解、图像压缩、图像传输等各种处理的基本理论、典型方法和实用技术。通过本课程的学习,可使学生掌握有关图像处理与图像分析的基本概念、基础理论、实用技术和典型方法。通过该系列实验教学与实践,使学生了解和掌握利用各种图像采集设备__图像扫描仪、数码照相机、录像机、数码摄像机等获取多种格式的静态、动态图像数据的方法及手段,了解图像增强、图像分割、图像理解和分析算法的物理意义;了解图像传输、图像编码等相关技术的基本原理、软/硬件构成以及典型的应用;此外对图像远程传输、存贮等网络流媒体远程通信技术、数据库管理与维护、超文本系统等方法也进行必要的了解,为将来的研究和应用打下良好的基础。应用于图像处理的计算机软件技术平台很多,如VC++、MATLAB等。本实验指导书选用MATLAB做实验平台,MATLAB是一种基于向量(数组)而不是标量的高级程序语言,而数字图像实际上就是一组有序的离散数据,从而MATLAB从本质上就可以提供对图像处理的技术支持。实验一:图像预处理实验(验证性实验)一、实验目的与要求:目的:通过本次实验,学生可以掌握图像读取、显示和保存的方法,掌握空间域增强方法和频率域增强方法。要求:上机运行,调试通过。二、实验方案:1)对附录中的练习1~11、练习13,进行上机运行和调试。2)对上述练习,改变一些函数的参数,观察运行结果的变化。三、实验结果与数据处理对每个练习,要求学生获得相应的实验结果。四、结论可以是对某些MATLAB函数如何使用的认识,也可以是学生的实验后的心得体会。五、问题与讨论1)在显示傅里叶频谱前,为什么常常进行对数变换?2)对实验中遇到的问题,进行讨论。实验二:形态学处理、图像分割、表达与描述实验(验证性实验)一、实验目的与要求:目的:要求学生掌握形态学处理、图像分割和图像表达与描述的基本方法,掌握相关的MATLAB函数。要求:上机运行,调试通过。二、实验内容:1)对附录中的练习15~24、练习26、练习28~32,进行上机运行和调试。2)对上述练习,改变一些函数的参数,观察运行结果的变化。三、实验结果与数据处理对每个练习,要求学生获得相应的实验结果。四、结论可以是对某些MATLAB函数如何使用的认识,也可以是学生的实验后的心得体会。五、问题与讨论1)在形态学处理中,结构元选取的原则是什么?举例说明。2)对实验中遇到的问题,进行讨论。实验三:直方图均衡化实验(设计性实验)实验名称:直方图均衡化实验实验项目性质:设计性实验所属课程名称:《图像处理与分析》计划学时:2一、实验目的与要求1.目的:通过本次实验,加深学生对直方图均衡化的基本原理的理解,加强学生的算法设计和编程实现的能力。2、要求:根据直方图均衡化的原理,设计直方图均衡化的算法,并编程实现直方图均衡化的功能。二、预习与参考1.R.C.Gonzalez,R.E.Woods。《数字图像处理》(第二版)。北京:电子工业出版社,2003。2.《图像处理与分析实验指导书》的附录。2.R.C.Gonzalez,R.E.Woods,S.L.Eddins。《数字图像处理》(MATLAB版)。北京:电子工业出版社,2005。3.徐飞,施晓红。《Matlab应用图像处理》。西安:西安电子科技大学出版社,2002。三、实验方案此方案为参考方案,鼓励学生提出自己的方案。实现直方图均衡化的实现步骤:1.列出原始图像的灰度级1,,1,0,Ljfj,其中L是灰度级的个数。2.统计各灰度级的像素数目1,,1,0,Ljnj。3.计算原始图像直方图各灰度级的频数1,,1,0,/)(LjnnfPjjf,其中n为原始图像总的像素数目。4.计算累积分布函数1,,,1,0,)()(0LkjfPfCkjjf。5.应用以下公式计算映射后的输出图像的灰度级1,,,,1,0,Pkigi,P为输出图像灰度级的个数:]5.0)()[(minminmaxgfCggINTgi其中,INT为取整符号6.统计映射后各灰度级的像素数目1,,,,1,0,Pkini。7.计算输出直方图1,,1,0,/)(PinngPiig。8.用ijgf和的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像。四、实验(设计)仪器设备和材料清单1.计算机1台/每人五、考核形式1.验收调试结果;2.实验报告六、实验报告要求1.技术路线;2.MATLAB程序;3.运行结果;4.心得体会七、思考题1.直方图均衡化的目的是使图像直方图尽可能地分布均匀,你有什么改进的思路?2.你是如何理解步骤5的?3.对实验中遇到的问题,进行讨论。附录一:MATLAB数字图像处理1MATLAB简介1.1主要用途及特点主要用途:算法研究主要特点:语句功能强大;不能生成可执行文件。1.2MATLAB工作环境1.2.1Matlab桌面桌面包括5个子窗口:命令窗口、工作空间窗口、当前目录窗口、历史命令窗口、一个或多个图形窗口(仅在用户显示图形式出现)。命令窗口是用户在提示符()处键入MATLAB命令和表达式的地方,也是显示那些命令输出的地方。工作空间窗口显示对话中创建的变量和它们的某些信息。当前目录窗口显示当前目录的内容(即路径)。历史命令窗口包含用户已在命令窗口中输入的命令的纪录。1.2.2使用MATLAB编辑器创建M文件1.2.3获得帮助(1)help函数名(2)lookfor关键词2数字图像的读取、显示、保存、数据类型和图像类型、数据类型间的转换、图像类型间的转换2.1图像的读取语法:imread(‘filename’)说明:读取图像格式名称描述可识别扩展符TIFF加标记的图像文件格式.tif,.tiffJPEG联合图像专家组.jpg,.jpegGIF图形交换格式.gifBMPWindows位图.bmpPNG可移植网络图形.pngXWDXWindow转储.xwd语法:[M,N]=size(‘filename’)说明:给出一幅图像的行数和列数2.2图像的显示语法:imshow(f,G)imshow(f,[lowhigh])imshow(f,[])说明:G是显示该图像的灰度级数;小于或等于low的值都显示为黑色,大于或等于high的值都显示为白色。[]自动将变量low设置为f的最小值,将high设置为f的最大值。2.3图像的保存语法:imwrite(f,‘filename’)说明:保存图像练习1f=imread(‘saturn.tif’);[M,N]=size(f);g=imread(‘trees.tif’);imshow(f);figure,imshow(g);%显示另一幅图像imwrite(f,‘s2.jpg’)2.4数据类型名称描述double双精度浮点数,范围为-10exp(308)~10exp(308),8字节uint8无符号8比特整数,1字节uint16无符号16比特整数,2字节uint32无符号32比特整数,4字节int8有符号8比特整数,1字节int16有符号16比特整数,2字节int32有符号32比特整数,4字节single单精度浮点数,范围为-10exp(38)~10exp(38),4字节char字符logical值为0或1四种常用类型:double,uint8,char,logical。2.5图像类型名称描述亮度图像uint8类范围为[0255]、double类归一化为[01]二值图像图像取值只有0和1的逻辑数组索引图像索引图像RGB图像彩色图像2.6数据类与图像类型间的转换2.6.1数据类间的转换语法:B=data_class_name(A)举例:若A是8位图像,则B=double(A)转换为双精度图像。2.6.2图像类型间的转换函数名称将输入转换为有效的输入图像数据类im2uint8uint8Logical,uint8,uint16和doubleim2uint16uint16Logical,uint8,uint16和doublemat2graydoubledoubleim2doubledoubleLogical,uint8,uint16和doubleim2bwlogicaluint8,uint16和double练习2f=[12;34];g=mat2gray(f);gb=im2bw(g,0.6)%0.6isathreshold3亮度变换与空间滤波3.1亮度变换函数3.1.1基本亮度变换函数语法:g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)说明:将图像f中的亮度值影响到g中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值,low_in以下的值映射为low_out,high_in以上的值映射为high_out。参数gamma指定了映射曲线的形状。练习3f=imread(‘pout.tif’);imshow(f);g1=imadjust(f,[01],[10]);figure,imshow(g1);g2=imadjust(f,[0.50.75],[10],0.5);figure,imshow(g2);3.1.2对比度拉伸变换对数变换方法:g=c*log(1+double(f))说明:对数变换的一项主要应用是压缩动态范围,常用于傅里叶频谱显示。练习4f=imread(‘pout.tif’);F=fft2(f);%FourierTransformFC=fftshift(F);%将变换原点移到频率矩形的中心。imshow(abs(FC),[]);S2=log(1+abs(FC));figure,imshow(S2,[]);对比度拉伸方法:g=1./(1+(m./(double(f)+eps).^E)说明:eps是浮点数的相对精度,可避免f出现0值时的溢出现象。3.2直方图处理与函数绘图3.2.1生成并绘制图像的直方图语法:h=imhist(f,b)p=imhist(f,b)/num1(f)说明:b是用于形成直方图的灰度级的个数。p是归一化直方图。num1(f)是求图像所有像素的灰度和的一个形式化的函数,需要自己编写。例如:s=sum(f),s=sum(s),这两条语句合在一起,就实现了图像所有像素的灰度求和。练习5f=imread(‘pout.tif’);imhist(f);3.2.2直方图均衡化语法:g=histeq(f,nlev)说明:nlev是为输出图像制定的灰度级数。练习6f=imread(‘tire.tif’);imshow(f);figure,imhist(f);ylim(‘auto’);%自动设定y轴坐标范围和刻度g=histeq(f,256);figure,imshow(g);figure,imhist(g);ylim(‘auto’);3.3空间滤波3.3.1线性空间滤波语法:g=imfilter(f,w,filtering_mode,boundary_options,size_options)说明:w为滤波掩模选项描述滤波类型‘corr’滤波器通过使用相关来完成。该值是默认值。‘conv’滤波器通过使用卷积来完成边界选项P输入图像的边界通过用值P来扩展。P的默认值为0。‘replicate’图像大小通过复制外边界的值来扩展。‘symmetric’图像大小通过反射其边界来扩展。‘circular’图像大小通过将图像看成是一个二维周期函数的一个周期来扩展大小选项‘full’输出图像的大小与被扩展图像的
本文标题:MATLAB数字图像处理
链接地址:https://www.777doc.com/doc-5740335 .html