MATLAB GUIDE在数字图像处理教学中的应用

时间:2022-09-16 06:28:26

MATLAB GUIDE在数字图像处理教学中的应用

摘要: MATLAB GUIDE(Graphical User Interfaces,图形用户界面)是为表现MATLAB中的基本功能而设计的演示程序。本文通过对数字图像处理中几个常用的设计例子,开发和利用MATLAB GUIDE的教学自动控制系统,展示了MATLAB GUIDE在数字图像处理课程辅助教学的优点。

Abstract: MATLAB GUIDE(Graphical User Interfaces) is designed for the basic function of MATLAB in the demo program. This paper analyzes several examples commonly used in digital image processing design, automatic control system development and utilization of MATLAB GUIDE teaching, MATLAB GUIDE shows advantages in the teaching of digital image processing.

关键词: MATLAB GUIDE;数字图像处理;辅助教学

Key words: MATLAB GUIDE;digital image processing;auxiliary teaching

中图分类号:TP391 文献标识码:A 文章编号:1006-4311(2014)03-0184-03

1 简介

1.1 MATLAB简介 MATLAB是Matrix & Laboratory两个词的组合,意为矩阵实验室。是由美国Math works公司的主要面对科学计算、可视化以及交互式程序设计的高科技计算语言环境。它在数学类科技应用软件中的数值计算方面首屈一指。它将矩阵计算、数值分析、科学数据可视化以及动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,已经经受了用户的多年考验。在欧美发达国家,MATLAB已经成为应用线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;也成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业相关部门,MATLAB被广泛地用于研究和解决各种具体工程问题[1]。

1.2 MATLAB GUIDE简介 MATLAB GUIDE(Graphical User Interfaces,图形用户界面)是MATLAB为表现其基本功能而设计的演示程序。图形用户界面GUIDE,实则是由窗口、菜单、按钮、文字说明、光标等对象构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些对象,使计算机产生某种动作响应,比如实现计算、绘图等。

假如读者所从事的数据分析、求解方程等比较单一的工作,一般不会考虑使用GUIDE辅助工作。但是如果需要向别人提供应用程序,想进行某种技术、方法、效果的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面可能是最好的选择。

生成图形用户界面最常见的理由有:

①编写函数或开发应用程序供他人使用;

②编写一个需多次反复使用的实用函数;

③创建一个过程、技术或分析方法的交互式示例。

简单来说,图形用户界面的设计应遵循以下三个原则:简单性、一致性及通常性。一般的设计制作步骤包括界面设计和程序实现,具体如下:

①分析界面所需要实现的主要功能;

②绘画草图,并从使用者的角度来审视草图并修改;

③按照构思制作静态界面;

④编写界面中动态功能的程序代码,并检查[2]。

1.3 数字图像处理课程简介 数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功[3]。

一般来讲,对图像进行处理(或加工、分析)的主要目的有三个方面:

①提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。

②提取图像中所包含的某些特征或特殊信息,这些被提取的特征或信息往往为计算机分析图像提供便利。提取特征或信息的过程是模式识别或计算机视觉的预处理。提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。

③图像数据的变换、编码和压缩,以便于图像的存储和传输。

不管是何种目的的图像处理,都需要由计算机和图像专用设备组成的图像处理系统对图像数据进行输入、加工和输出[4]。

2 “数字图像处理”教学中遇到的问题及解决的办法

2.1 遇到的问题 数字图像处理是一门注重公式和理论推导较多的学科。使用多媒体的方法不利于公式推导;使用黑板式教学则缺乏对结果的可视化的直观表现。长期以来,由于本门课程本身的特点及教学方法、教学手段单一化,使本门课程一直处于难教难学的状态中。

2.1.1 课程起点高、难度大 数字图像处理这门课程涉及的数学知识有对数变换、幂次变换、矩阵变换和逆变换、双线性插值计算、连续傅里叶变换、离散傅里叶变换、离散余弦变换、卷积和传递函数、加权积分函数计算、概率密度函数计算、各种滤波器的传递函数计算、信息熵、哈夫曼编码、线性预测编码和变换编码等等。课程中大量的公式推导和理论推导给学生的学习带来困难。传统的教学方法只注重公式理论的推导,忽视了理论的实现步骤,较少演示图像经过各种算法计算后的处理效果,学生感觉非常抽象,难以理解,从而逐步失去学习的兴趣。

2.1.2 多学科交叉,知识面极广 数字图像处理涉及的学科有高等数学、数字信号处理、高级语言编程、随机过程、微电子技术、光学技术、计算机技术 、人工智能程序设计和数学分析等领域。课程内容广泛,多学科知识交叉、集成和互相渗透,对教与学都提出了很高的要求。

2.1.3 班级学生多,教与学难以互动 随着高校的不断扩招,造成学生整体的水平严重下降,学生本身所受的素质教育已经对之前学校定下的水平有很大的差别。教师面对这么多学生,已经没有太多的精力来提高学生的水平,也没有太多的精力来提高自己的文化水平。这种情况直接导致了大班授课,教师难以与学生进行有效的课堂互动,更别说了解每个学生的接受情况和接受能力。

2.1.4 教学课时数与教学内容的矛盾 现在高校由于招生人数多,不得已不断压缩教学课时数。例如数字图像处理该门课程的教学课时数32学时,在教学过程中,既要复习高等数学的基础知识,又要介绍图像处理的基本理论,还需要针对特别的例子进行程序编写并解释,更加需要课堂的实践应用。因此教学内容非常多,需要教师在教学过程中不断增删不太重要的知识,以保证教学的正常进行。

2.1.5 学生水平参差不齐 由于各学科的交叉融合在数字图像处理课程的体现,有部分学生的高等数学公式推导部分没有学好,或者在计算机语言程序编写中的基础没有学好,又或者在其他涉及的学科知识没有学好,都直接导致本门课程学不好。而教师在教学中只能取中等的水平进行教学,尖子生和差生都感觉学习有问题。尖子生感觉教师的授课内容已经了如指掌,差生却感觉教师授课快,难以跟上等等,都需要教师在授课过程中作出合适的调整。

2.2 解决的办法 面对这样一门理论与实践、原理与应用紧密结合的课程,学生们在学习中往往会碰到许多困难:既为数字图像处理广泛应用的前景所吸引,又困扰于课程的理论性。在一些复杂的数学推导面前望而却步,逐渐丧失学习的兴趣。如何提高学生们的学习兴趣,提高学习的积极性,更好的让学生掌握这门课程,本文从以下几个方面进行了探讨:

①利用MATLAB简化公式推导。MATLAB本身自带的数值计算和分析功能,例如微积分运算,微分方程求解,卷积求解,矩阵逆矩阵变化,傅里叶变换求解等,都可以通过简单的建模、编程来完成。

②利用MATLAB将抽象结果具体化。利用MATLAB对计算结果的可视化功能,制作出GUIDE图形用户界面程序,将所有计算过程,公式推导过程简化为一个按钮带出的响应系统。

③将复杂编程过程简单化。程序编写不单需要深厚的编程基础,还需要针对出错的程序进行差错处理,针对效果修改程序处理。因此在授课过程中,如果把时间都用于上述复杂的步骤,那么让学生学习新知识的时间就很少了。本文论述一种全新的图形用户界面,将程序以结果的方式展示,再讲解注释,引导学生自主编写程序,简化学习过程。

④加强学习互动性。由于教师授课时间有限,与学生互动的时间少,导致学生有问题的不能发问,有不明白的地方也难以弄清楚,将教学难度加大。本文将数字图像处理课程中较为抽象,学生难以理解的概念和问题,通过程序一个编写成类似教学课件的平台,用按钮、文字、图形和动画及友好的人机交互界面展现出来,学生可以多次观看,操作。

3 创建MATLAB GUIDE实例

MATLAB GUIDE开发工具为用户提供以下几种组件布局工具。通过这些工具可以很方便地修改或者调整图形界面元素的各种属性。

组件布局编辑器:添加和安排图形窗口中的对象。

排列工具:排列对象的相对次序。

属性编辑器:检查和设置属性值。

对象浏览器:观察本次运行中图形对象句柄的层次关系。

菜单编辑器:创建图形窗口菜单[5]。

3.1 基本功能 本文就以上的介绍,制作了一个简单的图形用户界面。该GUIDE程序有以下基本功能:

①一级菜单start和save按钮实现图像的读取和保存。

②实现图像灰度变换的调整,并实时显示变化后的图像效果。

③实现图像的任意角度旋转和缩放图像。

④实现图像直方图均衡化,并显示直方图效果。

⑤实现二维傅里叶变换。

⑥添加高斯噪声或椒盐噪声,并用平滑滤波器、均值滤波器进行滤波。

3.2 总体设计 软件的总体设计界面布局如图1所示,主要分为2个部分:显示区域与操作区域。

显示区域:显示载入的原图像,显示处理后的效果图。

操作区域:通过各功能键实现对图像的各种处理。

具体设计步骤如下:

①新建一个GUIDE窗口,保存。通过Menu Editor创建一级菜单file,在其下设置两个子菜单项start和save,实现文件的打开、保存功能。

②建立2个静态文本,用于标注相应空间的提示,显示为“原始图像”,“处理后的图像”。

③建立2个坐标轴对象,用于显示原始图像和处理后的图像。

④建立7个按钮,分别用于图像灰度变换、旋转图像、缩放图像、直方图均衡化、傅里叶变换、添加噪声、滤波。

⑤设置2个可编辑文本框,用于动态输入旋转的角度,缩放图像的系数。

⑥设置2组单选按钮,每组有2个单选按钮。第一组实现高斯噪声和椒盐噪声之间的切换。第二组实现平滑滤波器和均值滤波器之间的切换。

⑦设置上述控件的相关属性。控件的标识Tag是对于各控件的识别,每个控件创建时都会由开发环境自动产生一个标识。在程序设计中,为了编辑、记忆和修改的方便,一般会为控件设置新的标识。

⑧编写代码和回调函数。

4 结束语

本文通过对数字图像处理课程的性质的阐述,设计制作了图形用户界面的例子,展示了有人机交互功能的图形用户界面GUIDE可使数字图像处理的分析及效果展示有了可控的,直观性的变化。因此将其应用于数字图像处理课程辅助教学中,能使学生更易于理解并接受课程中的理论知识,对课程更感兴趣,提高学习积极性。

参考文献:

[1]Andreatos A S, Zagorianos A. Matlab GUI application for teaching control systems[C]//Proc. of the 6th International Conference on Engineering Education. 2009.

[2]Erenturk K. MATLAB based GUIs for fuzzy logic controller design and applications to PMDC motor and AVR control[J]. Computer Applications in Engineering Education, 2005, 13(1):10-25.

[3]陈矗光,毛涛涛,王正林,等.精通 MATLAB GUI设计[M]. 北京:电子工业出版社,2008.

[4]王玉林,葛蕾,李艳斌.新型界面开发工具:MATLAB/GUI[J].工程实践及应用技术,2008,34(6).

[5]徐增伟,曾黄麟,江泌,等.基于 MATLAB GUI 的研究生学业评估系统设计[J].四川理工学院学报(自然科学版),2011,24(4).

上一篇:自主招生多元录取生源的培养探索 下一篇:民办高职院校学生心理健康教育工作的思考与实...