Computer Knowledge and Technology 电脑知识与技术本栏目责任编辑:谢媛媛软件设计开发第7卷第25期(2011年9月)通过MATLAB GUI 实现图像处理软件的开发张敏1,洪汉玉2(1.武汉工程大学电气信息学院,湖北武汉430205;2.武汉工程大学机电工程学院,湖北武汉430205)摘要:数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。
图像处理的信息量很大,对处理速度的要求也比较高。
Matlab 具有强大的运算和图形展示功能,使图像处理变得更加的简单和直观。
该文主要介绍了基于MATLAB 的图形用户界面(Graphical User Interfaces,GUI )来制作图像处理软件的基本过程,该文首先简单介绍下MATLAB 的GUI 与GUIDE ;其次,介绍了GUIDE 的模板及其基本操作方法;最后,介绍了通过MATLAB GUI 实现图像处理软件的开发方法。
该文开发的图像处理软件可以实现的基本功能有:常用的边缘检测以及彩色图片的灰度化。
关键词:图形用户界面;图形用户界面开发环境;灰度图片;图像处理;边缘检测中图分类号:TP317.4文献标识码:A 文章编号:1009-3044(2011)25-6156-02The Realization of Image Processing Software Development by MATLAB GUIZHANG Min 1,HONG Han-yu 2(1.School of Electrical and Information Engineering,Wuhan Institute of Techonlogy,Wuhan 430205,China;2.School of Mechanical and Electrical Engineering,Wuhan Institute of Techonlogy,Wuhan 430205,China)Abstract:Digital image processing is a technology that using computer to process images through a certain algorithm.There is a large amount of information to process in image processing,the requirements of the speed of processing is even higher.Matlab has powerful func -tions of computing and graphics display,which makes image processing become more simple and visual.This paper mainly introduces the MATLAB based graphical user interface (Graphical User Interfaces,GUI)to make the image processing software the basic process.This pa -per first briefly under the MATLAB GUI and GUIDE;secondly,introduced the GUIDE template and the basic method of operation;fi -nally,introduced by MATLAB GUI realize image processing software development method.In this paper the development of image pro -cessing software can achieve the basic functions are:the commonly used edge detection and color images of gray.Key words:GUI;GUI development environment;gray Image;image processing;edge detection数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。
数字图像处理技术已经在各个领域上都有了比较广泛的应用。
图像处理的信息量很大,对处理速度的要求也比较高。
Matlab 强大的运算和图形展示功能,使图像处理变得更加的简单和直观。
本文基于MATLAB 的数字图像处理环境,通过MATLAB GUI 实现图像处理软件的开发设计,实现了一个图像处理系统,通过利用Matlab 的工具函数和多种算法实现对图形图像边缘检测的处理。
对图像分析和理解而言,基本的就是图像分割和区域描述,图像分割部分是图像识别的基础。
1GUIDE 的操作界面使用方法及GUI 的设计介绍图形用于界面(GUI )是提供人机交互的工具和方法。
GUI 是包含图形对象(如窗口、图标、菜单和文本)的用户界面。
MATLAB 的GUI 为开发者提供了一个不脱离MATLAB 的开发环境,有助于MATLAB 程序的GUI 集成。
在MATLAB 中的GUIDE 就是图形用户界面开发环境(Graphical User Interface Development Environment ),它向用户提供了一系列的创建用户图形界面的工具。
这些工具大大简化了GUI 设计和生成的过程。
下面对GUIDE 的操作界面及使用方法做一简单介绍。
在命令窗口中直接键入guide ,启动GUIDE ,利用GUIDE 模板创建GUI ,或者打开已经存在的GUI ,GUIDE 把GUI 设计的内容保存在两个文件中,它们在第一次保存或运行时生成。
一个是FIG 文件,扩展名为.Fig ,它包含对GUI 和GUI 组件的完整描述;另外一个是M 文件,扩展名为.M ,它包含控制GUI 的代码和组件的回调事件代码。
这两个文件与GUI 显示和编程任务相对应。
在版面设计器中创建GUI 时,内容保存在FIG 文件中;对GUI 编程时,内容保存在M 文件中。
用GUIDE 版面设计器,根据设计需要:首先拖拽两个图形窗口(Axes ),一个作为待处理图片区域,另一个作为已处理图片区域;其次,拖拽五个电子按钮(Radio Button ),作为边缘检测操作按钮;第三,拖拽五个按钮(Push Button ),作为输入等的按钮;最收稿日期:2011-07-26基金项目:国家自然科学基金资助(61175013;50975211)作者简介:张敏(1964-),男,湖北武汉人,副教授,工程硕士,研究方向为过程控制及系统仿真。
图1图像处理软件的GUIDE 版面E-mail:xsjl@ Tel:+86-551-56909635690964ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.7,No.25,September 2011.6156Computer Knowledge and Technology 电脑知识与技术软件设计开发本栏目责任编辑:谢媛媛第7卷第25期(2011年9月)后,将上面的所有按钮及图形窗口合理的布局,达到美观工整的效果,然后运行一下GUI ,系统会自动生成GUI 文件[1]。
上面已经规划好了按钮的位置,如果想在点击选取图片按钮时,软件给予响应,需要给按钮输入一定的程序代码。
下面以输入按钮的GUI 设计为例介绍一下GUI Callback 的设计方法,其它的与之类似,就不介绍了。
设置代码的方法如下:右键单击选取图片按钮,选择View Callbacks/Callback ,系统会自动带设计者进入此按钮的代码输入区域,在下面的空白处输入如下代码[1]:global im %定义一个全局变量im[filename,pathname]=...uigetfile({'*.*';'*.bmp';'*.tif';'*.png'},'select picture');%选择图片路径str=[pathname filename];%合成路径+文件名im=imread(str);%读取图片axes(handles.axes1);%使用第一个axesimshow(im);%显示图片运行GUI ,将生成图像处理的软件平台,本文设计的GUI 如图1所示,该图像处理软件可以实现的功能有:五种常用的边缘检测,图像输入,图像转换(彩色图片灰度化)等。
2基于MATLAB GUI 的图像处理软件边缘检测过程在图像处理技术中,往往要求对图像描述并对图像进行分析和理解。
图像分析和理解,在实际应用时,非常重要。
如,对大规模集成电路的自动检测、对医学癌细胞的识别里、在机器人的视觉领域方面等,都是十分重要的。
对图像分析和理解而言,基本的就是图像分割和区域描述。
本文主要是研究图像分割部分,因为它是图像识别的基础,如图2所示。
图像分割就是将图像中有意义的对象与背景分离,并把这些对象按照不同的含义分割出来,即将图像中具有不同含义的对象提取出来。
图像分割可以分为两种:一是基于边界的分割技术;另一是基于区域的分割技术。
这里主要涉及的是第一种即边缘检测。
边缘检测是一种重要的区域处理方法,边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带。
对这种变化最有用的两个特征是灰度的变化率和方向。
边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定。
图3中显示了图像边缘所对应的一阶、二阶导数曲线,从中可以看到,图像边缘对应一阶导数的极大值点、图像边缘对应二阶导数的过零点。
所以,利用求导的方法可以较方便地检测到灰度值的不连续效果[2-3]。
边缘的检测可以用微分算子利用卷积来实现。
常用的微分算子有梯度算子和拉普拉斯算子等,这些算子可以检测图像的二维边缘,而且可以检测图像的三维边缘。
MATLAB 工具箱提供的常用的梯度算子有基于一阶导数的边缘的检测算子,如:Sobel 算子、Prewitt 算子、Roberts 算子;有基于二阶导数的边缘的检测算子即拉普拉斯(Laplacian )算子,如:Log 算子;另外,Canny 算子是基于最优化思想推导出的边缘检测算子[3]。