基于OpenCV的图像处理编程教学模式研究

2017-09-14 06:48南京林业大学机械电子工程学院王皖君程玉柱李赵春
电子世界 2017年17期
关键词:林业大学图像处理编程

南京林业大学机械电子工程学院 王皖君 程玉柱 李赵春

基于OpenCV的图像处理编程教学模式研究

南京林业大学机械电子工程学院 王皖君 程玉柱 李赵春

实践教学是图像处理课程教学的重要组成部分。本文将OpenCV引入到数字图像处理的实践教学当中,包括多种开发平台的搭建、函数的调用、算法演示等。利用Visual Studio和Anaconda与OpenCV搭建PC端图像处理平台,同时搭建Android Studio与OpenCV手机端图像处理平台。通过两种平台教学实践表明,此教学模式能显著地提高教学效果。

OpenCV;图像处理;教学模式

1 引言

“数字图像处理”课程理论性、实践性都很强,理论上囊括了几乎所有的数学理论。在实践上,传统采用Matlab软件进行教学,Matlab虽然易于学生掌握,但不适合工程应用,与创新创业的教学思路不符,而采用C++语言教学,难度较大,短时间很难入门。

OpenCV是开源计算机视觉库,由Intel公司主导开发的基于BSD开源发型的跨平台计算机视觉库,具有多种接口:C、C++、Java、Python等,可以运行在多种操作系统上。与Matlab相比,OpenCV的优势在于实时且高效,提升软件算法的可应用性。同时可以利用GPU硬件,实现算法的并行加速处理。OpenCV实现了图像处理和计算机视觉的很多通用算法,算法通过函数、类和模块实现,便于学生调用和练习,有助于提高图像处理课程的实践教学效果。

本文将OpenCV引入到“数字图像处理”课堂教学中来,通过搭建PC端和手机端两种开发平台,生成两套编程教学系统,供学生上课进行二次开发和学习,提高课堂教学效果。通过编程教学,有助于图像处理理论及算法的理解。

2 PC端OpenCV图像处理实现

学生电脑主要配备微软的Windows操作系统,因此,PC端构建OpenCV教学系统主要基于Windows系统开发。本文通过Visual Studio与OpenCV构建C++图像处理算法演示系统,同时也用Anaconda与OpenCV构建Python图像处理算法教学系统。

2.1 Visual Studio与OpenCV教学软件系统

Visual Studio 2017是微软于2017年3月8日正式推出的新版本,是迄今为止最具生产力的 Visual Studio 版本,其内建工具整合了.NET Core、Azure 应用程序、微服务、Docker 容器等所有内容,本文采用面向学生、开源和个人开发者的免费社区版。平台搭建过程:首先下载Visual Studio和OpenCV,安装VS2017,然后解压OpenCV,得到预先编译好的lib、bin、include等文件夹;打开Visual Studio,设置好库文件路径,电脑高级变量等。最后新建工程,输入代码,实现图像处理算法,进行课堂演示。

2.2 Anaconda与OpenCV教学软件系统

Python是一种面向对象的解释型计算机程序设计语言,Python是纯粹的自由软件, 源代码和解释器遵循 GPL协议。语法简洁清晰,强制用空白符作为语句缩进。具有丰富和强大的库。Anaconda可以看做Python的一个集成安装,安装它后就默认安装了python、IPython、集成开发环境Spyder和众多的包和模块,非常方便。Python分成2.x版本和3.x版本,安装方式通常有两种,一种直接拷贝cv2/pyd文件,另一种利用conda install opencv 命令实现。

3 Android手机OpenCV图像处理实现

搭建Android与OpenCV图像步骤如下:首先下载并安装Android Studio2.1.2版本,并将下载好的OpenCV for Android解压到固定文件夹。利用AS新建工程,并加载OpenCV模块,至此,开发环境搭建成功,设置AVD,生成手机模拟器,测试程序的有效性。

4 编程模式比较

图1 不同平台边缘检测效果图

课堂采用理论和实践交互式比较教学模式,学生预先安装好PC端和手机端开发软件,首先运行代码演示,学生看到算法的实际效果,增强对理论认识,并掌握VS/Android与OpenCV编程技术,提供算法源代码供学生二次开发,作为课堂及课后练习。

本文以图像Canny边缘检测为例,说明其教学过程。首先读取彩色图像,彩图灰度化,并利用Canny算子对灰度图进行边缘检测。实验结果如图1所示,图1(a)为原始图像,图1(b)为VS2017边缘检测处理结果,图1(c)为手机模拟器上的边缘检测结果。通过多种编程模式可以实现同样的处理结果,使得学生更好地理解图像处理算法的精髓。

理论可在实践开发之前,也可在开发之后,或者交替进行。大致按照“理论、实践、理论、分析、总结”的模式进行教学。在此过程中,需要教师既具有较强的理论功底,也具有实践编程能力,将理论与编程代码相结合的能力,对教师提出了更高的要求。

5 总结

针对数字图像实践教学的特点,从教学方式和教学内容上,对该课程教学模式进行了探索研究。将OpenCV引入到教学中,使得学生高效利用电脑和手机平台进行课程学习。让学生采用不同的编程语言和开发平台,通过比较实验结果,加深对图像处理算法的理解,显著地提高教学质量。

[1]李树涛,胡秋伟.LIShu-tao,等.OpenCV在”数字图像处理”课程教学中的应用[J].电气电子教学学报,2010,32(6):26-28.

[2]唐红梅,王霞,李琦,等.数字图像处理课程教学改革与实践[J].河北工业大学学报(社会科学版),2006,21(4):8-10.

[3]朱娟花,吴昂.MATLAB在数字图像处理课程教学中的应用[J].实验室科学,2011,14(1):66-67.

[4]刘贤辉.基于OpenCV在移动端的图像处理技术[J].电子技术与软件工程,2017(9):70-70.

王皖君(1984—),男,博士,南京林业大学机械电子工程学院讲师,主要研究方向:自动化。

南京林业大学2017年校级“教学质量提升工程”项目。

程玉柱(1980—),男,博士,南京林业大学机械电子工程学院讲师,主要研究方向:图像处理与模式识别。

李赵春(1978—),女,博士,南京林业大学机械电子工程学院副教授,主要研究方向:控制理论及控制工程。

猜你喜欢
林业大学图像处理编程
《南京林业大学学报(自然科学版)》征稿简则
《南京林业大学学报(自然科学版)》征稿简则
《南京林业大学学报(自然科学版)》征稿简则
《东北林业大学学报》稿约
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用