基于ITK和VTK的医学图像处理系统设计与实现硕士学位论文.docx
- 文档编号:25713742
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:70
- 大小:1.46MB
基于ITK和VTK的医学图像处理系统设计与实现硕士学位论文.docx
《基于ITK和VTK的医学图像处理系统设计与实现硕士学位论文.docx》由会员分享,可在线阅读,更多相关《基于ITK和VTK的医学图像处理系统设计与实现硕士学位论文.docx(70页珍藏版)》请在冰豆网上搜索。
基于ITK和VTK的医学图像处理系统设计与实现硕士学位论文
专业学位硕士学位论文
基于ITK和VTK的医学图像处理系统设计与实现
DesignandImplementationofMedicalImageProcessingSystemBasedonITKandVTK
大连理工大学
DalianUniversityofTechnology
大连理工大学学位论文独创性声明
作者郑重声明:
所呈交的学位论文,是本人在导师的指导下进行研究工作所取得的成果。
尽我所知,除文中已经注明引用内容和致谢的地方外,本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请学位或其他用途使用过的成果。
与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。
若有不实之处,本人愿意承担相关法律责任。
学位论文题目:
作者签名:
日期:
年月日
摘要
随着计算机断层扫描技术、核磁共振成像技术的出现和在临床上的使用,医学诊断和治疗技术取得了很大的进展。
但是二维图像只能显示某个切面内像素之间的相关关系,而将二维断层医学图像序列通过一定的三维重建算法形成具有真实感的立体效果图像,通过人机交互界面,使用平移、缩放、旋转、透视、剖面等方法多角度全方位显示医学图像的内部复杂结构,可以帮助医生客观、准确的进行病体观察和病因分析,进而指导手术或制订治疗计划和评估术后效果,提高医疗诊断和分析的准确性和可靠性。
因此医学图像数据的处理有着重要的研究价值和广阔的应用前景。
本文基于ITK和VTK类库,实现了医学图像的可视化设计,对系统各组成部分进行了分析和讨论。
首先介绍了实现系统的相关技术,Qt主要负责系统中界面的设计,ITK类库用来读取医学图像并进行简单的处理,VTK主要是医学图像三维重建的开源系统,便于二次开发。
接下来说明了医学数字成像及通信标准(DICOM)的文件格式,DICOM标准涵盖了医学图像的采集、归档、通信、显示及查询等。
然后系统通过ITK读入医学图像并进行简单地处理后,输出的结果连接到VTK的管道模型上进行医学图像的三维重建,将重建的结果嵌入到Qt编写的界面上进行显示,实现了系统人机交互界面和基本功能。
最后总结、分析并实现了医学图像三维重建技术体绘制和面绘制。
该系统主要实现的功能有DICOM文件序列矢状面、冠状面及横断面的三视图显示,通过与滑块的交互显示了所有切片序列,体数据的虚拟切割实现对特定部位内部结构的观察,面绘制和体绘制的三维重建,查看DICOM文件的多种相关信息,DICOM格式的图像转换为BMP和MHD格式的图像等。
关键词:
医学图像;三维可视化;DICOM;Qt;ITK;VTK
DesignandImplementationofMedicalImageProcessingSystemBasedonITKandVTK
Abstract
Withtheappearanceandclinicalapplicationofthecomputertomographytechnologyandnuclearmagneticresonanceimagingtechnology,medicaldiagnosisandtreatmenttechnologyhasmadegreatprogress.But2Dimagecanonlydisplaytherelationshipbetweenpixelsinonedirection.Aseriesof2Dmedicalimages(suchasCT,MR,etc),viasome3Dreconstructionalgorithm,canbeconstructedtoformastereoscopiceffectimage.Theimagecanbeshifted,zoomedorrotatedbytheuser.Inaddition,somespecialviewsarealsoapplied,suchasMIP(MaximumIntensityProjection),MPR(Multi-PlanerReconstruction).Thesefunctionsassistdoctorsinobservingthesickbodyandanalyzingthecausesobjectivelyandaccurately,evenguidingthesurgeryortreatmentplanningandassessmentoftheoperationresult,whichthemedicaldiagnosisandanalysiscanbeimprovedaccuratelyandreliably.Therefore,itisofgreatsignificancetoresearchsomecrucialtechnologyaboutmedicalimageprocess.
Thispaper,basedonITKandVTKlibrary,realizesthemedicalimagevisualizationanddiscusseseachcomponentofthesystem.First,theDICOM(DigitalImagingandCommunicationsinMedicine)standardwhichcoversthemedicalimage’sacquisition,archiving,communication,displayandquery,etcareanalyzedanddiscussed.Atthesametime,therelevanttechnologyofthesystemisintroduced.Qtismainlyresponsibleforthedesignoftheinterfaceofthesystem.ITK(InsightSegmentationandRegistrationToolkit)libraryisusedformedicalimagesreadingandsimpleprocessing.VTK(VisualizationToolkit)isanopen-sourcesoftwaresystemforimageprocessingandvisualization.Second,the3DvisualizationsystemofmedicalimagebasedonQt,ITKandVTKhasbeendeveloped.Inimplementationprocess,ITKreadmedicalimagesandsimpleprocess.TheresultsoftheoutputconnecttotheVTKpipelinemodelandrealizethethree-dimensionalreconstruction.ThentheresultofreconstructionisdisplayedinQtinterface.Thusitrealizeshuman-computerinteractionandbasicfunctions.Finally,volumerenderingandsurfacerenderinginmedicalimageareanalyzed,summarizedandrealized.Thesystemincludesfollowingfunctions:
(1)theviewsoftheSagittal,CoronalandAxialofvolumedata;
(2)theviewofsliceimagebydynamicallyslidingtheQSliderofQt;(3)cuttingthevolumedatatoachieveparticularpartoftheinternalstructure;(4)3Dreconstructionof2Dmedicalimagebymeansofthesurfacerenderingandvolumerendering;(5)viewsomeinformationofDICOMfile;(6)formatconversionfromDIOCMtoBMPandMHD.
KeyWords:
Medicalimages;3Dvisualization;DICOM;Qt;ITK;VTK
1绪论
1.1引言
医学图像三维可视化技术作为医学影像领域的一个重要分支,是目前医学图像处理的研究热点。
它利用计算机将二维图像数据序列重建为三维图像模型,在满足人们对于医学图像进行三维可视化处理的同时,弥补医学成像设备上的不足,能够直观、逼真的显示出人体器官、组织及病变的内部结构等,有效地提高了诊断效率[1]。
但由于医学数据的特殊性,对三维可视化技术提出了一个更高的要求,包括硬件平台、操作系统、数据传输、网络通信等在内的条件对重建效果也有一定的影响。
为了能快速重建出清晰真实的三维图像,方便观察图像中感兴趣的部位,本文中借助图像分割和配准工具包ITK和可视化工具包VTK,成功地搭建了一个简单的用于处理医学图像和显示系统,并且使用经典的三维重建算法对二维图像序列进行三维重建,以实现对医学图像的三维可视化技术更加深入的分析和理解。
1.2研究背景及应用意义
科学计算可视化是指利用计算机图形学和图像处理技术,将科学计算过程中产生的数据及计算结果转换为在屏幕上显示出来图形或图像,并经过交互处理的理论、技术和方法。
可视化技术目的是将复杂信息转换为易于理解的表达形式,可以将大量抽象的数据或计算结果用图形或图像直观地表现出来,目标是将抽象数据中隐藏的模式、特征、相互关系、异常结构挖掘出来,以直观的方式呈现给用户,从而帮助用户理解和使用。
在当今社会,可视化技术已经越来越多地应用于凡是涉及到计算机的各个领域,例如气象预报、石油勘探、航空航天、医学图像处理等。
这些使用方面都帮助和改变着人们的日常生活,可视化技术在医学方向的使用也非常的广泛,因此对医学图像的可视化技术和可视化系统的开发已经成为一个热点。
随着科学技术的发展和生活水平的提高,人们对医学技术的要求也越来越高,医学图像预处理技术也就显得日益重要。
而最早的医学影像技术可以追溯到1895年,伦琴发现了X射线。
当一束具有均匀强度的X射线照射到人体上时,被吸收和散射了一部分,而另一部分透过人体沿原方向继续传播。
透过人体的X射线由于人体各种器官和组织在密度、厚度等方面存在差别,强度发生了变化并携带了人体信息,再通过某种方式进行采集、转换、显示,将其强度分布转变为不同强度分布的可见光,人眼可见的X射线影像便形成了[2]。
由于X射线的特征,许多医疗诊断设备也就应用而生。
同时,X射线摄影随着科技的进步也经历了从早期的干板摄影到胶片/增感屏组合。
再到1981年,日本富士公司出台了X射线的数字化成像技术(ComputedRadiograph,CR),后到1997年出现了直接数字化X射线成像技术(DigitalRadiograph,DR),数字减影血管造影和X-CT等技术的相应产生。
随着计算机与微电子技术的飞速发展,医学影像领域受到了风靡全球的计算机网络、通信技术和数字化技术广泛而深远的影响[3]。
大批全新的成像技术进入了医学影像领域,如CT断层成像、磁共振成像MR、超声成像、红外线成像、PET/SPECT等等。
这些成像技术不仅改变了X光胶片/屏幕成像的原始面貌,在很大程度上丰富了形态学诊断的领域和层次,而且使形态学的诊断水准也得到了提升,诊断信息的数字化目标就这样实现了。
尽管这些技术提供了多种可视化的诊断方法,深刻地变革了疾病的检查和诊断,但是这些影像技术仅仅显示的是二维断层图像,不能客观、真实地显示出三维立体图像。
所以对人体大脑中构造器官和组织的理解,医生只能停留在熟悉的人体解剖知识和多年的临床经验,并由此来估计病变的位置,病灶的大小、形状与正常组织结构的边界。
但是这些只是医生的主观意识和临床经验,加之人体器官构造的复杂性和形态多样性,这些估计远远不够,甚至会产生误诊而造成严重的医疗事故,所以给治疗带来了很大的困难。
为了客观、准确地进行病灶分析和判断,20世纪80年代末出现了医学图像的三维可视化技术。
该技术主要是在计算机上将从CT、MR、超声等医疗设备上获取的二维断层图像进行三维重建。
重建后的图像具有真实的立体效果,能够直观地显示人体组织、器官及病变体的形态和内部结构,给医务人员以直观的感觉,结合多年的临床经验,为进一步确定治疗方案和实施手术奠定了坚实的基础。
通过三维可视化技术和虚拟现实结合的技术,医生可以进行手术规划和手术模拟,从而使手术的成功率也大大增加。
综上可见对医学图像处理和三维可视化技术的研究和可视化系统的开发具有重要的意义和应用价值。
1.3研究内容和结构框架
本课题主要研究的目的是对医学图像的相关处理和三维显示。
课题中主要对医学图像的三维可视化关键技术的部分问题进行研究,分析和总结相关理论的同时,实现了对医学图像的简单处理和可视化。
课题主要研究的内容是:
基于ITK和VTK的医学图像处理系统的设计与实现。
简单介绍了系统实现的相关技术,Qt程序设计的核心技术,ITK和VTK类库在医学图像处理上的使用;详细分析了医学图像存储和传输的标准DICOM,包括DICOM文件结构、存储格式等;分析了医学图像的预处理技术;通过Qt、TIK和VTK的集成,实现了医学图像的三视图显示;分析、总结医学图像的三维可视化技术,实现了经典的面绘制和体绘制算法。
本论文分为五个章节,各章节的简要内容组织如下:
第一章,着重分析了本课题的研究背景、应用意义和本文的主要研究内容和结构组织。
第二章,首先阐述了系统设计和开发中所使用的一些核心技术,包括Qt程序设计的核心技术、VTK类库及编程模式、ITK类库及编程模式等。
然后,详细分析了系统中使用的DICOM医学数据,包括DICOM文件的基本概念和专业术语、文件格式、内部信息等。
第三章,主要对系统进行了需求分析和总体设计,根据目前三维可视化在医学处理方面的重要作用,确定了系统主要的实现目标,详细介绍了系统总体的需求分析以及系统实现功能的总体设计,指导系统的开发和设计。
第四章,主要对第三章中使用的绘制算法进行总结和分析,其中包括面绘制中的移动立方体算法和体绘制中的光线投射算法的原理、特点和优缺点等。
第五章,主要对系统进行测试和系统结果进行说明。
通过各个模块实现效果的显示,说明实现的方法和所要达到的目的,以及如何实现对显示图像的交互。
最后总结了本文所做的工作以及对医学图像三维可视化技术未来发展前景的展望。
2相关技术介绍
本系统主要使用的技术有Qt、VTK和ITK,其中ITK实现医学图像的读入,并对读入的图像进行简单的处理;VTK实现对ITK处理后图像的显示;Qt主要实现界面的设计,并将VTK显示的医学图像嵌入到界面中进行显示,主要针对的医学图像格式为DICOM,所以下面简要介绍一下系统中用到的这些关键技术和DICOM图像的格式。
2.1Qt编程技术
2.1.1Qt编程技术简介
Qt是一个应用程序框架,具有跨平台性,通过Qt的使用,可以在很多情况下无需重复编写源代码,因为一次性开发的应用程序和用户界面可以部署到多个桌面和嵌入式操作系统。
系统设计中使用的是QtCreator,它是一个跨平台的、完整的Qt集成开发环境,其中包括了高级C++代码编辑器、项目和生成管理工具、集成的上下文相关的帮助系统、图形化调试器、代码管理和浏览功能等。
在该集成开发环境中,首先使用QtDesigner编辑界面,最后会被保存为*.ui文件,然后使用Cmake就可以生成对应的头文件。
ui文件使用QtCreator打开,里面是一个xml格式的文件,这个文件用树状结构描述了整个界面的组织结构,包括每个界面元素的描述、大小、名字和位置等等。
例如,在QtDesigner中编辑出来的界面文件是mytest.ui,对其进行Cmake后,就会产生对应的ui_mytest.h文件,打开该文件里面是用C++语言重新描述的xml的ui文件。
QtDesigner的编程模式:
(1)QtDesigner将工程文件组织成*.ui文件;
(2)由*.ui文件生成*.h文件:
UIC(userinterfacecompiler),-o*.h;
(3)编写主程序main.cpp,主程序调用UIC生成用户界面头文件;
(4)由C++编译器编译所有的*.h和*.cpp文件。
2.1.2Qt编程机制
Qt编程中信号和槽机制是一个重要特征,是Qt与其它工具包最不相同的部分,主要用于对象之间的通信。
信号和槽机制原理如图2.1所示,由图可知,一个对象可以与多个对象关联,一个对象的一个信号可以与另一个对象的多个槽函数关联,一个对象可以发射多个信号与不同的对象发生关联。
只要将信号和槽关联起来,当对象的信号发生改变时,另外的对象的槽函数就会被触发,从而实现了类似于其他编程中的回调函数的功能。
图2.1Qt中信号和槽机制原理图
Fig.2.1SignalsandslotsmechanismprinciplediagraminQt
QtDesigner设计的控件处理响应的方式有两种:
(1)如图2.1所示,connect(Object1,signal1,Object2,slot1);这里信号的发送者是对象Object1,发射的信号是signal1,信号的接受者是Obejct2对象,Object2对象通过调用槽函数slot1作出响应。
(2)界面上的控件直接处理定义的槽函数,例如,voidWin:
:
on_pushBtn_clicked();
这里Win是自己定义的类,on_pushBtn_clicked()是在类中定义的槽函数,其中pushBtn是在QtDesigner下设计的界面控件的对象名称,即控件的objectName属性。
可以通过在QtDesigner下,右击界面上的QPushButton控件,选择转到槽,选中clicked()(这里有许多内置的槽函数)点击确定后,即可生成voidWindow:
:
on_pushBtn_clicked()。
其中槽函数的申明在Win.h文件中,在对应的.cpp文件中有该函数的实现入口。
使用Qt中的信号时需要注意以下几点:
(1)当对象的内部状态发生改变,信号就被发射。
(2)只有定义了一个信号的类和继承于这个类的子类才能发射这个信号。
(3)如果几个槽函数被连接到一个信号,当信号被发射时,这些槽函数就会被按任意顺序一个接一个地执行。
(4)信号的声明是在头文件中进行的,Qt的signals关键字指出进入了信号声明区,随即可以声明自己的信号。
例如,下面定义的信号:
signals:
voidmySignal();
voidmySignal(intx);
(5)信号由moc自动产生。
使用Qt的槽函数时需要注意以下几点:
(1)当一个和槽函数连接的信号被发射时,这个槽函数就会被调用。
(2)槽函数是普通的C++函数,因此可以像普通函数一样被调用,槽函数唯一的特点就是可以被信号连接。
(3)槽函数的参数不能含有默认值,并且和信号的参数一样。
(4)槽函数是普通成员函数,所以与普通成员函数一样有访问权限。
(5)槽函数的声明在头文件中进行的。
例如,下面声明的槽函数:
publicslots:
voidmySlot();
voidmySlot(intx);
在Qt程序设计中,凡是包含signal和slot的类都要加上Q_OBJECT的定义,采用信号和槽机制编写的代码不能直接被标准C++编译器编译,需要借助moc(MetaObjectCompiler:
元对象编译器)的Qt工具对信号和槽在编译之前进行预处理。
Moc如果发现类声明中含有宏“Q_OBJECT”,则将为这些类产生另外的C++代码,其中装有源对象代码。
2.2VTK库框架和在医学图像中的应用
2.2.1VTK库的框架结构
VTK(VisualizationToolkit)[4]提供了一个用于图像处理、三维计算机图形学及可视化的开放源码的软件类库,是一个进行数据可视化的通用工具包。
因为将许多基本的可视化算法封装成类,所以在三维重构(如体绘制和面绘制)等科学计算可视化方面具有强大的功能。
VTK系统主要由C++类库、解释包装层(对C++类库进行包装,便于TCL、Java等语言使用)两个基本的子系统构成。
采用这种架构的优势是能使用C++语言建立高效的算法,用其它的脚本语言(如TCL、Python)可以进行快速的开发。
同时VTK也是一个面向对象的可视化系统,所以提高VTK开发效率的一个关键因素是建立一个好的、易于理解、优化的对象模型。
构成VTK系统大致可以分为两种对象模型:
图形模型和可视化模型[5]。
其中图形模型主要作用是用图形描述几何体构成的场景,可视化模型主要作用是把几何数据(如多边形的顶点坐标)转换为图形数据,主要由两个基本类和数据转换相关,它们是:
vtkDataObject和vtkProcessObject。
VTK图形模型主要由以下核心类组成:
(1)演员者类:
vtkActor、vtkActor2D、vtkVolume表示的是场景中能“看到”的东西,其作为渲染场景中绘制实体存在,通过设置映射器的SetMapper()方法来将几何数据表演出来。
(2)灯光类:
vtkLight用于控制整个场景中的光照,只用于三维,在三维场景中设置好灯光的参数,如位置、颜色、照射强度等,可以很大的影响三维图像的渲染。
(3)映射器类:
vtkMapper经常和查找表类(vtkLoopupTable)一起对几何体进行变换和绘制,该类是图形模型和可视化模型之间的接口。
(4)相机类:
vtkCamera用于定义观察者的位置、焦点和其它相关属性。
(5)绘制类:
vtkRenderer管理着表演者、灯光、照相机等对象。
通过AddActor()或者RemoveActor()方法将表演者添加或移除绘制器。
这些对象组成了渲染出来的整个场景,将绘制器加入到绘制窗口中则可将渲染出来的场景显示出来。
(6)绘制窗口类:
vtkRenderWindow用于给渲染器的场景提供显示窗口,用户可以创建多个绘制器,通过AddRenderer()方法可以将绘制器添加到绘制窗口中,也可使用SetSize()来设置绘制窗口的大小。
VTK可视化模型主要包括源对象、过滤器对象和映射器对象。
源对象是数据生成的源头,不仅包括从磁盘读取图像文件作为数据来源的读源数据,如VTK所支持的不同格式文件构成的数据源对象,而且包括使用数学方法生成的程序源对象,如利用多个三角形构建一个圆锥体。
数据对象大致有多边形数据(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ITK VTK 医学 图像 处理 系统 设计 实现 硕士学位 论文