郑来文 姚巧鸽 周原
【摘要】针对数字图像处理课程涉及学科众多、理论性强,学生难以实现从理论到编程实践的跨越的状况,引入了项目化教学方法。该方法共分为五个阶段,通过强化其中的图像处理算法的制定和编程实现这两个阶段的训练,有效的提高了学生对图像处理算法理论的理解,锻炼了学生的编程实践能力。通过这一教学改革,提高了学生的学习兴趣与主动性,提高了教育教学效果,增强了学生的综合能力。
【关键词】数字图像处理;项目化教学方法;图像处理算法
【基金项目】2019年度黄淮学院教育教学改革研究项目(2019XJGLX0135);黄淮学院2018年度高等教育教学改革研究重点项目(编号:2018XJGLX0112);黄淮学院2018年度高等教育教学改革研究一般项目(编号:2018XJGLX0229);2020年度河南省高等学校重点科研项目(编号:20B510008)。
中图分类号:TN929 文獻标识码:A DOI:10.12246/j.issn.1673-0348.2021.04..089
随着计算机技术和微电子技术的发展,很多种用户终端(例如智能手机、平板电脑和计算机等)都集成了摄像头并具有图像处理功能。数字图像处理技术已广泛应用于生活娱乐、医学影像、安防监控、工业视觉检测等领域中。为了适应社会需求,目前大多数应用型本科院校的电子信息类专业都开设了数字图像处理课程。数字图像处理是一门对理论基础和实践能力要求都较高的学科,在理论上,该课程涉及到数学、计算机科学、电子学、信息论、控制论、物理学和心理学众多等学科的知识;在实践上,需要根据图像处理任务的要求选择合适的编程语言进行编程实现。因此,“枯燥抽象,难教难学”一直是数字图像处理教学中的突出问题。为了解决这个问题,有些文献给出了数字图像处理课程教学和实验的方法与经验,但是并没有给出如何实现从理论教学到编程实践的具体范例。
笔者近几年来一直担任黄淮学院信息工程学院通信工程、计算机科学与技术等专业的数字图像处理课程的教学工作,在教学和实验过程中发现主要由于以下两个原因导致学生学习理论与进行实践环节的脱钩:一是有些学生难以理解线性代数、信号处理等专业基础知识怎么在图像处理中使用,即怎么实现数学模型到物理模型的转变,导致编程时无从下手;二是有些同学虽然理解了图像处理中的知识点并能编程实现单个知识点的功能,但是一个实际应用的图像处理项目需要使用到很多个知识点,有些学生不知道怎么把这些知识点综合在一起编程实现,对程序功能和整体结构把握不清楚,导致“只见树木,不见森林”的状况。有些文献提出使用项目驱动教学法来解决这一困境,并给出了一些范例,然而,这些文献都没有给出对于图像处理领域来说比较重要的图像处理算法,还是难以让学生快速的实现从理论到实践的跨越。
为了解决这个问题,黄淮学院信息工程学院数字图像处理课程组根据生产、生活中对图像处理的需要探索了一些项目化教学案例,通过对学生的调查了解,可以知道这些教学案例不但可以让学生快速的掌握从图像处理项目需求分析到编程实现的方法,而且极大的提高了学生的学习兴趣。
1.项目需求分析与相关知识点
项目化教学方法是指师生通过完成一个完整“项目”的形式进行教学,该教学法主张学生以自主学习和动手实验为主,教师讲授知识和实验指导为辅,让学生在完成项目任务过程中应用已有知识和学习新知。综合学习文献,我们制订的项目化教学方法流程如图1所示。整个流程共被分为五个阶段,其中图像处理算法和编程实现是学生完成项目过程中的难点,也是对于图像处理领域来说的重点,所以这两个阶段是本文叙述的重点内容。下面选取一个电子相册的制作为实例来介绍我们的项目化教学方法。
电子相册是近几年数字图像处理技术在娱乐生活中的一个应用,用户可以把自己拍摄的照片经过缩放、投影变换等处理后粘贴到事先做好的模板图像中,再加上文字、音乐等内容等,从而把静止的照片做出“相片音乐电视”。本文只讨论电子相册制作的图像处理内容。
在上课时,教师首先演示一些别人制作的电子相册,导入本节课的教学目标。然后进入图像处理项目的需求分析阶段的训练。给出一幅照片Lena,以及两幅模板图像Poster1和Poster2,如图2、图3和图4所示。让学生进行分组讨论怎么实现把照片Lena“放置”到两个模板图像中的空白区域,得到如图5和图6的实验结果。教师则提示学生注意这两个模板图像空白区域的区别。经过讨论,得到如下结论:①照片Lena是一个行数与列数相等的正方形,模板Poster1中的空白区域是一个行数与列数不相等的长方形,需要把照片Lena缩放为与模板Poster1中的空白区域相同的长方形;②模板Poster2中的空白区域是一个倾倒的梯形,需要把照片Lena进行投影变换为与模板Poster2中的空白区域相同的梯形。
接着进入相关知识点的学习阶段的训练。相关知识点主要包括:①图像的缩放处理;②图像的投影变换;③图像区域的寻访与赋值,即把经缩放处理或投影变换处理后的图像怎么“放置”到模板的空白区域。这三个知识点主要让学生查询资料来完成,学生无法理解的内容则需要教师进行讲解。
2. 图像处理算法
完成相关知识点的学习以后,就可以进入图像处理算法的制定阶段的训练。图像处理算法是指实现项目目标任务的方法与步骤,可以使用流程图或伪代码来描述图像处理算法。在让学生制定图像处理算法之前,教师可先做一个示范,即演示一个简单的图像处理任务,并讲解怎样使用伪代码或者流程图对该图像处理任务的步骤进行描述,让学生进行学习模仿。然后让学生分组交流、讨论后制定出制作电子相册的图像处理算法。篇幅所限,本文只给出使用伪代码方法描述的制作电子相册的图像处理算法:
① 读取照片Lena;
② 读取模板图像;
③ 对模板图像进行判断,若是Poster1就执行步骤④,若是Poster2则执行步骤⑤;
④ 选取模板的空白区域左上角及右下角的坐标,计算出空白区域的行数与列数。根据行数与列数对照片Lena进行缩放处理,并把处理得到图像赋值给模板空白区域;
⑤ 选取模板的空白区域左上角、右上角、左下角和右下角的坐标,由这四组坐标确定投影变换矩阵。然后按照投影变换矩阵对照片Lena进行处理,并处理得到图像赋值给模板空白区域;
⑥ 显示并保存处理后的模板图像。
图像处理算法非常重要,可以说它是决定图像处理任务成败的关键,所以一定要培养学生制定、描述图像处理算法的能力与习惯。为达到这个目的,我们要求学生在每个项目的实验报告中都给出图像处理算法,并且是评定实验报告成绩的重要因素。
3. 编程实现与考核评价
图像处理算法确定以后,就可以进入编程实现阶段的训练。根据学生编程能力的不同,可以选择合适的语言,例如MATLAB、Python或C语言等,编写程序来对图像进行处理。注意不同的语言会影响项目成绩的评定。一个图像处理项目往往需要使用多种图像处理算法,对于常规的图象处理算法,比如图像的缩放、中值滤波等,要求学生自己编写代码实现,以此来锻炼学生的编程能力;对于比较复杂的图像处理算法,比如傅里叶变换、直方图匹配等则可以调用函数来完成。
编程实现以后,就可以进入考核评价阶段。项目成绩的计算公式为:
项目成绩=实验结果成绩×0.4+代码成绩×0.3×α+实验报告成绩×0.3
式中的α是编程语言系数,采用Python或C语言编程的α=1,采用MATLAB语言编程的α=0.8。
验收时,各个小组的学生分别演示自己的项目成果,包括实验结果、代码和实验报告。学生自评和互评不但要给出分数,还要指出项目完成的不足之处和优点,再由老师进行点评总结,确定项目成绩。
4. 结语
通过三年的实践表明,项目化教学方法可以加深学生对图像处理算法原理的理解,提高学生的实践动手能力,体现了以学生为中心的教学模式。然而,项目化教学方法无法涵盖教学大纲要求的全部图像处理技术,需要学生在课余自学一部分内容。所以,我们下一步的目标是寻找、设计更多的项目化教学案例来缓解这个问题。此外,图像处理新技术不断涌现,教师需要不断更新自己的知识结构,把新技术引入到项目化教学案例中。
参考文献
[1]沈晓晶,王艳,赵慧娟.应用型院校数字图像处理本科教学探索[J].计算机教育,2012,(1):86-88.
[2]霍雷刚, 刘素苹, 陆建波. 应用型院校本科数字图像处理课程教学实践与探索[J]. 南宁师范大学学报(自然科学版), 2020,(1):153-156.
[3]庞海波, 张朝阳. 应用型本科院校《数字图像处理》课程教改的探索[J]. 课程教育研究:学法教法研究, 2014,(14):236-237.
[4]殷学永,李京忠.遥感数字图像处理"应用型课程改革研究[J].科技創新与生产力,2020,(3):83-86.
[5]吴全玉, 刘晓杰, 潘玲佼,等. “数字图像处理”课程实验教学研究与探索[J]. 电气电子教学学报, 2016,(1): 121-124.
[6]吕军,孙剑,宁仁霞. 项目驱动教学法在数字图像处理课程中的探究与实践——以黄山学院为例[J]. 大众科技.2018,(1):89-91.
[7]王斌,郑淋萍,苏颖,张静.项目教学法在“图像处理”教学中的应用[J].电气电子教学学报,2020,(2):96-98.
作者简介:郑来文,男,博士,讲师,研究方向为图像智能处理与计算机视觉。