




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号4109005035泰山医学院毕业设计(论文)题目基于面绘制技术的医学影像三维重建2013年6月1日院(部)系放射学院所学专业生物医学工程年级、班级2009级1班完成人姓名刘宸指导教师姓名专业技术职务侯庆锋讲师论文原创性保证书我保证所提交的论文都是自己独立完成,如有抄袭、剽窃、雷同等现象,愿承担相应后果,接受学校的处理。专业生物医学工程班级1班签名刘宸2013年6月1日摘要医学图像三维重建是目前医学图像可视化技术领域的研究热点,在诊断医学、手术规划及模拟仿真等方面具有广泛的应用。因此,医学图像三维重建的研究,具有重要的学术意义和应用价值。VTK是开放源码的自由软件系统,可应用于图像处理、计算机图形学和科学计算可视化,在国内外被广泛用于各行各业。本文重点介绍了VTK的基本组成、系统架构、可视化流程。并且将VTK应用于医学图像可视化,使用面绘制的移动立方体法和体绘制的光线投影法,在MICROSOFTVISUALSTUDIO2010下使用C语言分别实现了医学图像三维重建,并给出了系统实例。实践证明,使用VTK开发医学图像三维重建系统,重建效果好,开发时间少,代码重用率高等特点。关键词VTK;三维重建;动立方体法;光线投影法;医学图像可视化ABSTRACTMEDICALIMAGE3DRECONSTRUCTIONISONEOFTHEHOTSPOTINTHEFIELDOFMEDICALIMAGEVISUALIZATIONTECHNOLOGY,INTHEMEDICALDIAGNOSIS,SURGICALPLANNINGANDSIMULATION,ETCITHASBEENWIDELYAPPLICATEDTHEREFORE,THERESEARCHOFMEDICALIMAGE3DRECONSTRUCTION,HASIMPORTANTACADEMICSIGNIFICANCEANDAPPLICATIONVALUEVTK,WHICHISANOPENSOURCEFREESOFTWARESYSTEM,CANBEAPPLIEDTOIMAGEPROCESSING,COMPUTERGRAPHICSANDVISUALIZATIONINSCIENTIFICCOMPUTING,ANDITISWIDELYUSEDTHISSTUDYDESCRIBESTHEBASICCOMPOSITION,SYSTEMARCHITECTURE,ANDVISUALIZATIONPROCESSOFVTKFURTHERMORE,VTKWASAPPLIEDTOTHEVISUALIZATIONOFMEDICALIMAGESASURFACERENDERINGMARCHINGCUBESALGORITHMANDAVOLUMERENDERINGRAYCASTINGALGORITHMWERESTUDIEDALLTHEPROGRAMWEREIMPLEMENTEDUNDERVISUALSTUDIO2010,USINGVTKTODEVELOPMEDICALIMAGESRECONSTRUCTIONSYSTEMTHERESULTSILLUSTRATEDTHATCANACHIEVEGOODRECONSTRUCTIONRESULTS,LESSDEVELOPMENTTIMEANDHIGHREUSABLECODEKEYWORDSVTK3DRECONSTRUCTIONMARCHINGCUBESALGORITHMRAYCASTINGALGORITHMMEDICALVISUALIZATION目录第一章绪论111课题的研究目的和意义112医学图像三维重建的发展以及趋势113论文工作的主要内容2第二章三维医学图像重建基础321系统设计思路和实现流程图322VTK开发包组成和框架结构5第三章VTK应用研究731VTK的安装732VTK基本构成1833用VTK进行三维重构的技术特点20第四章基于VTK的三维重建的实现2441三维重建的基本流程2442面绘制原理2543结论37第五章总结与展望38参考文献39致谢40第一章绪论1课题的研究目的和意义近年来,计算机图形图像等技术不断发展,并逐步渗入到医学领域,开创了数字医疗的新时代。基于计算机数字图像处理、计算机图形学、虚拟现实和计算机网络等技术的医学图像处理与三维重建技术,已逐渐成为了一门具有特色的交叉学科。医学图像三维重建技术是根据成像设备上的二维图像集合,利用计算机重建并合成病灶区或者人体器官的三维图像,可选择不同的重建算法使人体不同组织内部空间结构和物理属性被显示出来,方便医生对病变部位内部结构的可视化观察和分析。随着医学图像三维重建技术的不断发展,医生可依据病人实际病情的具体诊断需要,重点三维显示可能的病变区域细节,可大大提高确诊率。医学图像三维重建技术已成为现阶段可视化领域的研究热点。VTK是开放式的免费软件,并且具有强大的三维图形图像处理功能,良好的体系结构、高度的灵活性及可移植性,目前在美国、西欧等各高校、研究所已经得到广泛的应用1。在美国的耶鲁大学里就有专门的教材用于高校教学2。2医学图像三维重建的发展以及趋势伴随着医学影像技术自20世纪70年代以来的迅速发展,医学可视化技术也迈开了发展的步伐。医学影像技术日新月异的发展成熟,许多技术问题迎刃而解,大大推进了医学可视化技术的发展成熟。到目前为止,医学可视化技术即维重建技术是医学领域研究的热点。医学体可视化技术的早期研究主要集中在欧、美和日本等发达国家,他们对此研究领域十分重视,不仅奠定了医学体可视化的理论基础,而且还开发了实际应用系统。在美国、德国、日本等国有许多著名研究机构和知名大学都开展这方面的研究,如美国的国家实验室、NATIONALLABORATORY、研究中心、麻省理工大学、卡罗拉多大学、俄亥俄大学、纽约州立大学、德国的汉堡大学、日本的大学等3。在理论研究方面,他们不断引入新的理论和方法来拓展医学体可视化的研究内容,特别是与虚拟现实技术的结合,使医学体可视化研究更具活力。近十年来,在美国、德国、日本、法国、英国等发达国家的著名大学、国家实验室及大公司中,关于三维医学图像重建的研究工作及应用实验十分活跃,其技术水平正在从后处理向实时跟踪和交互控制发展,并且已将超级计算机、光纤高速网、高性能工作站及虚拟现实四者结合起来,体现在这一领域技术发展的重要方向。医学图像三维可视化技术未来将向两个方向发展1继续沿着它的开拓计划可视化人体计划(VHP)的方向前进。VHP是一个长期的规划,其早期目标已经完成即获得全套的数字化人体图像数据库,但它的应用范围在不断延伸。利用VHP,结合科学计算可视化技术的研究,人们就可以对绘制算法加以改进、提高,为虚拟现实提供技术准备,甚至可以建立起模拟人体用来进行航空航天、汽车工业等的测试。2结合图像管理和处理系统PACS、远程医学的发展、从海量数据存储的研究到利用压缩数据获得绘制信息的技术,从智能化图像信息的管理到完善的图像标准的建立。因为要使医学图像可视化在临床上得到推广和普及,势必要求摆脱昂贵的硬件条件的限制,建立通用的标准,进行方便的存储和传输,以期在微机环境以及现有的网络通讯条件下,实现在线可视化或者实时绘制4。3论文工作的主要内容本文首先对医学图像处理和三维可视化技术进行了重点的研究与分析,在此基础上,结合医学图像领域优秀的开源工具VTKVISUAUZATIONTOOLKIT,在MICROSOFTVISUALSTUDIO2010平台上设计实现了能够对医学图像断层序列的三维重建及其对三维重建体的交互操作的系统。具体研究内容如下第1章分析了当前医学图像三维重建技术的研究目的与研究领域,及其在临床医学中的应用前景。总结了国内外的研究发展现状,归纳了本文的主要研究内容和结构。第2章在分析研究可视化开发工具包VTK的结构和绘制模式的基础上,给出了本文医学图像三维重建系统的实现流程,其中包括三维医学图像重建的系统设计思路和实现流程图、VTK开发包组成和框架结构、光线投射体绘制算法。第3章介绍了医学影像三维数据场的可视化及可视化工具VTK。包括数据结构、数据场的可视化流程、三维重建的两类基本的算法以及VTK的特点和体系结构。第4章,应用VTK工具对医学图像三维重建及其动态显示的实现过程进行了阐述,使用所开发的应用程序对CT切片进行了面绘制和体绘制的重建。第5章,对全文作了总结。第二章三维医学图像重建基础1系统设计思路和实现流程图医学图像三维可视化的主要任务是三维可视化显示、操作及分析,即在绘制出存真实感的人体组织结构后,可以对其完成交互式操作,对人体组织结构进行形态或功能上的分析处理。医学图像三维可视化的基本实现流程如图21所示图21医学图像三维可视化流程第1步是医学图像数据读取,即通过图像设备获取CT或MRI等对真实物体扫描所得到的二维断层DIC0M格式医学图像序列。第2步是数据预处理。由于医学影像设备的复杂性,DICOM图像的质量在影像输出、传输和转换过程中可能会有一定程度下降。比如引入噪声等,因此在进行三维绘制前,需要对质量降低了的图像进行预处理,改善图像质量。一般会根据实际需要对医学图像迸行滤波和分割处理。医学图像获取图像预处理可视化映射绘制绘制后显示及操作第3步是可视化映射。这是整个流程的核心步骤,在该过程中将经过处理的原始数据转化为可供绘制的几何图素和属性。包括显示的形状、颜色以及其他属性的设置,以绘制出感兴趣的物体的性质。第4步是绘制。将前面一步所产生的具有不同属性的几何模型转换成显示的图像,通过采用不同的绘制算法,进行光照计算、明暗变换等计算,最终实现三维图像绘制。最后一步就是对绘制出的三维医学图像进行显示以及在此基础上对其进行交互操作和分析。本文就是依照此三维可视化的基本流程,完成了一个面向对象的、可实现多种绘制算法及其进行交互操作的医学图像三维重建系统。重建系统实现流程图如图22所示三维绘制算法图22三维重建系统实现流程图体绘制算法透明度设置伪色彩设置光照设置面绘制算法平滑处理阈值处理三角片消减读取医学图像预处理三维绘制显示交互操作结束要完成上述医学图像三维建系统,需要解决以下关键技术1医学数据读取,首先是DICOM格式医学图像的获取问题。因为DICOM格式医学图像是专用的医学图像格式,一般的图片浏览器工具不能读取。因此,本文采用针对医学图像的可视化工具VTK来对这种格式的图像进行显示,并读取相关信息。2医学图像的预处理。图像在传输过程中或多或少会受到噪声干扰,为了提高三维重建的效果,对它的预处理尤为关键。又鉴于医学图像的复杂性,对医学图像的预处理操作在方案选择上需要非常严谨。应针对不同的人体组织器官和病灶结构,选取不同的方案选择。3三维重建算法实现。这是构建三维重建系统的核心步骤,重建算法的绘制速度,内存占用率等因素直接影响并决定了系统的实时性等关键性能。4对三维重建模型的操作,以达到较好的人机交互。本文就是在对以上关键技术的逐步研究和解决后,实现了能够完成不同算法的医学图像三维重建系统。2VTK开发包组成和框架结构VTK是美国GE公司以开源形式发布的面向对象的三维可视化开发工具包。它将图像处理的可视化算法封装成类,为医学图像三维重建技术的开发提供了强大的跨平台如LINUX、WINDOWS等开发的底层算法支持。开发人员可以根据自己的开发需求将VTK嵌到特定的应用程序中进行开发。现在,VTK在可视化研究领域最为流行,并且还在持续的发展进步5。VTK由核心层和解释层组成。核心层是C类库,封装了图像处理的底层算法和与之相关的数据结构解释层支持使用JAVA、PYTHON等脚本语言实现快捷开发,提高开发效率。为了有效地管理庞大的类库,VTK中的类按照功能可划分为COMMON、GRAPHICS、IMAGING、IO、RENDERING、FILTERING等,并均能够生成与之对应的动态链接库。各部分在类库中的层次如图23所示图23VTK中类的划分COMMON是公有基类部分,每个模块的类从COMMON基类承下来。IMAGING是对图像的处理的操作,用来处理各种数字图像算法,如图像增强、图像的缩放、滤波等。IO实现各种COMMONGRAPHICSIMAGINGIOFILTERINGRENDERING格式图像的读写操作,如VTKDLCOMIMAGEREADER类用来读取DICOM格式的医学图像。FILTERING与数据转换部分GRAPHICS则用于图形处理。RENDERING是图像绘制部分,实现窗口屮可视化数据的显示。上述各个模块的类都是对公有基类的继承,根据要完成的相应功能对COMMON类进行特定的扩展,使得开发工作敏捷、快速。VTK库的框架结构是一个面向对象的可视化系统,它将可视化过程中常用的算法封装起来,隐藏了具体的实现细节。类的框架结构如图24所示图24VTK类的框架结构VTKOBJECT是VTK的基类,它为整个可视化流程提供基本的方法。VTKSOURCE是VTKOBJECT的派生类和VTKFILTER的父类,它为整个可视化流程义具体的行为和接口。VTKFILTER是VTKSOURCE的派生类,经过FILTER的处理后,原始的数据能够转换成可以直接用某种算法模块进行处理的形式。VTKMAPPER是VTKOBJECT的派生类,它将经过FILTER处理后的应用数据映射成几何数据,为说始数据和图像数据之间定义接口。VTKOBJECTVTKSOURCEVTKFILTERVTKMAPPERVTKACTORVTKRENDERER第三章VTK应用研究1VTK的安装第一步下载并安装VTK首先从VTK的官方网站HTTP/VTKORG的DOWNLOAD选项中下载VTK580ZIPVTK的源码VTKDATA580ZIPVTK例子所需要的数据。WINDOWSINSTALLERVTK580WIN32EXE然后下载CMAKE下载地址在HTTP/WWWCMAKEORG/HTML/INDEXHTML选择DOWNLOAD选项进行下载。下载的版本越新越好,另外,CMAKE版本的选择是根据VTK版本来定的。下载好后进行安装1、先执行VTK580WIN32EXE安装到你选定的目录下,安装时只要不断点击NEXT就可以完成相应的安装。安装后会产生VTK58文件夹里面还包括BIN等子文件夹。这时候将VTK580ZIP解压到VTK58文件夹下解压后会生成VTK(DVTK58VTK)将VTKDATA580ZIP也解压VTK58主目录下生成VTKDATE文件夹CVTK50VTKDATA。这样就完成了VTK的安装。具体步骤如下图31所示图31VTK的安装2、安装CMAKE运行CMAKE2811WIN32X86,不停地点击下一步就行了。具体步骤如下图所示图32CMAKE的安装3、装载MICROSOFTVISUALSTUDIO2010具体步骤如下图33所示图33MICROSOFTVISUALSTUDIO2010的安装第二步运行CMAKE首先,将源码和编译工作目录两个目录添好SOURSECODE目录是DVTK58VTK,BUILD目录是DVTK58BIN。再按CONFIGURE按钮,CMAKE软件会让你选择需要使用的编译器,这里我们选MICROSOFTVISUALSTUDIO2010,然后,CMAKE就会对系统进行扫描了,停下来之后,我们就可以修改CMAKE选项了。最后按GENERATE按钮。下给大家看几个已经配置好的CMAKE的截图,如下图34图34已经配置好的CMAKE的截图第三步用MICROSOFTVISUALSTUDIO2010编译用MICROSOFTVISUALSTUDIO2010打开BIN目录下的VTKSLN文件,因为文件很多,可能打开速度会有些慢。打开后,直接BUILD。编译的用时和计算机性能,以及CMAKE中的一些选项有关,一般1个小时内可以完成。结果保存在DVTK58BINBIN(DVTKBINBIN)目录下。第四步执行成功后用MICROSOFTVISUALSTUDIO2010打开BIN目录下的INSTALLVCXPROJ文件点击BUILD对VTK进行安装。成功后,然后就完成了所有的安装。相应文件如下图35所示图35BUILD对VTK进行安装完成后的文件所在位置2VTK基本构成21VTK层次结构VTK主要有两大部分组成,利用C语言编写的编译后的核心层CCLASSLIBRARY和按照一定规则生成的支持脚本语言的解释层TCL/TK,JAVAVTKINTERPRETEDLNTERFACE。当前VTK的解释层支持TCL,JAVA,PYTHON等语言。如图36所示,在VTK的编译层中,有关图形图像处理相关的数据结构、算法、时间关键性的功能等被封装成C对象,为VTK其它的类或其它程序所调用。在该层中,将公共的功能抽像成一系列基类,利用这些基类中定义的虚函数VIRTUALFUNCTIONS,确保VTK的移植性和该类库的可扩展性。图36VTK的层次结构在解释型语言界面层。计算机语言有两种类型,编译型和解释型。用编译型语言所写的程序通常能够获得比解释型语言更高的性能,但这往往需要牺牲编写程序的效率和跨平台功能。编译后的VTK动态连接库,在与相应脚本语言绑定以后,形成这些解释型语言的接口,成为解释层部分。利用解释层的接口,我们可以很方便的用TCL/TK,PYTHON/TK,JAVAAWT等解释型语言进行快速开发或试验VTK的新功能,极大的提高了效率。与编译型的语言相比,解释型的语言在灵活性、可扩展性有较大的优势。例如,利用脚本性的GUI原型的解释语言TCL/TK,PYTHON/TK,或JAVAAWT,能够非常容易、快速地开发专业的基于窗口的应用。但由于我们的医学图像处理系统是用MICROSOFTVISUALSTUDIO2010开发的,因而我们主要是对VTK的核心C类库进行扩展,实现我们所需的功能。22VTK功能分类从VTK40版本开始,它新增加了常用的图像处理算法,如图像滤波、缩放、各种格式图像的存取等。VTK从功能上来分,可以分为三部分计算机图形显示部分GRAPHICSMODEL、可视化处理部分THEVISUALIZATIONMODEL、图像处理部分IMAGEPROCESSING。从VTK中的对象类型来分,可以分为两种一种是数据对象DATAOBJECT,该类对象用来表示常用的图形或图像数据,在数据对象中,以数组的方式保存数据,数据集对象DATASETSOBJECT是一类特殊的数据对象,该类对象除保存数据外,还附带数据对象的属性,如几何拓扑结构、法向量等等,例如表示一个点的对象则需保存该点的三维坐标,而表示三角形的对象则需有该三角形的每个顶点的坐标,每个顶点的法向量等等,图37显示了几种典型的数据对象,该图包含了四种对象,分别是图像对象、基本图元对象、结构化点集对象、非结构化点集对象等;另一种对象可称作操作对象PROCESSINGOBJECT,TCL/TK(ORJAVA)INTERPRETEDINTERFACECCLASSLIBRARY(COMPILED)该类对象对数据对象进行处理后获得所需数据,将图形、图像数据处理算法封装后形成的类,一般都属于操作对象。VTK包含上百个这样的对象,使用VTK的关键就是怎样正确的是使用各种操作对象,对数据对象进行处理,得到我们需要的结果,最后在窗口中把它绘制出来。VTK中的操作对象可分为三种类型,包括SOURCES、FILTER、MAPPER、SOURCES类型对象的输出为数据对象,各种图像的读写类,像VTKBMPREADER,VTKFILTREADER,VTKBMPWRITER等都在该部分内。FILTER对象以一种数据对象作为输入,然后输出相同或不同的数据对象。各种实现图像处理算法,图形数据处理的类都属于该类型。MAPPER类对象则是图形、图像处理的最后一步,它将各种处理结果合在一起,控制其在窗口中的显示或将处理结果数据存到硬盘上。图37VTK几种常用数据对象3用VTK进行三维重构的技术特点31VTK应用结构前面己经提到VTK是在三维函数库OPENGL的基础上,采用面向对象的设计方法发展起来的。它将我们在可视化开发过程中常用的算法封装起来,屏蔽了具体的细节。VTK采用的是PIPELINE流水线机制,几乎可以对任何类型的数据进行处理,并提供了许多相应的类对各种类型的数据进行转换或处理。根据所要处理的原始数据类型的不同和所使用的算法以及所要达到的结果,我们可以设计和建立起自己的可视化流程,并由此选择不同的数据处理和转换的类,用数据通道将这些类连接起来,将原始数据类型转换为所采用的算法模块可以直接进行处理的数据类型,最终得到我们所需要的可视化的结果,而且所有的类和算法模块都是可扩充的,用户可以将自己开发的类或模块转换成系统可以接受的形式,并可替换或扩充原有的类。所以VTK是一个开放的系统,可以扩展到任何应用领域。用面向对象技术的对象模型图表示VTK的框架结构。用VTK来产生图形和进行可视化应用是非常方便的,它包括两个基本部分。首先,建立一个数据流水线DATAPIPELINE来处理数据其次,建立适当的目标图形来演示数据。建立流水线PIPELINE就是将SOURCES、FILTERS和MAPPERS连接起来。VTK一个很特别的地方是,对于任何进行可视化的数据,它都是通过角色在窗口中表现出来的,因此建立目标图形应该做以下工作建立RENDERINGWINDOW绘制窗口;建立ACTOR交互操作者,VTKACTOR类用来表达绘制场景中的一个实体,也就是绘制场景中的演员。它通过SETMAPPER方法将几何数据的属性告诉演员;建立RENDERER演示者,通过VTKRENDER类将结果在窗口中显示出来。32VTK绘制过程VTK的设计目标之一是将复杂的图形、图像处理和显示过程分割成尽量简单的对象,每个对象都必须定义明确,实现上述处理过程的部分功能。在图形、图像的显示方面,共有许多种类控制他们的属性和操作。一是窗口类,该种类型的类都是从VTKWINDOW继承而来,要显示计算机图形或图像到计算机屏幕上,必须首先打开一个计算机屏幕上的窗口,窗口类负责打开一个窗口,管理打开的窗口资源以及该窗口在屏幕上的位置,使用底层的图形图像显示函数库,将图形、图像显示到该窗口,VTKRENDERWINDOW就是我们进行绘制时主要使用的窗口类,为了使用工业标准的图形库,我们还可以使用VTKRENDERWINDOW扩展类VTKOPENGLRENDERWINDOW,实现对OPENGL图形库的支持。另一种重要的类是绘制类RENDERING,基类为VTKRENDERER,该类包含所要显示的数据对象,控制该图形或图像数据的空间坐标系,控制它们在窗口中的显示区域,该类还可以设置相机坐标,控制显示图形图像的平移、旋转、缩放等操作,可以通过该类设置显示背景、光照等参数,因而绘制类是控制图形和图像等显示的最重要的一个类。一个绘制窗口类可以包含多个绘制类,这样在一个窗口中就可以同时显示几个不同的场景,这样的设计对于在一个窗口中比较可视化的效果是非常有效的。通常所用的绘制类为VTKOPENGLRENDERER,它继承自VTKRENDERER,增加了对OPENGL图形库的支持。VTKOPENGLRENDERWINDOW和VTKOPENGLRENDERER在类库中的继承关系如下图38所示图38VTKOPENGLRENDERWINDOW和VTKOPENGLRENDERER在类库中的继承关系VTKRENDERWINDOW类管理绘制进程,它通过调用RENDER函数,促使VTKRENDERER类刷新窗口中显示的内容,完成绘制过程。一般的绘制过程如下VTKRENDERWINDOWRENWINRENWINSETSIZE600300/设置显示窗口在计算机屏幕上的位置。VTKRENDERERRENT/在这里需设置绘制类所包含的图形、图像数据及其属性。REALSETVIEWPORT00000510/设置第一个绘制类所控制的图形图像的窗口坐标系。RENTSETBACKGROUND080402/设置背景。RENWINADDRENDERETRENT/将它包含到绘制窗口类中。VTKRENDERERRENT/在这里需设置绘制类所包含的图形、图像数据及其属性。RENWINADDRENDERERRENT/将它包含到绘制窗口类中。RENWINRENDER/开始执行绘制命令,完成绘制操作。上面所介绍的是普通的绘制过程,没有涉及到图形图像数据的装载、处理等内容。在VTK中,控制具体的图形、图像数据,还有它们属性的类,主要是PROPS,MAPPERS,PROPERTIES三种类型的类。PROPS类型的类表示所要显示的二维、三维实体,它包含该实体的可见性信息、方向、大小以及该实体的位置等。VTKPROP是所有这些类的基类,在VTKPROP中引用MAPPER类型和PROPERTY类型的对象,MAPPER类型的对象引用数据对象,并知道怎样绘制该数据对象,PROPERTY类型的对象包含绘制时所需的参数,例如绘制时的前景和背景颜色、材质等。MAPPER类型和PROPERTY类型对象的基类分别为VTKMAPPER,VTKPROPERTY这几种类型的类在绘制过程中的包含、引用关系。上面为简要的引用、包含关系图,实际在绘制时一般都是生成这些类的子类的对象的实例,在绘制过程中,如果没有设置各种属性,则采用这些属性的缺省值。33VTK图形处理在VTK中,处理图形和可视化有两种不同的方式1图形模式用于2D,3D图形,如一般的图形处理。2可视化模式用于可视化过程的数据流模型,如CT数据输入及处理。第四章基于VTK的三维重建的实现1三维重建的基本流程使用VTK处理图像最重要的一点是要知道所处理的图像数据的结构是什么,这样才能够选择正确的方法进行处理。VTK将图像数据分为这样几类结构点,直线网格,结构网格,非结构点,多边型数据和无结构网格。并给每一种不同格式的数据分配了一套不同的滤波器FILTER进行处理,但其基本处理流程大同小异,如图41所示图41VTK基本软件流程开始二维图像获取预处理三维数据结构光源视线等选择三维重建显示需要交互吗结束其中,二维图像获取模块用来产生数据,也叫数据层。预处理模块由FILTER构成,是对原始数据进行处理的一系列滤波器。显示模块由MAPPER实现一个由数据到图形的映射关系。当然,光是有映射关系是不行的,因为看不到一个真实的图像,ACTOR体绘制时为VOLUME的作用就是将由MAPPER得到的映射关系进行实体化,使人们能够看到它的绘制结果。ACTOR还可以通过调用属性对象VTKPROPERTY来控制图像的显示属性。从而使显示出的图像更加的逼真。下一步就是要将图像显示在电脑窗口上了,由RENDER和RENDERWINDOW来完成这项工作。它们提供了一个图形引擎和电脑视窗系统之间的接口。通过调用它们的方法就可以将绘制出的图形在一个窗口中显示。而RENDERWINDOWINTERACTOR是用来实现使用者与图像的互操作的,通过设置这个方法,可以通过鼠标操作使图像旋转以便从各个角度把图像看清楚。2面绘制原理面绘制法将感兴趣的部分以等值面的方式抽取出来便于利用真实感技术,通过灵活地进行旋转和变换光照效果来生成高质量的三维图像,并可以方便地对其进行观察和分析。这种绘制方法速度快,适合于实时性要求高的情形,如交互操作、图像引导手术等。它适用于绘制表面特征分明的组织和器官(例如由CT数据生成骨骼三维图像),由于其形象清晰,可以在一定程度上替代实物模型。但是面绘制方法对表面分割精确程度要求高,所以对形状特征不明显、有亮度变化特征的软组织,以及血管、细支气管等精细组织或器官的三维显示效果不佳。而且面绘制方法不能保留数据的完整性,其物体仅显示为一个空壳,表面里面没有东西。面绘制方法是对整个三维数据场进行逐个体素的处理,结果会生成一个数据量极大的三角面片数组。表面绘制算法有表面跟踪法MC法(MARCHINGCUBE)、MT法(MATCHINGTETRAHEDRAL)和DC法(DIVIDINGCUBE)方法等。其中较为常用的是方法是“移动立方体算法”,它提出一种精确定义体素及其体素内等值面的生成方法,随后又有很多人在它的基础上进行研究,如今已经成为一种很成熟的三维重建方法。应用在大量的商业软件中。面绘制算法介绍主要的面绘制算法有表面轮廓重建法、CUBERILLE方法、移动立方体法、剖分立方体法等。21MC方法6MARCHINGCUBES算法是WLORENSEN等人于1987年提出来的一种三维重建方法,其原理简单,容易实现,因此得到了广泛的应用,此算法在美国己经申请专利,它被认为是至今为止最流行的面显示算法之一。MARCHINGCUBES算法是面显示算法中的一种,因为它的本质是从一个三维的数据场中抽取出一个等值面,所以也被称为“等值面提取ISOSURFACEEXTRACTION算法”。一个标准的医学图像的体数据集往往是由一系列的二维切片数据组成的,而每张切片都有空间上的分辨率。假设有一个体数据集,包含58张切片,每张切片的分辨率是512512,那么它可以被认为是一个连续函数FX,Y,Z在X,Y,Z三个方向上按一定的间隔分别采样了512,512,58次所得到的。而所谓的等值面,实际上是指空间中的一张曲面,在该曲面上FX,Y,Z函数的值等于某一给定值。等值面提取算法的核心就是要从给定的采样点中找出等值面来,这时最容易想到的方法就是首先由采样点恢复出连续函数FX,Y,Z,然后由FX,Y,Z和某一给定的值(通常叫阈值)来得出等值面。这种方法一般被称为显式的等值面提取算法,其计算复杂度比较高,并且由于重构和重采样所带来的误差比较大,所以精度也得不到保证。与此相反,MARCHINGCUHES算法采用了隐式的等值面提取方法,它不直接计算FX,Y,Z,而是直接从体数据中获取等值面的信息。算法需要用户提供一个阈值,也就是所希望提取出来的物质的密度值,比如要提取出骨骼,阈值就要相对大一些,然后根据体数据的信息就可以提取出等值面的三角网格表达。MARCHINGCUBES算法的过程可以描述如下1每次读出两张切片,形成一层。2两张切片上下相对应的四个点构成一个立方体(CUBE),如图42所示。3从左至右、从前到后的顺序处理一层中的立方体(抽取每个立方体中的等值面),然后从下到上顺序处理到N1层,则算法结束。故名MARCHINGCUBES。对于每一个立方体而言,它的8个顶点的灰度值可以直接从输入数据中得到,要抽取的等值面的阈值也已经知道。如果一个顶点的灰度值大于阈值,则将它标记为黑色(MARKED),而小于阈值的顶点不标记(UNMARKED),如图43所示图42立方体示意图图43MARKED与UNMARKED很显然,在MARKED和UNMARKED之间必然存在等值点,那么等值点的位置如何计算,它们该怎么连接以形成等值面呢因为一个立方体有8个顶点,每个顶点有MARKED,UNMARKED两种状态,所以等值面的分布总共可能有28256种。但是考虑到立方体有旋转不变性,即旋转不影响等值面的拓扑结构;对称性不变性,即所有的MARKED变为UNMARKED,UNMARKED变为MARKED,等值面的连接方式不会改变,如图44所示图44对称示意图考虑了旋转对称性和反对称性两种情况后,总结15种基本立方体,它们覆盖了所有256种可能的情况,如图45所示。根据这15种基本立方体,可以造出一个查找表。表的长度为256,记录了所有情况下的等值面连接方式。所以此时只需分别比较一个立方体的8个顶点与阈值之间的大小关系,即可得出一个0255之间的索引值,然后直接查表就可得到此立方体在哪条边上有等值点,并且还能得到等值点的连接方式等信息,这时候就可以将等值点连接起来以形成等值面。要想用真实感图形学技术将等值面显示出来,除了要知道每个等值点的坐标外,还必须知道每个等值点的法向量。在计算立方体某条边上的等值点坐标与法向量时,有两种方法一种是线性插值;另一种是中点选择。1线性插值线性插值的公式如下PP1(ISOVALUEV1)(P1P2)/VXV1(21)NN1ISOVALUEV1N2N1/V2V1(22)其中,P代表等值点坐标;P1,P2代表两个端点的坐标V1,V2代表两个端点的灰度值ISOVALUE代表阈值;N代表等值点法向量;N1,N2代表两个端点的法向量。2中点选择图45种基本立方体的拓扑PP1P2/2(23)NN1N2/2(24)其中,P、N、P1、P2、N1、N2所代表的意义同线性插值一样。中点选择所具有的优点是引起的误差低于1/2立方体边长,这在医学图像的分辨率越来越高的情况下,所重建出来的图像与线性插值得到的图像并没有明显的视觉上的差异。如果先放大L0倍再进行运算,就可以完全采用整数运算,避免浮点运算。可以使得局部表面更平坦,有利于后续的化简过程。当立方体的一个面的一条对角线上的两个顶点是有标记的(MARKED),而另外一条对角线上的两个顶点是无标记的(UNMARKED),则会产生二义性面,即此时有两种连接方式。如图46。在前面所提到的15种基本立方体中,在连接方式的选择上也不一致,即会出现二义性面。如果两个包含二义性面的立方体相邻,并且两个面的连接方式选择不一致时,在相邻的面之间可能会出现空洞,如图47所示图46二义性面示意图图47由二义性面产生的空洞为了解决二义性面问题,提出了很多解决办法,比如对立方体进行细分,即增大分辨率。还有渐近线法也是比较常用的一种方法,它通过计算得到等值面和体素边接口的交线(双曲线)的渐近线与体素的边接口的相互位置关系,再判断等值面的正确连接方式。虽然这种方法可以正确地修正二义性面,但是需要额外的计算,并且比较繁琐。另外,从前面的介绍可以看出,MARCHINGCUBES算法是顺序检测每个立方体,是一种使用蛮力的方法。经有关人员研究表明,在抽取一个等值面的过程中有超过90的时间花在了对空立方体的检测上。由此可见其计算效率较低。此外,由前面的15种基本立方体可以看到,一个立方体里最多可以有4个三角片。考虑在医学图像中最常使用的中等规模的一个数据集,其数据规模为51251258,那么立方体的个数总计是5115115714883897,假设只有十分之一的立方体里包含有等值面,每个立方体平均按两个三角片来计算的话,那么此数据集将平均产生300万个三角片,这对于目前的计算机硬件来说是很难实时处理的。由此看来,对移动立方体的改进方向有两个消除二义性面;提高计算效率,包括降低时间复杂度和空间复杂度。目前,已经有很多改进的移动立方体算法出现,如八叉树算法和表面跟踪算法等。22表面轮廓法表面轮廓重建算法是最早被用来进行面绘制的方法,它的基本思想是首先将每层图像中感兴趣区域的轮廓提取出来,然后以轮廓线上的采样点为顶点生成多边形,将每层的轮廓线连接起来,从而拼接出物体表面7轮廓拼接的关键在于如何确定对应轮廓上各点之间的对应关系因为三角形总能保证面上各顶点共面,处理起来比较简单,所以利用三角形面片进行轮廓拼接是目前使用最广泛的一种方法。23CUBERILLE算法CUBERILLE算法由HERMAN和LIU提出,适合于正交密集数据场的表示,主要适用于医学图像中序列断层图像的等值面抽取8。该方法将三维图像中的每一像素着成是空间中的一个六面体单元,即体素。在体素内数据场具有相同的值,用边界体素的六个面拟合等值面,即把边界体素中相互重合的面去掉,只把不重合的面连接起来近似表示等值面。这种方法的特点是算法简单易行,便于并行处理。24剖分立方体法对密集数据场处理时,特别是医学图像,包含等值的单元数很多,有时生成的每一个三角面片很小,使面片的投影接近于像素级别,因此往往是显示精度而不是体紊大小限制了图像精度一种提高效率的方法是直接在显示图像上渲染像素点,这就是剖分立方体法NVIDINGCUBES的基本思想9DIVIDINGCUBES算法逐个扫描每个体素,当体素的8个顶点越过等值面时,将该体素投影到显示图像上。如果投影面积大于一个像素的大小,则该体素被分割成更小的子体素,使子体素在显示图像上的投影为一像素大小,每一子体素在图像空间中被绘制成一个表面点表面点由对应子体素的值、对象空间中的位T和梯度三部分表示,可使用传统的图形学消隐技术,将表面点绘制到图像空间中。该算法绘制表面点而不是绘制等值面片,从而节省了运算时间。它的一个基本出发点是点的绘制一般要比多边形的绘制快,点集的表示形式比多边形的表示形式更适合物体的剖切、合并等几何操作。面绘制算法比较本节将分析4种面绘制算法的特点,并应用这些算法实现医学图像的绘制。通过算法特点与绘制效果的结合,阐述4种面绘制算法的适用场合。面轮廓重建法较适用于断层扫描数据且断层间等值面变化较小或大致相似,同时精度要求较低的场合。但是该方法在处理多重轮脚、分叉、孔洞等情况时并不理想,算法中两相邻层轮廓线对应点的确定和连接常常是难以解决的问题。由于CUBERILLE算法对每个体素的处理都是独立的,重建图形经常会出现走样,尤其在物体边界处锯齿形走样比较明显,而且显示粗糙,难以显示物体的细节。移动立方体法对感兴趣的等值面可以产生清晰的图像,而且可以利用现有的图形硬件实现加速渲染,速度较快。分立方体法实质上是用离散点集来近似表示物体表面,结果为等值面的近似表示,对于数据场密度很高的医学图像来说,其视觉效果是可以接受的。剖分立方体法的缺点是绘制的图形不够精细,如果对图形进行放大,看到的只是一些点云,而无法观测图形的细节。面绘制的实现1011INTMAININTARGC,CHARARGVIFARGCARENDERERVTKSMARTPOINTERNEWVTKSMARTPOINTERRENWINVTKSMARTPOINTERNEWRENWINADDRENDERERARENDERERVTKSMARTPOINTERIRENVTKSMARTPOINTERNEWIRENSETRENDERWINDOWRENWIN/THEFOLLOWINGREADERISUSEDTOREADASERIESOF2DSLICESIMAGES/THATCOMPOSETHEVOLUMETHESLICEDIMENSIONSARESET,ANDTHE/PIXELSPACINGTHEDATAENDIANNESSMUSTALSOBESPECIFIEDTHEREADER/USESTHEFILEPREFIXINCOMBINATIONWITHTHESLICENUMBERTOCONSTRUCT/FILENAMESUSINGTHEFORMATFILEPREFIXDINTHISCASETHEFILEPREFIX/ISTHEROOTNAMEOFTHEFILEQUARTERVTKSMARTPOINTERV16VTKSMARTPOINTERNEWV16SETDATADIMENSIONS64,64V16SETIMAGERANGE1,93V16SETDATABYTEORDERTOLITTLEENDIANV16SETFILEPREFIX“E01092025“V16SETDATASPACING32,32,15/ANISOSURFACE,ORCONTOURVALUEOF500ISKNOWNTOCORRESPONDTOTHE/SKINOFTHEPATIENTONCEGENERATED,AVTKPOLYDATANORMALSFILTERIS/ISUSEDTOCREATENORMALSFORSMOOTHSURFACESHADINGDURINGRENDERINGVTKSMARTPOINTERSKINEXTRACTORVTKSMARTPOINTERNEWSKINEXTRACTORSETINPUTCONNECTIONV16GETOUTPUTPORTSKINEXTRACTORSETVALUE0,500VTKSMARTPOINTERSKINNORMALSVTKSMARTPOINTERNEWSKINNORMALSSETINPUTCONNECTIONSKINEXTRACTORGETOUTPUTPORTSKINNORMALSSETFEATUREANGLE600VTKSMARTPOINTERSKINMAPPERVTKSMARTPOINTERNEWSKINMAPPERSETINPUTCONNECTIONSKINNORMALSGETOUTPUTPORTSKINMAPPERSCALARVISIBILITYOFFVTKSMARTPOINTERSKINVTKSMARTPOINTERNEWSKINSETMAPPERSKINMAPPER/ANOUTLINEPROVIDESCONTEXTAROUNDTHEDATA/VTKSMARTPOINTEROUTLINEDATAVTKSMARTPOINTERNEWOUTLINEDATASETINPUTCONNECTIONV16GETOUTPUTPORTVTKSMARTPOINTERMAPOUTLINEVTKSMARTPOINTERNEWMAPOUTLINESETINPUTCONNECTIONOUTLINEDATAGETOUTPUTPORTVTKSMARTPOINTEROUTLINEVTKSMARTPOINTERNEWOUTLINESETMAPPERMAPOUTLINEOUTLINEGETPROPERTYSETCOLOR0,0,0/ITISCONVENIENTTOCREATEANINITIALVIEWOFTHEDATATHEFOCALPOINT/ANDPOSITIONFORMAVECTORDIRECTIONLATERONRESETCAMERAMETHOD/THISVECTORISUSEDTOPOSITIONTHECAMERATOLOOKATTHEDATAIN/THISDIRECTIONVTKSMARTPOINTERACAMERAVTKSMARTPOINTERNEWACAMERASETVIEWUP0,0,1ACAMERASETPOSITION0,1,0ACAMERASETFOCALPOINT0,0,0ACAMERACOMPUTEVIEWPLANENORMALACAMERAAZIMUTH300ACAMERAELEVATION300/ACTORSAREADDEDTOTHERENDERERANINITIALCAMERAVIEWISCREATED/THEDOLLYMETHODMOVESTHECAMERATOWARDSTHEFOCALPOINT,/THEREBYENLARGINGTHEIMAGEARENDERERADDACTOROUTLINEARENDERERADDACTORSKINARENDERERSETACTIVECAMERAACAMERAARENDERERRESETCAMERAACAMERADOLLY15/SETABACKGROUNDCOLORFORTHERENDERERANDSETTHESIZEOFTHE/RENDERWINDOWEXPRESSEDINPIXELSARENDERERSETBACKGROUND2,3,4RENWINSETSIZE640,480/NOTETHATWHENCAMERAMOVEMENTOCCURSASITDOESINTHEDOLLY/METHOD,THECLIPPINGPLANESOFTENNEEDAD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉语与华夏文化课件下载
- 凌云、乐业交界地区壮族妇女经商行为研究
- 基于深度学习的中文影评文本情感分析研究与应用
- 基于代数公式的改进的湍流过渡模型
- 遗产活化视角下的青海伏俟城遗址保护与利用研究
- CMOS施密特触发器的HPM效应研究
- 二胎家庭中幼儿父母反思的过程机制研究-基于扎根理论的分析
- 基于无人机多光谱数据盐地碱蓬群落信息提取研究
- ABA介导下OsDSR3参与水稻耐碱性的调控研究
- 固相颗粒对油水分离水力旋流器内油滴运移轨迹影响
- 黄金的冶炼工艺流程
- 美术学院 本科培养方案 - 清华大学 - Tsinghua University
- AS9100D体系标准中文版
- 《中国脑卒中护理指导规范(2021年版)》课件
- 学前教育学备课课件(共54张PPT)
- 空调安装安全协议书1
- 中南大学计算机体系结构题库
- 三基训练习题集-风湿免疫科(题目及答案)
- 无损检测射线常见缺陷图集
- 中小学教育惩戒规则(试行)解读课件
- 冷却塔填料施工组织设计方案和安全措施
评论
0/150
提交评论