VTK医学图像三维重建应用及实现_洪涛
2011 年 第20卷 第 4 期 f5c099234a7302768e993960 计 算 机 系 统 应 用
Research and Development 研究开发127
VTK 医学图像三维重建应用及实现①
洪 涛1,潘志方1,2,林立本2,杨丽丽3,沈琴琴1
1(温州医学院 信息与工程学院,温州 325035)
2
(温州医学院 检验医学院与生命医学院,温州 325035) 3
(温州医学院 第一临床医学院,温州 325035)
摘 要:VTK 是开放源码的自由软件系统,可应用于图像处理、计算机图形学和科学计算可视化,在国内外被广泛用于各行各业。介绍了VTK 的基本组成、系统架构、可视化流程。并且将VTK 应用于医学图像可视化,使用面绘制的移动立方体法和体绘制的光线投影法,在Microsoft Visual Studio 2005下使用C++语言分别实现了医学图像三维重建,并给出了系统实例。实践证明,使用VTK 开发医学图像三维重建系统,重建效果好,开发时间少,代码重用率高。
关键词:VTK ;三维重建;动立方体法;光线投影法;医学可视化
Application and Realization of 3D Reconstruction of Medical Images of VTK
HONG Tao 1, PAN Zhi-Fang 1,2, LIN Li-Ben 2, YANG Li-Li 3, SHEN Qin-Qin 1
1(School of Information and Engineerin, Wenzhou Medical College, Wenzhou 325035, China)
2
(School of Laboratory Medicine and Life Science, Wenzhou Medical College, Wenzhou 325035, China) 3
(School of the First clinical medical sciences, Wenzhou Medical College, Wenzhou 325035, China)
Abstract: VTK, which is an open source free software system, can be applied to image processing, computer graphics
and visualization in scientific computing, and it is widely used in all walks of life at home and abroad. This dissertation describes the basic composition, system architecture, and visualization process of VTK. Furthermore, it applies VTK to the visualization of medical images, uses a surface rendering- Marching Cubes algorithm- and a volume rendering- Ray Casting algorithm- to achieve 3D reconstruction of medical images under the Microsoft Visual Studio 2005, and has designed the system examples. Practice proves, using VTK to develop medical images’ reconstruction system has good reconstruction results, less development time and high code reuse rate.
Keywords: VTK; 3D reconstruction; marching cubes algorithm; ray casting algorithm; medical visualization
近年来,计算机图形图像等技术不断发展,并逐步渗入到医学领域,开创了数字医疗的新时代。基于计算机数字图像处理、计算机图形学、虚拟现实和计算机网络等技术的医学图像处理与三维重建技术,已逐渐成为了一门具有特色的交叉学科。
VTK 是开放式的免费软件,并且具有强大的三维图形图像处理功能,良好的体系结构、高度的灵活性及可移植性,目前在美国、西欧等各高校、研究所已经得到广泛的应用[1]。在美国的耶鲁大学里就有专门
的教材用于高校教学[2]。虽然VTK 在欧美已经十分流行,但其在国内的发展情况却不容乐观,这些都应该引起有关部门和高校的重视。
1 VTK 介绍
VTK(TheVisualization Toolkit)是美国Kitware 公司推出的一个开放源码的自由的软件系统,可以应用于图像处理、计算机图形学、科学计算可视化,最新版本为5.6.0,下载地址为f5c099234a7302768e993960/VTK/ resources/software 。
① 基金项目:浙江省大学生科技创新项目(2009R413013);温州市科技局科技项目(Y20090099)
收稿时间:2010-08-17;收到修改稿时间:2010-10-08
计 算 机 系 统 应 用 f5c099234a7302768e993960 2011 年 第20卷 第 4 期
128研究开发 Research and Development
VTK 完全采用面向对象的设计思想来设计与开发,支持Windows ,Unix 与Linux 等多种平台,支持
C ,C++,Java ,Tcl/Tk 以及Python 等编程语言[3]。VTK 将众多常用的图形操作、图像处理算法封装成不同的类,非常易于理解和调用。相对于Matlab 与OpenGL 库,VTK 具有应用灵活、重建效果逼真、重建速度较快等优点,同时还可以对图像进行缩放、旋转、平移、组织提取等多种操作[4]。与此同时VTK 具有很好的流
(streaming)和高速缓存(catching)能力,同时支持多线程处理,这些都使得VTK 成为医学图像可视化开发的一个较好的选择[5]。
VTK 最初设计的目的是为了医疗领域的应用,它支持一系列可视化算法和许多高级建模技术,并且己经集成了许多的可视化算法,像MC 算法、光线投射法等。自从开发以来受到广泛重视和应用,并不断得到完善,已成为可视化领域最负盛名的软件开发包。
1.1 VTK 的基本构成
VTK 主要有两个子系统组成,一个是利用C++语言编写的核心层(C++ Class Library),另一个是按照一定规则生成的支持脚本语言的解释层(Tcl/Tk ,java etc
Interpreted Interface)。这种结构的好处是既可用C++建造有效的算法,同时保持解释性语言代码的特点,使得开发人员能选择自己熟悉的工具语言进行开发,而且这些语言都具有自己的GUI 开发支持。
1.2 VTK 的架构
使用VTK 进行可视化应用非常方便,只需两个部分。首先,建立目标图形用以演示数据;其次,建立数据流水线(data pipeline)来处理数据,建立流水线
(data pipeline)就是将Source 、Filters 、Mappers 链接起来。
类似于MFC 中的CObject 基类,VTKObject 是
VTK 的基类,它为可视化流程提供基本的方法。VTKSource 是VTKObject 的派生类,它为整个可视化流程的开始(比如数据读取等)定义具体的行为和接口。
VTKFilter 是VTKSource 的派生类,它对数据进行各种处理,使得数据可以直接用某种算法模块进行处理式。VTKMapper 是VTKObject 的另一个派生类,它将经过VTKFilter 处理后的应用数据映射为几何数据,为原始数据与图像数据之间定义接口。这样,多种类型的Sources ,Filters 和Mappers 就连接了起来。
VTK 使用了面向对象编程,包含大量的对象模型(Object Models),根据其继承关系,流水线(data pipeline)的对象模型可分为两个方面:可视化模型(the Visualization Models)和图形模型(the Graphics Models)[6]。
可视化模型(the Visualization Models)又可分为数据对象(vtkDataObject)和处理对象(vtkProcessObject)。数据对象(vtkDataObject)表达各种类型的数据。处理对象(vtkProcessObject)主要作为过滤器(filter),它被用来对数据对象进行操作并产生新的数据对象。
图形模型(the Graphics Models)主要的类有以下7个: 渲染窗口(vtkRenderWindow)、渲染器(vtkRend-
erer)、灯光(vtkLight)、照相机(vtkCamera)、演员(vtkActor)、属性(vtkProperty)和映射器(vtkMapper)。当我们将这些对象组合在一起,就可以创建一个场景,生成一幅图像。
1.3 VTK 的可视化流程
可视化流程的职责是转换信息为图形数 …… 此处隐藏:8761字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




