数字图像处理课程教学辅助软件的设计与实现

2013-08-21 03:32王蓉李伟
计算机光盘软件与应用 2013年9期
关键词:数字图像处理教学软件

王蓉 李伟

摘 要:根据目前数字图像处理技术发展和数字图像处理课程的教学情况,为增强学生对理论知识的理解,本文介绍了基于VC++软件平台的数字图像处理课程教学辅助软件的设计和实现。该软件主要包括图像文件操作、图像变换、图像增强与复原、图像分割和数学形态学等理论知识,并提供一个良好的交互式平台,可以自由调整各种算法的参数,使学生在较短的时间内熟悉并掌握数字图像处理课程中讲述的各种算法和技术。

关键词:数字图像处理;教学软件;VC++

中图分类号:TP391.41-4 文献标识码:A 文章编号:1007-9599 (2013) 09-0000-02

1 引言

数字图像处理是指将利用计算机对二维图像信号进行采集、处理和分析的过程。数字图像处理课程是计算机视觉、模式识别和人工智能等专业的一门重要专业课程,涉及面广、实用性强。数字图像处理技术涉及的环节较多,主要包括图像采集、图像变换、图像增强与复原、图像分割等,每个图像处理环节的方法也多种多样,而且数字图像处理技术的基础理论和算法比较抽象,对于学生来说,在课内时间掌握数字图像处理课程的主要内容有一定难度。现在有大量的图像处理应用软件,如Photoshop,但这些软件多是面向广告设计、图像修饰处理的应用软件,不适合数字图像处理技术的基本知识和案例教学。

本文设计并实现了基于VC++开发环境下的数字图像处理课程的教学辅助软件,可以提供数字图像处理系统各处理环节相关算法实现过程的演示,形象生动地完成该课程的各教学单元的授课内容,较好地帮助学生熟悉并消化数字图像处理技术涉及的理论和技术方法。

2 教学辅助软件设计

VC++是在Windows平台下的专业软件开发平台,广泛用于各种软件的开发。MFC是Microsoft公司提供的一套类库,以C++类的形式封装了Windows的API,是一套面向对象的函数库,方便用户编程。MFC是Win API和C++的结合,提供了MFC AppWizard自动生成框架,利用MFC中提供的各种类,可以简单地构建一个应用程序框架。OpenCV是一个基于C/C++语言的开源图像处理函数库,包含实现图像处理和计算机视觉方面的很多通用算法[1],其代码具有很好的移植性。在安装好VC++的Windows系统下安装好OpenCV库,并对软件进行配置,在工程中配置好所需要包含的库文件的路径等,即可方便的调用OpenCV库中的函数。

2.1 软件设计总体结构

本文所设计的软件主要围绕数字图像处理课程的基本知识和图像处理技术涉及的各种方法进行架构的。软件基于MFC的AppWizard多文档应用程序框架,并结合OpenCV库中的一些图像处理函数和设备无关位图DIB的一些操作函数实现了多种图像处理功能,如图1所示。

2.2 软件功能设计与实现

数字图像处理技术包含很多环节,根据软件的总体架构,本软件主要设计了文件操作、图像变换、图像增强与复原、图像分割和数学形态学模块,每个模块还设计了不同功能块。各模块的图像处理功能均可以对读入的图像进行连续处理,本节展示了部分功能块的处理过程。

2.2.1 文件操作

文件操作模块能够实现对图像等文件的常规操作,如打开、保存、另存为、打印等功能。本软件主要处理BMP位图格式的灰度图像,通过此模块可将待处理的图像读入到内存,以供其他模块调用,用于进一步图像处理。对于图像处理的每个步骤所得的结果图像均可以单独显示,并可进行保存等操作。

2.2.2 图像变换

图像变换模块可以实现位图的几何变换和图像的点运算,如图像平移,水平镜像,垂直镜像,图像缩放,图像旋转,分段线性拉伸,图像反色,二值化,阈值变换,窗口变换等功能。图像变换过程中需要设定的参数可以通过弹出对话框的方式进行设定,完成人机交互。

图2为利用图像反色和图像阈值变换处理图像的效果展示,其中左侧图为原始lena图像,中间的图为对原始lena图像进行反色后得到的图像,右侧图为对原始lena图像进行阈值(参数值设为200)变换后的图像。

图1 数字图像处理教学辅助软件总体结构图

图2 图像变换处理示意图

2.2.3 图像增强与复原

图像增强与复原模块可以实现图像滤波、图像对比度增强、图像恢复等功能,如对图像添加噪声、图像平滑、直方图均衡化、图像锐化处理、傅里叶变换、低通滤波、高通滤波、小波变换等处理。在添加噪声可以选择高斯噪声或椒盐噪声,图像平滑可以选择3*3、5*5、7*7等不同大小的模板进行邻域平均处理和中值滤波处理。图像直方图均衡化可以将直方图分布不均的图像进行调整,使整幅图像视觉效果更好。图像锐化可以实现梯度锐化和拉普拉斯锐化,能够提高图像的对比度。低通滤波可实现理想低通滤波和巴特沃斯低通滤波,高通滤波可实现理想高通滤波和巴特沃斯高通滤波。傅里叶变换可以实现图像从空间域到频率域的变换,可以对图像进行一些频域处理后再进行反变换。小波变换可以将图像分解成一个低频概貌子图像和一系列高频细节子图像,在变换域对这些子图像进行处理后进行反变换可实现对原图的修改。

图3为利用噪声添加和邻域平均法的效果展示图,首先,读取原始lena图像(左侧图像),然后对原始lena图像添加高斯噪声(中间图像),最后利用邻域平均法( 窗口)对含噪图像进行平滑处理(右侧图像)。

图3 图像平滑处理示意图

图4为对图像进行傅里叶变换和低通滤波处理的效果展示图,左侧图像为一幅黑色正方形图像,中间图像为其傅里叶变换频谱图,右侧图像为进行理想低通滤波后的结果图。

图4 图像滤波处理示意图

2.2.4 图像分割

图像分割模块可以实现图像目标分割功能,如图像边缘检测和区域分割等处理。在图像边缘检测处理中,可以选择Roberts、Sobel、Prewitt、Laplacian和Canny算子进行边缘检测。区域分割处理中可以采用直方图阈值分割、自适应阈值分割和区域增长的方法,其中直方图阈值分割的阈值可以通过弹出对话框进行参数选择。除了上述功能外,此模块还可以完成边界跟踪、Hough直线检测等功能。边界跟踪模块可以实现对白色背景的二值图像中黑色目标的边界跟踪,对轮廓进行提取。Hough直线检测根据Hough变换点-线对偶性原理,利用OpenCV中Hough线变换函数,可实现标准Hough变换和累计统计概率Hough变换,将检测出的直线进行标注。

图5为图像边缘检测和直线检测示意图,其中左上图为原始图像,右上图为利用Roberts算子进行的边缘检测结果图,左下图为利用Canny算子进行的边缘检测结果图,右下图为利用Hough变换检测直线的结果图,检测出的直线标注成红色。

2.2.5 数学形态学

数学形态学模块可以对图像进行腐蚀、膨胀、开运算、闭运算,这四个运算是数学形态学的四个基本运算。数学形态学的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的[1]。利用这些运算并结合图像分割模块可以实现图像的边缘检测与分割、特征提取、图像形状识别与修改等处理。此外,该模块还包含击中击不中和细化处理,利用击中击不中变换可以进行目标检测与定位。

图6为一个利用数学形态学进行膨胀的示意图。首先读入原始图像(左侧图像),然后对其进行二值化处理(中间图像),最后对二值化处理后的图像进行膨胀处理(右侧图像)。

图5 图像边缘检测及直线检测示意图

图6 数学形态学膨胀处理示意图

3 结束语

本文所介绍的数字图像处理课程教学辅助软件可以实现对图像的文件操作、图像变换、图像增强与复原、图像分割和数学形态学功能。本软件的开发可有效地展示数字图像处理课程中各种基本算法的实现过程和处理结果,有利于加深学生对该课程理论知识和实现技术的理解与掌握,能够提高该课程的教学效果。

参考文献:

[1]陈胜勇,刘胜等.基于opencv的计算机视觉技术实现[M].北京:科学出版社,2008.

[2]印月.基于VC++6.0的数字图像处理综合性设计实验[J].实验科学与技术,2011,Vol.9(3):10-11.

[3]黎宁,徐晓波,牛征.MATLAB平台下图像处理实验教学软件的实现[J].电气电子教学学报,2001,Vol.23(5):55-58.

[4]张华,展晓凯.基于VC++的数字图像处理系统的设计与实现[J].潍坊学院学报,2011,Vol.11(2):15-21.

[5]秦志远,张占睦,莫华.计算机图像处理可视化软件设计与实现[J].测绘学院学报,2001,Vol.18(1):33-35.

[作者简介]王蓉(1971-),副教授,博士,汉族,辽宁人,主要研究方向:数字图像处理与模式识别。

猜你喜欢
数字图像处理教学软件
传承·创新·引领:虚拟教学软件在高中生物学教学中的应用与推广
基于HTML5的凸轮廓线图解法App教学软件研究
基于AR的国家开放大学计算机专业体验式教学软件的设计开发
VR技术在三维角色动画教学软件中的应用研究
香港大学生普通话学习的环境、语言态度及教学软件的应用——焦点小组访谈研究
信息与计算科学专业《数字图像处理》课程教学探讨与实践
微课在大学专业课中的应用研究
以应用实例为主线、以程序设计为主导的数字图像处理课程教学方法改革