CT数据中骨的等值面绘制程序的设计与实现课程设计.docx
《CT数据中骨的等值面绘制程序的设计与实现课程设计.docx》由会员分享,可在线阅读,更多相关《CT数据中骨的等值面绘制程序的设计与实现课程设计.docx(28页珍藏版)》请在冰豆网上搜索。
CT数据中骨的等值面绘制程序的设计与实现课程设计
中南大学
本科生毕业论文(设计)
题目CT数据中骨的等值面绘制程序的设计与实现
学生姓名
指导教师
学院信息科学与工程学院
专业班级计算机科学与技术1002班
完成时间2014年2月
摘要
在三维图像的可视化方法中,等值面绘制是对科学计算数据的常用绘制方法。
它从数值特性接近的三维点集中构建出三维网格,同时利用GPU(GraphicProcessingUnit,图像处理单元)加速,便于实时绘制。
面绘制有原理简单,容易实现,显示直观等优点,是医学三维图像可视化中的重要算法。
本课题采用C++语言设计了基于VTK库的等值面绘制程序。
该程序实现了CT数据中骨的等值面绘制,即用户可操作程序选择等值面参数,并能读取Dicom格式的CT图像,从而进行骨的三维显示。
此外,为了方便用户使用,该程序有着简单易用的图形界面。
本文首先概述了本课题的内容、意义和研究现状,并结合课题要求,介绍了面绘制方法中用到的关键技术和开发工具等。
然后重点阐述了本课题的设计过程和实现过程,以及在实现过程中遇到的一些问题和解决办法,并进行了实验分析。
最后,针对程序中出现的一些不足之处提出了一些改进方案。
关键词CT图像等值面绘制MC算法VTK
ABSTRACT
Isosurfacerenderingisacommonrenderingmethodforscientificcomputingdataincomputergraphics.Itbuildsathree-dimensionaltriangularmeshfrom3Dpointsetthathasclosednumericalcharacteristics.Therenderingoftriangularmeshescanbehardware-acceleratedbymoderngraphicsprocessingunits(GPUs).Isosurfacerendering is simple.Thenitiseasytoimplement, visualdisplay andhasotheradvantages.Soitisanimportantalgorithmof 3Dmedical imagevisualization.
ThistopicusingC++languagedesignsisosurfacerenderingprogramthatbaseonVTK.Thisprogram implementsisosurface renderingofbonesinCTdata.Theusercan operatethe programtosetupisosurfaceparametersandrenderingparameters.TheCTimagedataofDicomformatcanbereadtoachieve simplespacemanipulate.Inaddition,fortheconvenienceofusers,theprogramhasasimplegraphicaluserinterface.
Thispaperoutlinesthecontent,significanceandstatusofthisproject.Anditcombineswiththerequirementsofthesubjecttointroducethekeytechnologyanddevelopmenttoolsusedinthesurfacerenderingmethod.Andthen,thispaperfocusesonthedesignandrealizationoftheprogram,includinggivingasolutionforappearingquestionduringrealizingprogram.Attheendofthispaper,someusefulsuggestionsaregivenfortheimprovementofthisprogram.
KeywordsCTimageisosurfacerenderingMCalgorithmVTK
第一章绪论
1.1课题的研究内容与意义
1.1.1课题的研究内容
CT(ComputedTomography计算机断层扫描技术)是指使用计算机科学中相关的手段对被检测物体的截断层进行扫描而得到图像实施三维重建而得到三维断层图像的扫描方法,是医学中常用的成像方式【1】。
CT影像能揭示人体组织器官的三维结构与形态,对于医学诊断具有重要的参考价值。
而等值面绘制是计算机图形学中对科学计算数据的常用绘制方法,它从数值特性接近的三维点集中构建出三维网格,便于实时绘制。
本课题拟针对CT数据中的骨,设计实现一个采用等值面绘制方法的三维骨形态显示程序。
本课题的目标是运用已经学过的程序设计知识,结合计算机图形图像处理的现有技术,设计实现一个采用等值面绘制方法的三维骨形态显示程序。
用户可以操作该程序选择等值面参数和绘制参数,可以读取Dicom格式的CT影像数据进行骨的三维显示。
本课题有助于锻炼我们的程序设计能力,尤其是对图形图像相结合的分析和编程能力,此外也可以拓展我们对医学影像处理的了解和认识。
为了完成本课题,需要我们具有扎实的数据结构和程序设计基础,而且需要自主学习医学影像处理相关的基本知识,以及医学影像显示方面的编程方法。
在设计和实现本课题程序的过程中要遵循一般的软件工程要求,具有比较规范的基础文档,具备比较完备代码注释,且进行了比较全面的系统测试。
研究内容概括如下:
(1)了解医学影像处理相关基本知识。
(2)理解MC算法基本原理。
(3)用一种编程语言结合VTK库实现等值面绘制程序。
其中,程序的主要功能如下:
(1)读取Dicom格式的CT影像。
(2)用户可以设置等值面参数。
(3)等值面绘制。
(4)骨的三维显示。
1.1.2课题的研究意义
计算机断层扫描(ComputedTomography,简称CT)技术及核磁共振成像(MagneticResonanceImaging,简称MRI)技术已普遍应用在病患的医疗领域中,然而,像这样一些医学设备只可提供物体内部的二维图像。
医师需要凭借多年经验根据很多幅二维图像去预想病患部位的大小和形状,这无疑给医疗诊断带来了巨大困难【1】。
随着科学技术的不断发展,社会的日益进步,医学诊断的精确性与直观程度的要求也愈来愈高。
由于医学图像可视化的重要性日益显著,所以在诊疗科学、整容美形以及外科手术、射线与化学治疗等技术中已经广泛应用【2】。
1989年,美国国家图书馆根据专家的讨论和建议,首先提出了一项被称为可视人(VisibleHuman)的计划【3】,并委托科罗拉多大学医学院进一步研究。
这项计划的内容就是建立一个完整的男女人体的拥有详尽剖解结构的数字化图像库。
通过这项计划的实施,能够分析和重新建立出人体内部相应的器官和组织结构并将其三维显示出来,最终构建出具有实在感觉的可视化人体三维效果,同时可以对重建出的虚拟可视人体进行各种透明处理、解剖分析等设置,便于进一步理解人体各组织器官的解剖结构。
这对医学教育及解剖分析起着非常重要的作用。
不久前,一个令无数人为之激动的新闻在重庆市第三军医大学公布:
中国第一个数字化可视人体已经在该校实验建立完成,并且向海内外同时发布了这一系列“中国可视人”的数据集【3】,这一消息在海内外都引起了极大反响,这一成果也为我国给出了目前为止最为齐整、完备和详尽的一套人体结构的基本数据和图像资料,这一成果也向所有人宣布,中国已经发展为世界上除美国和韩国外,唯一具有本国可视化人体数据集的国家。
1.2课题的研究现状
移动立方体(MarchingCubes)方法是目前为止最为流行的一种等值面三角化算法之一【4】,用于从三维标量场提取一个多边形网格的等值面。
它是基于基本立方体中剖分出来的体数据,随后在每个立方体中都进行标准的三角剖分。
在传统方法中,MC算法是基于15个基本的三角剖分算法和由旋转、反射、共轭等运算得出的256个基本三角剖分算法的组合。
它的运算简单高效,因为它的工作原理几乎是完全关于查找表的【5】。
但是传统的MC算法中有很多缺点和需要改进的地方,许多学者对传统MC算法的优化进行了不懈的研究和创新。
本文主要介绍了传统MC算法的基本原理以及计算过程,并对传统MC算法中的缺点进行了分析,列举并比较了其他几种改进和优化的MC算法,包括SMC算法,MT算法,以及中点法简化线性插值法,等值面顶点矢量平滑等方法。
MC算法最主要有三个方面的问题:
首先,由于移动立方体方法的原理所导致的局限性,所生成的三角面片仅仅能近似显示出了需要求的等值面;第二点就是在体元的同一平面中,将两条相邻棱上的重合点采用线段随便地连接起来只能趋于相似地表示所求等值面;另外,在移动立方体求等值面的方法中,若是体元的一个平面上的标为1和标为0的角点各处于立方体对角线的两头,那末就可以出现2种不同的连接形式,即出现所谓“二义性”【6】。
面对移动立方体算法的这些缺陷,我们可以从以下三个方面对移动立方体算法进行改善:
(1)选择边界跟踪的方法确定边界上的立方体。
经过学者们的多次实验证实,大致有九成以上的六面体都是在边界里或边界外,因为这样一些六面体并不是边界立方体,所以它们之间不存在等值面,如果只对剩下约占十分之一的边界立方体进行处理,就能简化算法的运算过程,从而显著提高算法的效率。
当开始选定边界立方体时,可以利用查找每层断面上的边界线与之相交的立方体表面的方法,即将所有的边界线顺次操作完就能够得到全部的边界立方体;
(2)选择利用立方体棱边的中点作为三角面片顶点的方法,而不是采用三次插值计算的方法,能够节约大部分的运算时限。
同时,考虑到两相邻断层间的距离较小,其最大误差只有立方体边的长度的一半,并且一些显示设备的分辨率比这个长度精度更小,因此该算法是可行的。
(3)在知道的这几种各不相同的鉴别和避免二义性的办法中,渐进线法当之无愧的成为最为常用的办法之一。
当发生二义性问题时,边界平面被双曲线中的两支切割成三个部分,容易得出的是,在双曲线中两条渐近线的重合点必定会与边界中处于对顶线的两个焦点落在相同的一个部分内【7】。
通过此法可以消除二义性。
以下分别简单介绍几种MC算法的优化。
1.2.1基于CT数据的特殊MC方法(SMC法)
针对标准移动立方体算法的缺陷及计算机断层扫面技术图像的特点,另外有一种特殊的MC算法,对原有的算法进行了一些改进,称之为SMC算法【8】。
(1)SMC算法的基本理论
假设所有CT切片包含了一系列轮廓线P1,P2,⋯,Pn,对于体数据的每一个体素都定义了一个状态函数f(x,y,z):
公式(1.1)
在通过这样的变换后,三维空间中的数据就会转化为三维场,每个体元顶点(x,y,z)的状态值根据这个点与这个点位于的平面上所有轮廓线之间的关联来判断,即在其上、在其内或在其外。
因为所有的体元都有八个角点,按照状态值可以将体元上各个角点标为0、-1或+1,且体元的各条边上的数值是线性变化的。
所以容易得出,边界面通过的顶点状态值为0;假如体元上一条边的两个顶点分别为-1和+1,则可以得出等值边界面与该棱相交;假如某个