基于OpenCV的数字图像处理实验教学

时间:2024-03-01 点赞:46223 浏览:91012 作者原创标记本站原创

本文是一篇计算机论文范文,关于计算机类函授毕业论文,关于基于OpenCV的数字图像处理实验教学相关专升本毕业论文范文。适合计算机及教学法及数据结构方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

[摘 要]在数字图像处理的实验教学中引入OpenCV,具有其合理性和必要性.OpenCV处理图像的应用于图像变换和图像边缘检测.将OpenCV引入数字图像处理的实验教学中,既能简化图像处理的编程,又能切实地提高学生的实践能力,使学生深入理解图像处理的基础理论和典型算法,获得了良好的实验教学效果.

[关 键 词]数字图像处理OpenCV实验教学项目教学

[中图分类号]G642.423[文献标识码]A[文章编号]2095-3437(2013)09-0042-02

一、引言

目前,大多数高校的数字图像处理课程都是在引入Matlab集成的工具箱及其自带函数的基础上进行实验教学[1].由于Matlab程序的移植性较差,学生学习完成后不能直接面对实际的软件开发和应用,难以真正提高学生的工程实践动手能力.

为了让学生既能掌握基本理论和技术,又能较容易编写算法的程序,我们在数字图像处理的教学中引入了开源的计算机视觉库OpenCV(OpenSourceComputerVisionLibrary).该软件是以C函数和C++类的形式实现大量图像处理算法,学生可以方便地利用OpenCV进行图像处理算法的编程和验证,进而在VC中开发功能更强大的应用程序.相对于Matlab而言,学生不仅可以利用OpenCV开放的源代码,以函数进行图像处理,而且可以查看算法的代码实现,更好地培养学生的编程能力[2].


二、OpenCV概述

OpenCV是Intel公司资助的面向广大研究人员和学生的开源计算机视觉库,它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面很多通用算法,同时提供了MatLab等语言的接口,因此极大地方便了图像处理和视频技术的二次开发[3].

OpenCV主要包含六大模块,其具体功能分别是[3]:(1)CV模块:包含基本的图形处理函数和高级的计算机视觉算法;(2)CVAUX模块:包含辅助的OpenCV函数,一般存放一些被淘汰的算法和函数,同时也包含一些新出现的实验性的算法和函数;(3)CXCORE模块:包含OpenCV的基本数据结构和线性代数支持;(4)HIGHGUI模块包含图像和视频的界面函数;(5)ML模块:包含一些基于统计的分类和聚类工具,模式识别算法和回归分析等;(6)CVCAM模块:负责读取摄像头数据的模块.

利用OpenCV进行程序开发具有以下几个特点[4]:(1)独立性.OpenCV中大量的函数和类库既可以独立运行,也可以在加入其它外部库的情况下运行;(2)跨平台性.构成OpenCV的API函数具有跨平台性,不仅能很好的支持各种不同的操作系统,也可以很好地在不同公司的C/C++编译器下工作;(3)功能强大.OpenCV包含了线性表、树、图等基本数据结构,也包含图像滤波、边缘检测和数字形态学等数字图像处理的基本操作以及一些图像高级处理功能;(4)高效性.OpenCV的算法都是基于动态数据结构,使用Intel处理器指令集开发的优化代码,运行速度快,处理效率高;(5)开放性.OpenCV的源代码是开放的,程序设计者可以直接修改它的源代码,也可以将新的函数或类集成到它的库中.

三、数字图像处理的实验设置

实验是理论教学的有效辅助,对于数字图像处理这类实践性很强的课程就更加重要.通过阅读和调试算法源代码、体验算法的处理效果,学生可以加深对基础理论的理解.根据理论教学的重点难点内容,我们设计了相应的实验项目,每个项目都要求学生运用OpenCV和VisualC++编程语言框架来编写数字图像处理基本算法.

项目教学法是针对课程体系结构设计出一系列学习单元项目,项目设计围绕着具有典型性、启发性的关键问题,学生通过参与项目完成的全过程实现对课程内容系统而深入的掌握[5].项目教学法真正实现了以学生为中心、以教学目标为中心,实现理论方法学习与实践动手能力培养的紧密结合.

本文基于项目教学法的研究,针对“数字图像处理”课程教学体系结构,并结合教学大纲与教学目标要求,同时参考国外大学的相关课程,设置了以下实验项目:

(1)图像变换.

(2)图像直方图均衡化.

(3)频域图像增强.

(4)图像边缘检测.

(5)图像分割.

(6)人脸检测.

通常,学生完成一个项目需要4个过程[6]:(1)项目原理分析;(2)项目具体流程设计;(3)基于OpenCV的软件设计;(4)结果展示与分析.以上每个阶段都要求学生提交阶段报告,根据学生报告反映出的问题,老师有针对性地进行指导,在解决问题中帮助学生真正掌握所学的知识,并提高动手能力.在项目法教学过程中,我们特别要注意克服项目无法完全覆盖全部知识点的局限,因此,要在项目选择与设计中综合考虑,并结合项目原理研究建立对教学体系框架和全部知识点的整体把握.

四、OpenCV处理图像的应用实例

(一)图像变换

OpenCV提供多个图像变换函数.函数cvWarpAffine利用指定的矩阵对输入图像进行仿射变换,这类变换可以用一个3×3的矩阵来表示,其最后一行为(0,0,1).典型的仿射变换包括平移变换、缩放变换、剪切变换、旋转变换等.此外,函数cvWarpPerspective对图像进行透视变换,函数cvLogPolar将图像从直角坐标映射到极坐标,核心代码如下:

IplImage*dst等于cvCreateImage(cvSize(256,256),8,3);

cvLogPolar(src,dst,cvPoint2D32f(src->width/2,src->height/2),40);图1给出了图像映射到极坐标的结果实例.

(二)图像边缘检测

图像的边缘是图像最基本的特征,是灰度不连续的结果,因而边缘检测是图像处理中的重要问题.OpenCV提供了cvSobel函数、cvLaplace函数和cvCanny等函数进行边缘检测,下面以cvLaplace函数进行举例,其边缘检测的代码为:

IplImage*result_img等于cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);

cvLaplace(img,result_img);

cvNamedWindow(“Result”,0);

cvShowImage(“Result”,result_img);

第一句是创建一幅与原始图像img同样大小的通道数为1的图像result_img;第二句是使用Laplace算子对图像进行边缘检测,并将结果存放在result_img中,后面两句是在窗口中显示result_img.程序的处理结果如图2所示.

五、结束语

OpenCV中的函数几乎能够覆盖到所有的数字图像处理的基本功能,而且其代码又是免费的和开放的.实践证明,通过将OpenCV引入数字图像处理的实验教学中,既能简化图像处理的编程,又能切实地提高学生的实践能力,使学生深入理解图像处理的基础理论和典型算法,获得了良好的实验教学效果.

[参考文献]

[1]赵敏.Matlab用于数字图像处理的教学实践研究[J].电脑知识与技术,2012,8(31):75397540.

[2]李树涛,胡秋伟.OpenCV在“数字图像处理”课程教学中的应用[J].电气电子教学学报,2010,32(6):2628.

[3]刘瑞祯,于仕琪.OpenCV教程[M].北京:北京航空航天大学出版社,2008.

[4]方玫.OpenCV技术在数字图像处理中的应用[J].北京教育学院学报(自然科学版),2011,6(1):711.

[5]郭艳光,赵希武.在高等计算机基础教学中实施项目教学法的探索[J].计算机教育,2008,(6):4849.

[6]何楚,冯倩,杨芳等.数字图像处理课程实验教学过程设计[J].计算机教育,2011,(18):7477.

[责任编辑:戴祯杰]

相关论文

医学图像重建课程的实验教学

本文是一篇医学影像论文范文,医学影像类毕业论文提纲,关于医学图像重建课程的实验教学相关毕业论文参考文献格式范文。适合医学影像及生物医。

数字切片在病理学实验教学中的应用

本文是一篇实验教学论文范文,关于实验教学类毕业论文模板,关于数字切片在病理学实验教学中的应用相关毕业论文参考文献格式范文。适合实验教。

化学实验教学的

本文是一篇什么是论文范文,关于什么是类学年毕业论文,关于化学实验教学的相关本科毕业论文范文。适合什么是及化学实验及课堂教学方面的的大。

生物学实验教学的绿色评价

本文关于实验教学及生物学及生物实验方面的免费优秀学术论文范文,实验教学方面有关论文范例,与生物学实验教学的绿色评价相关专科毕业论文。

化学实验教学的转变策略

该文为实验教学相关本科毕业论文范文,与化学实验教学的转变策略相关六年级教学论文,可作为生态教学专业实验教学论文写作研究的大学硕士与。

新课改要求下的实验教学

本文是一篇实验教学论文范文,实验教学相关毕业论文参考文献格式,关于新课改要求下的实验教学相关学年毕业论文范文。适合实验教学及化学实验。