计算机语言与图像处理课混合教学法探索

时间:2018-10-30 编辑整理:张建伟,高山山,张光龙 来源:早发表网

摘要 :计算机语言课与图像处理课都是理工科高校电子信息类学生的必修课,两者在课程体系中的位置举足轻重,一个 是信息专业技术方面的主要工具,另一个是信息专业技术的重要方向之一,两者相辅相成,为了能够更好的让学生同时 融汇贯通两门课程,提出了一种混合式教学方法,该方法可以让计算机语言直接作为专业课的工具进行辅助教学,让学 生在学习业务科目的同时也很好的理解和掌握计算机语言的应用技巧,事实证明该方法提高了学习效率,加强了学生的 实践能力。
关键词 :混合式教学 ;计算机语言 ;图像处理 MATLAB

0 引言

目前,大学中的计算机语言课程基本采用理论课加实验 课的方式进行教学,也就是先用三分之二的课时进行计算机 语言的语法、规则等基础理论教学,然后用三分之一的课时进 行上机操作,由于该课程体系不同于传统课程,导致了大多数 学生对知识和语法只是短时间记忆,学过后不能有效进行应 用,导致知识细节不能形成长时间保持。即使进行了实验课, 也仅仅临时将已学知识的短暂使用。要想真正的理解和运用, 只有将其与实际专业和应用相结合才能达到目的。因此对于 电子信息类专业的本科生,针对业务课——数字图像处理 课中混合计算机语言课的授课模式被提出,所谓的混合教 学一般指的是多种教学手段 , 包括网络平台与普通教学的 混合,也有不同模型的混合,而本文提出的是两门课程的 混合教学方式。

1 计算机语言课的特点与分类

计算机语言课通常指的是计算机硬件执行命令所使用 的语言,是理工科在校大学生的必修课,它像英语一样是许 多理工科专业中整个学习过程的一个有力工具,很多理工科学生到了大学就把过计算机语言等级考试和英语等级考试 作为学习目标,足见其在大学中的重要性。通常所开设的计 算机语言课有 C 语言、Visual Basic、Visual C++、Java、 MATLAB、Python 等。作为一种计算机语言,要想更好的掌握 和理解最重要的就是应用它,用它编写更多的应用程序实现 各种各样的功能,或者应用它实现各种案例,这样才能活学活 用,记忆深刻,达到学以致用。

对计算机语言而言,其最大的特点有以下几个 :它是从 人类的逻辑思维角度出发的一种语言,其抽象程度很高 ;需 要经过编译成特定机器上的目标代码才能执行 ;独立于机器 特性 ;能够实现各种数据计算和仿真。

根据不同的语法特点计算机语言可分为很多种类,常见 的分类把计算机语言分为低级语言和高级语言,低级语言主 要指早期用的机器语言、汇编语言等,高级语言包括 VC++、 VB、MATLAB 等,现阶段在校理工科学生所学的大都为高级语 言,也会学少量的汇编语言。高级语言又可分为面向过程和面 向对象,例如 :C 语言和 MATLAB 语言就是面向过程的语言, 而 C++ 却是一种面向对象的语言,它们是目前工程实践、软件 工程中运用最广泛的计算机编程语言。

2 图像处理课与计算机语言课的关系

2.1 图像处理课的特点

图像处理课作为电子信息类理工专业的一门重要专业 课涉及到计算机视觉、工业机器视觉、神经网络、模糊控制、 模式识别等多个学科方向,它是数字信号处理方向的一个 分支,在信息科学领域,模拟信号处理正逐渐被数字信号处 理所替代,数字信号处理正成为信息技术发展的趋势,一般 所说的图像处理实际指的就是数字图像处理,数字信号处理 分为一维信号处理和二维信号处理,而数字图像正是一种二 维的数字信号处理。目前计算机中所处理的数据皆为数字信 号也就是离散信号,而计算机技术自 1946 年冯诺依曼发明第 一台计算机以来,经过半个多世纪的发展已经取得了非常大 的提升,截止 2017 年,计算机芯片的工艺已经从上百 nm 达到 14nm,例如酷睿 i7。鉴于计算机的强大计算能力,为了高效的 实现图像处理中的数据处理和仿真,通常使用计算机作为硬 件平台,顺理成章,计算机编程语言就成为了实现数字图像处 理的软件平台,通常使用较多的计算机语言包括 :C++、C#、 MATLAB 等。

由于数字图像是通过光学成像传感器件 CCD 或 CMOS,通 过光电转换而采集到的二维数字信号,由于二维数据在数学 模型中对应的是矩阵,因此的主要计算是面向矩阵的运算,每 一幅图像在经过光电传感器从模拟信号完成数字化后转变 后,都可以看做一个数字矩阵,如图 1。在图 1(a)中为一个模 拟的原始图像,而在图 1(b)中可以看到数字化后呈现的是一 个 12*14 的数字矩阵,不同的方格用不同的明亮的灰度填充, 就形成了灰度图像,在数字图像中叫做采样和量化。如果将其 转化成数学的表达式就是一个矩阵,可用函数 f(x,y)表示。

 

根据前面的论述,已经知道计算机本身最擅长的事就是 对离散化、数字化的数据进行计算和处理,而数字化后的图像 本身就是一组离散的矩阵数据,再加上针对矩阵运算的 GPU (图像加速处理器)的快速发展,就已经注定,计算机与图像数 据的计算与处理绑定在一起,计算机才是图像处理的最适合 的平台,注定成为了图像处理最重要的手段之一。

2.2 计算机语言与图像处理课的关系

既然使用计算机平台实现数字图像处理,第一个要考虑的问题就是什么样的计算机语言才更适合数字图像处理,从 计算机诞生开始,到目前计算机语言已经出现了几十种,那就 要根据数字图像的特点来考虑,从目前的使用情况来看,使用 VC 和 MATLAB 两种语言的最多,一个是微软公司的著名语言 具有几十年的应用历史,另一个是美国 MathWorks 公司出品 的商业数学软件,具有高效的开发效率。下面就来看一下两种 语言的特点以及与图像处理的关系 :

VC 全称 Visual C++, 是一种面向对象的可视化编程语 言,是根据早期的 C 语言改进而来,C++ 相比于 C 语言主 要增加了面向对象的类操作,目前微软通过 VS 集成开发环境 作为 VC 载体,VS 的版本最新的为 2015,而 VC++ 已经到了 13.0 的版本,该语言具有强大的功能和更高效的执行效率, 它为多种领域提供了程序设计,例如文件访问、图像图形处 理、多媒体数据处理、网络通信等等,它几乎可以胜任各个领 域所需的应用系统。

MATLAB 则是一种面向矩阵运算的高级计算机语言,它 将计算、可视化与程序设计集成在一个易操作的环境中,它的 最大优点在于所采用的技术计算语言和专业领域中所有使用 的数学表达式相同,这就极大的方便了使用者快速上手,而不 像 C 语言那样上手较慢,不易掌握。

相比之下,两种语言各有优缺点,MATLAB 更适合学生初 期的学习和理论研究仿真,因为可以较快的上手,然后快速的 得到仿真结果,即使到了研究生甚至博士阶段都是一个必不 可少的计算机仿真工具,但是其缺点也很明显,主要有以下几 点 :(1)MATLAB 的工程应用力较差 ;(2)整体执行效率较低 ; (3)平台的移植性不好。

相对而言,VC++ 语言则有效的弥补了 MATLAB 的缺点, VC 是 C 语言的一种可视化语言,继承了 C 语言的高效性和平 台的可移植性,其高效主要体现在执行效率高,主要原因是 MATLAB 解释型语言,需要在运行过程中不断动态分配内存 ; 默认所有变量都是双精度型,也占资源较大。而 VC 是编译型 语言,编译器优化较好,运行时内存占用较少,并且 VC 在编译 完后可以在 Windows、Liunx、Unix 等多平台进行移植,因此 更适合工程实现,相反 MATLAB 更适合研究仿真和快速预言和 项目评估。

3 语言程序和与专业课的混合方式

所谓的混合式教学方式就是将两门课合成一门课进行 交叉讲授,该交叉方式分为两类 :一类是课时交叉 ;另一类是 课程交叉。课时交叉就是每门课都具有完整的整数学时,在该 学时内上只上某一门课的内容一般不会涉及到另一门课,但 在整个教学周期中课时是交叉安排的 ;而课程交叉就是在一 门课中穿插讲授另一门课,即使同一课时也会设计两门课的 内容,且两门课相互补充,进行完全式的混合。那么两种混合 教学方式哪种效果更好呢?接下来就来结合实际教学过程进 行分析和讨论。

首先,对实际教学中的课时交叉式混合教学法进行分 析,如果一门专业课 48-64 学时,通常按照语言程序与专业课 课时比例 1:2 来划分,这个前提是计算机语言程序课要有一定基础,上过一些基本的入门课程,也就是最基本的语法和概 念学生必须是清晰的,否则这个比例至少是 1:1 或许计算机 语言课程占的比例更大。按照该模式,以 48 学时为例,2 学 时的专业绪论 ;2 学时的计算机语言总体复习 ;2-4 学时专 业内容 ;2 学时结合专业知识的语言编程以此类推。在整个 教学过程中,每完成一个章节的图像处理课内容的授课,就开 始该章节的程序设计课程的应用课程,相互交叉。在理论课最 后一节,可以先对即将进行的程序应用课程内容所涉及的理 论进行讲解,以便学生在实验课的时候能够更好的把精力放 在编程上,但是该方式也有缺点,就是在上应用实验课程的时 候专业课理论容易忘记,造成编程效率较低。

另外一类是课程交叉的混合授课方式,该方式与课时交 叉混合教学方式有很大的区别,它要求在每一次上课的时候 专业理论课讲授的同时也将计算机语言的应用编程现场进行 编写和调试。该方式需要对计算机语言进行一定的基础先修 课程,但其优点是现学现用,能够在对知识体系较为熟悉的情 况下,进行计算机语言的编写,增加了对图像处理理论知识的 消化能力 ;但该方式却存在一个明显的不足,那就众多学生 对计算机语言的把握程度差别较大,很难在课堂上完全保持 一致的节奏,再加上程序调试的的时间相对紧凑,不像单独应 用实验课那么充分,导致仅有相当一部分学生能不够完全跟 上编程进度。

为了更好的对两种模式进行测试和分析,下面以图像处 理课程与 MATLAB 语言编程的实践教学进行分析。在实际教学 实践中分别对 2014 级和 2015 的电子信息工程专业学生进行 了两种不同混合教学方式。其中 2014 级采用了课时交叉混合 方式,课时比例为 1:1 ;2015 级采用了课程交叉的混合方式, 该级课程安排了 4 个学时的 MATLAB 的基本语法与操作。需要 明确的是这次的混合教学是在学生没有上过 MATLAB 语言课 程的基础上进行的。

下面以图像处理课的第三章图像变换中的实际教学分析 为例,进行两种方法的比较和分析。

第一次对于 2014 级电子信息工程专业学生采用课时混 合教学,首先进行了 4 个学时的 MATLAB 的基本语法和操作的 教学,然后进入实际内容教学,总的课时比例为 1:1,第三章 图像变换共使用 2 个学时进行理论课讲解,专业课的知识点 共涉及 4 个,分别是图像采样、图像量化、一维傅里叶变换和 二维傅里叶变换。其中涉及到程序编写的有两个知识点就是 一维傅里叶变换和二维傅里叶变换,程序编写的应用实验课 安排 2 学时,在应用实验课上一部分同学能够按照要求进行 程序编程,不但熟悉了 MATLAB 的基本函数,例如 for 循环, if else 选择结构语句,还熟悉了图像中 imread,imshow, subplot 以及 fft2 等图像工具箱的专用函数等。但还有 1/3 的同学由于对之前学的知识的熟悉程度有限,耗费相当多的 时间摸索,或者按照其他同学的程序进行照搬,出现了知其然 而不知其所以然的现象。总的来说,大多数学生可以学习计算 机语言的同时完成专业课的理论消化与学习。

第二次在对 2015 电信专业学生采用课程混合式教学方 式,该级学生已经先修过 8 个学时的 MATLAB 编程基础。这次采用了机械工业出版社的教材,该教材是理论课与编程语言 混合编著的一种教材更适合课程式混合教学,同样对于第三 章图像变换共使用 4 个学时,前两个学时为两个纯理论知识 点,后面每个知识点使用 2 个学时,这两个学时中会先讲一些 理论接着就开始动手编写程序,在写程序的过程中除了个别 学生外,大都可以按照刚讲的理论进行较好的编程,对程序 的理解和把握能力都较好,以 fft2 函数为例,由于讲解的图 像相关知识距离编程时间较短,因此对各个参数的理解较为 深刻,同时各种 MATLAB 的语法结构以及数据结构,例如 for 循环、while done 循环,if else 选择控制等常用结构运用 也比较到位,主要原因有两个方面,一方面在前几章的编程 中也有过应用,另一方面在 MATLAB 基本概念的讲解中也掌握 较好。

 

综合分析见表 1,从表的统计来看,课时交叉由于应用实 验课和理论课存在着 1 天或更多的时间间隔,大学期间学生 通常较少有复习和预习的习惯,因此造成理解和掌握力度不 足 ;而课程交叉则相对达到趁热打铁的效果,能够帮助学生 即实现了理论课的学习,也深化和巩固了语言程序的目的。

4 结论

计算机语言课是一门需要多实践多动手多编程的课程, 单从书本上得到的理论和语法知识仅仅是一个最基本的入 门,而与应用专业课相结合的实践又是增强计算机语言认知 和深度理解的捷径,在图像处理课程中熟练的使用 MATLAB 语 言可以让学生在理解和掌握图像处理知识体系的基础上,把 计算机语言的各种语言、控制语句、函数调用、指针引用、内 存分配等等诸多较难理解的方法扎扎实实的理解并融会贯 通,达到一举两得的教学目的。该方法不仅限于图像处理课 程,也可以用于其他工科类相关专业课程,并得以推广。


职称
论文

期刊
发表

加急
见刊

写作
咨询

课题
专答

编辑
顾问

关注
我们

返回
顶部