MATLAB图像处理界面设计_第1页
MATLAB图像处理界面设计_第2页
MATLAB图像处理界面设计_第3页
MATLAB图像处理界面设计_第4页
MATLAB图像处理界面设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第 1 章 绪论 .21.1 课题研究目的及意义 .21.2 课题分析 .31.3 MATLAB 基本知识介绍 .31.3.1 MATLAB 的概述 .31.3.2 MATLAB 主要功能 .31.3.3 MATLAB 语言的特点 .41.3.4 MATLAB 在图像处理中的应用 .52.1 设计思路 .62.2 整体界面 .6第 3 章 具体设计与功能的实现 .83.1 文件 .83.1.1 打开 .83.1.2 保存 .93.1.3 退出 .103.2 编辑 .103.2.1 图片的缩放 .103.2.2 图片的翻转 .123.3 图像 .143.3.1 灰度 .143.3.2 调整 .143.4 快捷操作 .173.4.1 还原 .173.4.2 旋转 .183.4.3 裁剪 .193.4.4 撤销 .193.5 噪声 .203.6 滤除噪声 .213.7 频谱分析 .233.7.1 巴特沃斯低通滤波器 .233.7.2 高斯高通滤波器 .243.7.3 频谱图 .253.8 颜色模型转换 .263.9 直方图 .27结论 .30致谢 .31参考文献 .322第 1 章 绪论1.1 课题研究目的及意义数字图像处理(Digital Image Processing) ,就是利用数字计算机或者其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。应用 MATLAB 友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程和科研中的问题。1.2 课题分析数字图像处理技术在各个行业得到广泛的应用。其交互式的图形界面是操作者方便使用这些技术的途径。本题目将编制一个简易的图形界面读取各种格式的原始图像数据,并对它们自动分析和处理,得到所需要的有用信息,并把相关的信息显示出来,以便于工作人员研究分析。本文是基于 MATLAB 图形用户界面进行数字图像处理软件包的设计,详细介绍了图形用户界面的功能及使用方法,所设计软件包中包括图像处理技术的多个方面,并用 MATLAB 的图像处理工具箱进行了算法的实现。1.3 MATLAB 基本知识介绍1.3.1 MATLAB 的概述MATLAB 是 MATrix LABoratory(“矩阵实验室” )的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同的事情简捷得多。MATLAB 包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使 MATLAB 广受用户欢迎.除内部函数外,所有 MATLAB 主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.31.3.2 MATLAB 主要功能它是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用它,可以较使用传统的编程语言,如 C、C+等,更快的解决技术计算问题。高级语言可用于技术计算;开发环境可对代码、文件和数据进行管理;数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等;二维和三维图形函数可用于可视化数据;各种工具可用于构建自定义的图形用户界面;各种函数可将基于 matlab 的算法与外部应用程序和语言;其应用范围非常广,包括信号和图像处理、通迅、控制系统设计、测试和测量等众多应用领域。1.3.3 MATLAB 语言的特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同 FORTRAN 和 C 等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB 最突出的特点就是简洁。MATLAB 用更直观的,符合人们思维习惯的代码,代替了 C 和 FORTRAN 语言的冗长代码。MATLAB 给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下 MATLAB 的主要特点。(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB 程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 MATLAB 进行科技开发是站在专家的肩膀上。(2)运算符丰富。由于 MATLAB 是用 C 语言编写的,MATLAB 提供了和 C 语言几乎一样多的运算符,灵活使用 MATLAB 的运算符将使程序变得极为简短。 (3)MATLAB 既具有结构化的控制语句(如 for 循环,while 循环,break语句和 if 语句) ,又有面向对象编程的特性。(4)程序限制不严格,程序设计自由度大。例如,在 MATLAB 里,用户无需对矩阵预定义就可使用。(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。(6)MATLAB 的图形功能强大。在 FORTRAN 和 C 语言里,绘图都很不容易,但在 MATLAB 里,数据的可视化非常简单。MATLAB 还具有较强的编辑图形界面的能力。(7)MATLAB 的缺点是,它和其他高级程序相比,程序的执行速度较慢。4由于 MATLAB 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。(8)功能强大的工具箱是 MATLAB 的另一特色。MATLAB 包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox, signl processing toolbox,commumnication toolbox 等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。(9)源程序的开放性。开放性也许是 MATLAB 最受人们欢迎的特点。除内部函数以外,所有 MATLAB 的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。1.3.4 MATLAB 在图像处理中的应用图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT 变换等) 、图像分析和统计、二值图像操作等。下面就 MATLAB 在图像处理中各方面的应用分别进行介绍。(1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd 等格式图像文;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。(2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性算。例如,conv2(I,J)实现了 I,J 两幅图像的卷积。(3) 图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换(FFT) 、离散余弦变换 (DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。(4) 图像的分析和增强。针对图像的统计计算 MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。(5) 图像的数学形态学处理。针对二值图像,MATLAB 提供了数学形态学运算函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等丰富的数学形态学运算。5以上所提到的 MATLAB 在图像中的应用都是由相应的 MATLAB 函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。具体的用法可参考MATLAB 丰富的帮助文档。图像边缘对图像识别和计算机分析十分有用,在MATLAB 中,函数 edge()用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即 Sobel 方法、Prewitt 方法、Robert 方法,Laplacian2Gaussian方法、过零点方法和 Canny 方法。6第 2 章 整体设计2.1 设计思路利用 matlab 的 GUI 程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能:1)图像的读取和保存。2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。4)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。5)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存。6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。2.2 整体界面图 2.2.1 总体设计界面布局7图 2.2.2 菜单栏的设计图 2.2.3 功能切换选择组显示区域:左侧显示原图,右侧显示操作的图片操作区域:上方菜单栏:包括文件、编辑、图像编辑等功能左侧快捷操作:包含一些常用操作,还原、旋转、裁剪、撤销下方功能切换选择组:包含一些图片处理的常用操作,噪声、滤除噪声、频谱分析等。8第 3 章 具体设计与功能的实现3.1 文件3.1.1 打开为了让使用者更方便的使用,所以在设计的时候,通过对话框的形式来选择文件,选择 uigetfile 函数来实现,uigetfile 函数显示一个打开文件对话框,该对话框自动列出当前路径下的目录和文件,由于这个 GUI 程序的操作对象是图像文件,所以设置这里的缺省后缀名为“.bmp” 。Uigetfile 函数的调用格式为name,path=yigetfile(), 在按下对话框中的执行按钮“打开”后,返回选择的文件名和路径,分别保存到“name”和“path”中。如果按下取消按钮或是发生错误,则返回值是 0。 根据返回值的情况,如果是 0,则弹出提示错误的对话框,否则,通过 imread 函数读出图像数据,把图像数据赋值给全局变量 handles.img。程序如下所示:filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,载入图像);if isequal(filename,0)|isequal(pathname,0)errordlg(没有选中文件,载入图片失败);return;else file=pathname,filename;global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作S=file;x=imread(file);set(handles.axes1,HandleVisibility,ON);axes(handles.axes1);imshow(x);set(handles.axes1,HandleVisibility,OFF);axes(handles.axes2);imshow(x);handles.img=x;guidata(hObject,handles);End9(a) (b)图3.1.1 (a)(b)载入新图像3.1.2 保存同样也通过对话框的形式来保存图像数据,通过 uigetfile 函数选择文件名和路径,用 getimage(gca)取出坐标 2 变换后的图像数据保存到变量 i,最后用 imwrite 函数,把数据 i 存到指定的文件。程序如下所示:sfilename ,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存图像文件,untitled.jpg);if isequal(sfilename,sfilepath,0,0)sfilefullname=sfilepath ,sfilename;imwrite(handles.img,sfilefullname);elsemsgbox(取消保存,保存失败);End图3.1.2 图像的保存103.1.3 退

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论