APP下载

多种开发工具在医学图像处理课程教学中的综合应用*

2013-11-27陈凯迪

中国教育技术装备 2013年32期
关键词:图像处理医学图像

◆陈凯迪

医学图像信息处理是一门结合了算法与程序设计的专业课程,若仅依靠Visual C++ 6.0作为开发平台,可能导致学生视野偏窄、学习效率偏低。通过此次教学改革,将Matlab、OpenCV、VTK及Visual Studio开发平台共同应用于教学过程中,在不同的章节突出不同的内容。实践表明,借助这些高级开发平台进行学习,学生学习积极性得到激发,理论水平及工程实践能力明显提升,为开展毕业设计或科研工作打下良好的基础。

1 引言

医学图像信息处理是结合温州医科大学医学特色,向信息管理与信息系统专业学生开设的一门高年级专业课,旨在让学生掌握生物医学成像及图像处理方面的基本原理、方法和发展趋势,拓宽学生知识基础,提高学生素质,使学生具有解决一般医学成像和图像处理问题的能力。

以前,在医学图像信息处理课程中是以Visual C++ 6.0和Matlab作为课堂演示及上机实验的平台。Visual C++ 6.0作为一种通用的开发平台,使用其编写程序时,工作量大,开发周期长。对于学生来说,把大量的时间用在熟悉开发语言而不是用在学习图像处理的算法上,显然不是本课程的目的。因此,仅使用Visual C++作为教学及实验的工具并不合适。

Matlab语法结构简单,提供了专门的图像处理工具箱,使学习者不必太多地去关心图像的文件格式、读写、显示等细节,而把精力集中在算法研究上。但是,仅偏重于学生如何使用Matlab工具箱实现图像处理的功能,不利于学生深入理解各种算法原理。而且,由于Matlab程序的移植性较差,学生学完后不能面对实际的开发应用,难以提高实践动手能力[1]。

本课题研究的目的在于拓宽学生知识面,在教学过程中增加了OpenCV和VTK这两种高层开发平台,以期提高学习效率,为开展学生科研、毕业设计以及今后的工作打下更加扎实全面的基础。

2 教学改革的具体实施

此项教学改革的总体思路是将Matlab、OpenCV、VTK共同引入医学图像信息处理课程的学习,在不同的章节嵌入适当的示例程序,分析算法原理和代码实现。同时,设计合适的实验项目,让学生能够按部就班、从简到难地开展基于以上开发工具的上机实验。改变学生由于C++语言的复杂繁琐所导致的学习积极性不高、缺乏自主探索意识的现状,转而能够在学习和实践中充分体验医学数字图像处理的内涵和魅力。同时,教师可以挑选对该方面感兴趣的学生,以学生科研课题或毕业设计的形式,做进一步的指导,从而使本课程的教学水平得到提高。

Matlab平台的应用 Matlab虽然不适合于本课程所有章节的演示与实验,但在介绍数字图像的一些基本概念时不失为一个好的平台,因为它具有界面直观明了、命令简单、易学易懂的优点。以下几幅图是在教学过程中使用的部分示例:图1是用Matlab命令显示的人体骨骼PET原始图像及其直方图,图2是原始图像的灰度反转图及其直方图。

图1 人体骨骼PET原始图像及其直方图

图2 原始图像的灰度反转图及其直方图

OpenCV的应用 OpenCV即开源计算机视觉库,它是以C函数和C++类的形式实现大量图像处理算法。相对于Matlab而言,学生不仅可以利用OpenCV开放的源代码,以函数进行图像处理,而且可以查看算法的代码实现,在提高编程能力的同时理解算法的原理[2]。

在讲解图像增强、图像分割、图像变换时设计了采用Visual Studio.net+OpenCV为平台的实验内容。因为考虑到工具的高效性和通用性,所以OpenCV是本次教改中最为重要的一个教学内容,所占学时也最多。根据以往经验,大多数学生对OpenCV并不熟悉,配置OpenCV的开发环境又比较麻烦,仅让学生在实验课上跟着教师做一遍并不能让他们真正掌握知识,因此需要先在理论课上对OpenCV做详细的介绍,演示各种开发案例,讲解常用函数功能,然后在实验课上再让学生对照实验指导书安装OpenCV并一步步配置开发环境,接着完成各项实验内容,包括在win32控制台项目中使用OpenCV和在MFC框架下使用OpenCV进行数字图像处理。实验课后再布置若干个大型的实验任务,可以2~3人一个小组,让学生自己查资料开发完成,期末上交实验报告及源代码。

实践表明,采用理论课+实验课+课外实验的模式,整个学期持续地让学生接触、实践新的开发工具,才有可能比较好地掌握这个工具。否则,很可能就变成学一段忘一段的无效学习。图3是采用Sobel边缘检测算子分割图像的效果图,图4是对图像做阈值分割的效果图,图5和图6分别是对图像进行仿射变换和透视变换的效果图。

图3 Sobel算子分割图像

图4 图像阈值分割

图5 图像仿射变换

图6 图像透视变换

VTK的应用 VTK是在OpenGL的基础上,结合面向对象技术,重新设计和开发用于三维计算机图形、三维可视化、图像处理的C++类库。医学图像的三维重建和显示是本课程中最抽象的内容。在教学过程中,引入VTK三维可视化工具包,可提高学生对理论的理解,激发学习兴趣。在讲解这部分内容时采用Visual Studio.net+VTK为演示平台,实验教学过程中采用表面绘制技术对医学图像进行三维重建。需要说明的是,基于VTK的实验内容对硬件的要求非常高,在实验室环境升级改造之前,只能提供用cmake配置VTK的文档让学生在自己的机器上进行操作。

事实上,VTK提供的教材本身就非常好。VTK源程序包的Example目录包括了一系列例子,它们都有详尽的注释。一步步学习这些例子,可以很容易理解VTK涉及的可视化概念和VTK编程的一般特点[3]。

教改中设计的利用VTK做CT片的三维重构实验,从算法和数据结构来看,是一个读取数据和图形显示的问题。教师事先准备好符合DICOM 3.0标准的CT图像文件,学生试着用VTK的vtk Image Reader类或者vtkVo lume Reader类去读取数据。关于重建算法,对于CT片这种三维规则数据场,可以采取成熟、基本的算法来进行三维重建,比如Marching Cubes算法。图7为读取一系列的头骨切片图像数据,然后利用vtk Marching Cubes类提取的表面。

图7 用MarchingCubes算法重建的头骨表面

3 教学改革的效果

在医学图像信息处理课程中单独使用某一种软件开发工具都显得比较片面,而同时将Matlab、OpenCV、VTK及Visual Studio开发平台应用于教学过程中,在不同的章节突出不同的内容和方法,则是较为全面的考虑。实施此次教学改革,虽然学生的学习任务繁重了许多,对教师的要求也提高了很多,但收获也是不言而喻的。其收获在于三个方面:一是能够结合过去所学的编程语言,学生在数字图像处理方面的理论水平及工程实践能力得到很大提高;二是为开展图像相关的学生科研课题、毕业设计以及今后的工作打下基础;三是教师借此机会进行知识的更新升级,开阔教学思路,提高业务水平。

[1]冯伍,钟田亮.Matlab在医学图像处理中的应用[J].数字技术与应用,2011(6):42-43.

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

[3]VTK官网帮助文档[EB/OL].[2013-08-16].http://www.vtk.org/VTK/help/documentation.html.

猜你喜欢

图像处理医学图像
改进的LapSRN遥感图像超分辨重建
医学的进步
有趣的图像诗
预防新型冠状病毒, 你必须知道的事
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
基于图像处理的定位器坡度计算
医学
医学、生命科学类
Photo Shop通道在图像处理中的应用