区分难度等级的数字图像处理教学实验设计
区分难度等级的数字图像处理教学实验设 计 摘要:本文在分析目前数字图像处理课程遇到的几个问题 的基础上,提出区分难度等级的数字图像处理实验设计理 念,并用一个实例进行了说明。实践表明,绘制程序流程图 以及区分难度等级的数字图像处理实验可以使学生更好地 掌握数字图像处理相关算法,激发学生学习兴趣,提高学生 编程能力和创新能力。 关键词:数字图像处理实验 流程图难度等级 DOI: 10. 16657/j. cnki. issnl673-9132. 2016. 01. 009 数字图像处理是信息科学中发展最快的研究热点方向, 是模式识别、计算机视觉、多媒体技术等学科的基础。自从 20世纪60年代以来伴随着计算机技术的高速发展,数字图 像处理技术获得了长足进步并且已经广泛应用于社会生活 的各个领域。从20世纪80年代开始,我国部分高校开始设 置数字图像处理课程,目前其已经成为高校信息类专业普遍 开设的一门课程。我校计算机学院、信息学院和电气学院的 相关专业都开设了数字图像处理课程。 然而,目前数字图像处理课程遇到如下几个问题:(1) 数字图像处理课程从本质上说是一门研究数学算法的课程, 而现实的教学情况是学生普遍数学功底薄弱,学生面对抽象 的数学问题有严重的畏难情绪,一些学者对此在教学和实验 上进行了许多研究[1-4]。(2)计算机类、信息类的相当一 部分硕士研究生和博士研究生都在进行和图像处理相关的 研究,因此数字图像处理课程成为多个学校研究生入学考试 课程或面试课程。(3)目前部分诸如“软件杯”这样的全国 大学生竞赛,会选用一些需要图像处理知识的竞赛题目,例 如人脸识别及认证登陆、基于视频文件的车辆分析系统等。 全国数学建模大赛2013年题目一一碎纸片的拼接和复原, 也要利用图像处理的知识。 这就要求我们在有限的数字图像处理授课中,如我校计 算机专业数字图像处理为32学时,不仅要使得学生掌握数 字图像处理,诸如图像变换、图像增强、图像复原、图像编 码和图像分割等基本图像处理的算法原理,更要引导学生运 用专业知识解决实际问题,并尝试改进,激发学生专业兴趣, 培养创新意识。 我自2007年春季学期开始讲授数字图像处理,个人学 习经历、多年的教学经验以及和其他优秀任课教师多方交 流,深刻认识到编程实现算法,即将枯燥的理论推导转化为 立竿见影的实际操作可以激发学生的学习兴趣、激励学生的 创造性思维。因此,针对计算机专业的数字图像处理课程的 辅助课程一一数字图像处理实验,我进行了一些深入的研 究。 一、编程语言的选择 鉴于我校计算机专业学生在大二下学期学习数字图像 处理课程,此时已经学习的C++编程语言,有一定的编程基 础。而MATLAB语言计算矩阵比较方便,并且Image Processing Toolbox提供了一套全方位的参照标准算法、 函数和应用程序,可用于进行图像处理、分析、可视化和算 法开发。因此,数字图像处理实验课程首先会用两个学时简 要介绍MATLAB编程环境和图像中常用函数。在实现具体算 法时,编程语言主要选择MATLAB语言,对于部分算法,学 生可以选用C++语言实现,这样安排可以使学生掌握不同的 编程语言,主要在于编程环境不同,提高学生自学能力。 二、分难度等级的实验设计 学生的学习能力和编程能力有一定的差异,部分实验内 容分为三个等级: 1. A等级:绘制算法流程图,并用MATLAB库函数实现相 关算法;教学目的:熟练掌握数字图像处理算法。 2. B等级:绘制算法流程图,自己按照流程图用MATLAB 语言或C语言编程实现算法;教学目的:熟练掌握数字图像 处理算法,提高编程能力。 3. C等级:绘制算法流程图,自己按照流程图用MATLAB 语言或C语言编程实现算法,并比较多种相关算法,或分析 算法优缺点,改进算法;教学目的:熟练掌握数字图像处理 算法,提高编程能力,培养学生创新能力。 实验设计强调两点:(1)流程图的重要性:A、B和C 三个等级中都要求学生必须绘制算法流程图。我根据多年教 学经验发现,很多学生面对算法不知从何入手,而绘制算法 流程图可以使思路清晰,一方面可以更深刻地了解算法本身 的含义,另一方面可以将复杂问题简单化,将多个功能简化 为一个个小功能,比较容易入手。(2)实验区分难度等级, A等级激发学生学习兴趣,所有学生都必须具备此水平;B等 级提高学生编程能力,鼓励学生在A等级基础上自助完成B 等级实验;C等级培养学生创新能力,鼓励考研,参加竞赛的 学生提前做好准备。 下面列举数字图像处理的其中一个实验一一图像空间 域平滑。该实验的主要目的是要求掌握几种常见的图像平滑 算法,主要涉及的算法有局部平滑法、超限像素平滑法、灰 度最相近的K个邻点平均法、最大均匀性平滑法、有选择保 边缘平滑法以及中值滤波法。 A等级:绘制所有算法的流程图,并能用MATLAB库函数 实现局部平滑法和中值滤波法,给出图像处理结果。 B等级:在A等级的基础上,不用库函数,实现各种算 法,给出图像处理结果。 C等级:在B等级的基础上,利用上述算法,对不同的 图像进行处理,并对处理结果进行比较分析,鼓励改进算法。 图1示出了 4-邻域局部平滑法的流程图和对应的 MATLAB程序,属于B等级,不同算法主要区别在于图1中间 虚线部分示出部分的两层循环内处理形式,这也是算法核心 所在。 [开始][读入原图;初始化新图][获取图像尺寸M行N 列][行初始值 i=2][列初始值 j=2] [j<;N] [G (i, j) = (f (i-1, j) +f (i, j- 1) +f (I, j+D +f (i+l, j)) /4] [j=j+l] [i=i+l][显 示新图像][结束][f=imread ( 原图.png ) G=f; [M, N]=size (f); ][for i=2: M-l for j=2: N-l G (i, j)= f (i-l, j) +f (i, j-D + f (I, j+D +f (i+l, j) /4 end end][Figure; Imshow (G) ;][N][N] 图1局部平滑法流程图和MATLAB程序 三、结束语 目前,计算机类的多种课程实验都是要求学生编程解决 一些问题,然而部分学生无从下手,而失去学习兴趣。经验 表明,绘制程序流程图,让学生自己将复杂的问题步骤化, 从而分解为一个一个小问题,可以引发学生学习兴趣。此外, 绘制流程图的过程也是熟悉算法思想的一个重要过程。而区 分难度等级的实验设计可以满足不同学生的需求,也可以引 导并启发学生面对新算法时如何分析问题,提高学生创新能 力。 参考文献: [1] 郑林涛,董永生.Image软件在数字图像处理课程教 学中的应用[J].中国电力教育,2014 (8): 112-113. [2] 邹焕新,周石琳,雷琳,计科峰,孙浩.数字图像处 理课程双语教学的探索与实践[J].计算机工程与科学,2014 (36): 226-230. [3] 孔韦韦,雷阳,李小曼.军队院校数字图像处理课程 的教学优化改革[J].计算机教育,20