版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章绪论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):fx=-1,&在通过这样的变换后,三维空间中的数据就会转化为三维场,每个体元顶点(x,y,z)的状态值根据这个点与这个点位于的平面上所有轮廓线之间的关联来判断,即在其上、在其内或在其外。因为所有的体元都有八个角点,按照状态值可以将体元上各个角点标为0、-1或+1,且体元的各条边上的数值是线性变化的。所以容易得出,边界面通过的顶点状态值为0;假如体元上一条边的两个顶点分别为-1和+1,则可以得出等值边界面与该棱相交;假如某个棱的所有顶点都是同号的,显然有等值边界面与该棱不存在交点。当等值边界面与某条棱相交,则该棱的中点可以当作交点。(2)SMC算法的实现及结果SMC算法是在有序二值图像上进行的【9】。首先在内存中读入4张相邻的CT二值图像,按顺序记为CT1,CT2,CT3,CT4,其中CT2和CT3是需要构建三维的断层,而利用中心差分法计算各个顶点的法向时将会用到CT1和CT2。然后计算这4张CT中各点的状态值,进行预处理后,可直接根据该点的灰度值:灰度0对应状态1,灰度128对应状态0,灰度255对应状态+1。再根据状态值,利用中心差分方法,可以算出CT2和CT3中各个点的法向。如果f(x,y,z)表示体素(x,y,z)的状态值,则这个点的法向可以通过以下三个式子来表示为:NxNy=fx,yNz=只要得出这条边上两个端点法向的平均值,就可以得出这条边上中点的法向。接下来用上述的方法生成体元,并在体元内重新构建出三角面。通过这个结构,重建出的三角形通过双向链表的方式将数据存储在相应内存中,而且通过J顷序的顺序生成,就可以得到需要的三维几何图像【9】。1.2.2用中点法简化线形插值在规范的移动立方体算法中,每一个内部包着等值面的立方体都十分有可能会有一个以上乃至更多的三角面片,如此一来就会使每一个三角片都非常小,乃至比像素更加微小,因此用中点代替顶点造成的更动对最后成像质量的影响不明显。选择中点法而不是两个端点能够躲开线形插值中的运算相重复的部分,进一步让计算变得简单【10】。每一次线形插值都得进行代数运算四次,想得出三个顶点就必须进行十二次运算。如果使用中点法代替顶点,确定顶点位置仅需要3次计算,进而能够明显减少计算量,显著提高运算速度。中点法保留等值面的拓扑结构而仅仅变化的是产生几何多边形等值面的端点的位置,所以使用中点法的最大误差小于或等于半个立方体【11】。同理对于只有两个值的相应体数据(数据的值仅为0或1)来讲,如果所求等值面为相对大的值,则此近似误差就是最大的近似误差;如果范围在0到1,就没有近似误差。三角面片数量越多,相对误差越小,在三角面片极多的情况下,其近似误差是几乎可以忽略的。另外,中点法可以缩小立方体中的三角面片的数目,进而令各立方体内部或相邻立方体之间衔接的三角面片归只并成一个空间几何多边形。1.2.3等值面顶点的矢量平滑利用MC算法重建出的三维图像,其显示结果的可视性和清晰度常常并不能十分令人满意。由于体数据场中的各种噪声往往会对立方体单元内部的三角面片的位置和方向造成影响,严重的情况下,会招使三维显示的效果出现明显的“鳞状效应”【11】。为了获得更加理想的三维显示效果,可以将等值面的数据场剖化成两部分,一部分是三维坐标,另一部分则是法向矢量场,利用对等值面剖化出的法向矢量场的矢量实施平滑操作的方法,可以获得相对合适的平滑结果与平滑速率【12】。等值面矢量平滑方式保留了曾经等值面上三角片的坐标的位置和状态值,还可以凭借光照模型中的浓淡绘制原理,利用增加面片上法向矢量之间连续相关性,进一步取得三维绘制的平滑效果。1.2.4MT算法简述MC算法中,在体素的同一个平面上,若标记为1的端点和标记为0的端点(1、0分别表示位于等值面内部或者位于等值面外部),各在对角线的两头,就会导致表现出一对不同的衔接形式,即存在所谓“二义性”,这种结果会进一步造成冲突的拓扑流型在相交平面上产生,所生成的等值面就会出现“孔”的问题。MarchingTetrahedral(移动四面体)方法简称为MT算法,此算法发明时间较MC算法较晚,但已经显示出巨大的发展潜力。它是根据移动立方体方法的基本原理和计算过程开发的,同时,它与移动立方体方法还有很多不同的地方。其一,MT算法最初会将体素立方体化解成四面体,接下来在它里面提取等值面。在四面体剖分完成后,四面体中等值面的剖分模式缩减,算法实现更加简单。而且,MT算法生成的等值面比MC算法产生的等值面精度要高。而采用此方法最重要的原因是以其改善MC算法中存在二义性问题【1】。等值面在四面体中有重合部分时,只会产生有重合部分的三角形或有重合部分的平行四边形,从而有效的避免了二义性问题。1.2.5MC算法的效率改进标准的MC算法需要处理和计算三维数据场中的所有立方体体素。但一般来说,等值面仅仅与三维体数据场中的个别体素有重合部分,所以这样一来,致使白白消耗了计算的时间,也是算法效率不高的重要原因。因此,没有必要依次处理整个数据场。以至于解决这种现象带来的困扰,有学者提出了对MC算法效率方面的创新:假如立方体体素与等值面有重合部分,那么等值面必然会在这个六面体的各个面的方向上持续延长。若一个立方体与等值面有交点,则该立方体的六个面中有若干个面将与等值面有交线,且与该立方体相邻的立方体(前后左右上下各个方向相邻的立方体)中的三角片将会按照特定的顺序延伸。综合上述考虑,可以令数字0、3、4、5、或6来给十五种基础等值面构造类型分别加上一个标识,以显示该体素必需交流的周边六面体的数量。大量实验表明,百分之九十的等值面是由六种常见情况构成的【13】,所以上述方法可以大量节省计算时间。1.3本文的组织结构第一章,绪论。主要介绍了本课题的研究内容,研究意义,研究现状以课题的应用和发展,并进行了本文的内容组织。第二章,详明阐述了移动立方体算法的基本原理和计算方法。也介绍了等值面绘制程序的开发语言及开发工具等。第三章,详细介绍了骨的等值面绘制程序的开发过程和实现过程,以及实现过程中遇到的问题和解决方法。第四章,对实验结果进行比较分析。第五章,对本次设计进行了简单总结,并对骨的等值面绘制程序中存在的不足提出改进方案。1.4本章小结通过调研大量文献和相关资料,全面了解了课题的研究内容与实践意义,并根据课题的发展现状,考察了关于面绘制中重要算法MC算法的一些改进方法,对MC算法的优缺点进行了对比。最后,列出了本文的组织结构。CT数据中骨的等值面绘制第二章课题相关算法及开发工具介绍第二章课题相关算法及开发工具介绍2.1MarchingCubes算法2.1.1MarchingCubes算法介绍医学图像的三维可视化的各种方法中,主流情况下可以分成两种,即面绘制和体绘制。体绘制更能真实地反映对象的具体构造,但因为它的运算量巨大,即使使用高性能的计算机也不能完全满足实际应用与工作中交互操作的需要【14】。因此,面绘制是目前医学图像三维可视化中的主流算法。MarchingCubes(移动立方体,简称MC)方法是三维等值面面绘制方法法中的传统算法,它是由W.Lorensen等人在二十世纪八十年代提出来的一种体素级重建算法【15】。由于它的原理简单,容易实现,所以得到了广泛的应用。MC算法散布在每一个体素中都进行等值面提取,所以也被称为分而治之的方法。在各个被操作的体数据单元中,利用三角面片来逼近表示体数据单元里面的等值面。三维体数据中的每个体素就是一个小立方体,对每个体素都“扫描”一遍来生成三角面片,似乎是一个小型的运算机在每个体数据单元上转移一样,MC算法的名字就是这么来的。移动立方体方法就是在产生等值面的过程当中将一套二维切片的数据看作是一个三维的体数据场,并且在里面把具备某种特定的值的结构剖分出来,再以某种特别的拓扑形式衔接成三角面片,所以MC方法有时也可以叫做“等值面提取”方法【14】。当实施在医疗领域中时,利用MC方法能够重建出人体外面的轮廓线条、内部的组织结果甚至器官的表面褶皱,这样医师就可以直接在三维图像上观察需要观察的部位。2.1.2MarchingCubes算法基本原理在移动立方体算法中,需要先假设原始数据相当于有规律的离散三维空间数据场,例如实施于医学诊疗的计算机断层扫描CT图像就属于这一类型。移动立方体方法的核心思路是依次对数据场中的每个立方体进行操作,寻找那些与等值面有重合部分的立方体,接下来利用线性插值的方法得出等值面与六面体棱的重合点【14】。然后凭借六面体上每个角点与等值面的相互坐标关系,把等值面与六面体棱上的重合点按特定的形式衔接,构造出等值面,以其成为等值面在该立方体里面的一个逼近的表示。因而,移动立方体方法中每个体数据最小单元里面的等值面生成办法简单分析可知有这样几个步骤:(1)体数据最小单元中利用三角面片逼近的等值面运算;(2)三角面片各顶点法向量计算。移动立方体方法的基本原理是:首先在三维体数据场中构造出等值面,接下来寻找通过该等值面的体数据最小单位元,再得出该体元里面的等值面并得出相应数值,这样做十分有利于利用经常使用的工具包或图像硬件应用程序构造出等值面【16】。在医疗领域的应用中,利用MC算法能够有效地重建出人体外的外部轮廓、内部组织及器官,使医师可以方便直观地在三维图像上考察需要的器官与相邻组织之间的相互位置关联。另外,MC算法可以充分、高效地使用GPU加速,不仅便于实时绘制,而且重建出的图像质量较高【16】。移动立方体算法的基本过程如下:1)每次读出两张切片,形成一层。2)将上下一对切片所相呼应的总共八个点构成一个六面体,就像图2.1所示。3)按照从左向右、从前向后的一定次序操作一层中的六面体(提取每个六面体中的等值面),然后再按从下向上的次序同上操作至n-1层【16】。上层切片上层切片下层切片图2.1Cubes示意图在每个体素六面体中,六面体的八个角点的值能够通过从输入的体数据中获得。而需要构造的等值面的阈值则应该是由用户设定,因为构造出来的组织的密度值就是根据等值面的阈值来构造的。例如,骨骼的密度是比较大的,所以需要设定的等值面阈值也就相应地要大一点,接下来按照体数据的信息就能够提取出等值面中的三角面网格。2.1.3标准MC算法的计算过程移动立方体算法首先设当原始数据是有规律的离散的三维空间数据场(例如CT、MRI等图像)时,沿立方体的棱方向上的数据场是线性的、连续变化的【16】。若六面体一条棱上的一对角点的状态值各是大于、小于等值面的阈值,则在这条棱上有且仅有唯一的一个点是这条棱与等值面的重合点。当三维体数据场中的体元被顺次依序进行移动立方体操作,即寻找等值面与这些体元的重合点,从而进一步找出体元内部的等值面,这就是移动立方体的基本算法。上述提到的体元是指由相接两层的相接的八个体数据最小单元所形成的六面体,且八个体数据最小单元刚好组成六面体的八个顶点。如图2.3。((i,j+1,k-1)(i,j,k)(i+1,j+1,k-1)(i+1,j+1,k)(i,j,k-1)(i+1,j,k)(i+1,j,k+1)第k+1层第k层图2.3数据场中的一个体素三维数据场中取值相同的全部点的集合构成了等值面。它能够用以下函数关系来表示:{(x,y,z)|f(x,y,z)=c},c为常数由上式显然可知,等值面的值为c,所以对于每个体元来说,当体元的八个角点值都大于阈值c或者都小于阈值c时,则体元里面没有等值面;如果有的顶点值大于c,有的顶点值小于c,体元内存在等值面。严格来说,等值面属于几何曲面,其解析表达式非常复杂。为了能更加容易地对其进行描述,我们近似地认为等值面是许许多多由三角形组合的等值面片构成的。所以,提取等值面的问题就可以等效为在每个体素内找出由三角形组合成的等值面片的问题。对于每个体元,我们把函数值大于c的顶点标为1,把值小于c的顶点标为0,则依据一条棱上两个顶点的状态,就能够确定等值面是否与它相交。因为所有的体元都有有八个角点,且每个角点都能够取两种的状态值,所以每一个体元将有28=256个能够出现的状况。利用三维空间的等效对称性,通过旋转、平移等简单空间操作,我们可以把这256个状态简化成15种互不相同的状态【16】。图2.4列出了能够取到的十五种形态的等值面的分布。001234567891011121314图2.4移动立方体算法的基本组合。黑色的圆圈代表等值面内的体素。等值面的标准三角化是在每一个立方体中进行的。通过旋转和反射的基本原则可以得到所有可能的组合。对于立方体中的某条棱边,假如它的两个顶点V1、V2标记的状态值不是相同的,那么选定的等值面必然与此棱边有相互重合的部分。(a)当体素的一条棱边与X轴方向相同时候,假设该边的两顶点分别为V1(i,j,k),V2(i+1,j,k),则等值面与体素重合点为V(x,j,k),且c是等值面值,就有以下关系:x=i+c-(b)同理,当体素这条棱边与Y轴方向相同时候,假设这条棱边的两顶点分别为V1(i,j,k),V2(i,j+1,k),那么等值面与体素重合点为V(i,y,k),则有:
y=j+c-(c)当体素的这条棱与Z轴方向相同的时候,先设置这条棱的两角点分别为V1(i,j,k),V2(i,j,k+1),那么等值面与体素重合点为V1(i,j,z),则有:
z=k+为了成功绘制出能够直观体现的等值面,等值面中每个三角面片的法向量都是必需的。在实际工程应用当中,因为直接计算三角面片法向量时复杂性十分巨大,所以一般不直接给出三角面片的法向,取而代之的,是给出三角面片各个顶点的法向,即实际计算时是采用中心差分方法计算的【14】。在三维体数据场中,设有一个点的取值用f(xi,yj,zk)进行运算,且在X轴、Y轴、Z轴方向上相邻两点间的距离分别为△x、△y、△z。则这个点的梯度矢量(gx,gy,gz)能以下面这个关系式子得出:gQUOTEgy=(fxi,yj+1,zg2.2开发语言及工具介绍本程序将采用C++语言开发,界面用C#编写,并基于VTK库实现。本节将对C++、C#、VS2010及VTK进行简单的介绍。2.2.1开发语言C++介绍C++是一款常用的,且应用十分普遍的计算机编程类语言。它是一种由非动态数据类型验收的、并且支持许多种编程方法的通用计算机程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。其编译器比目前其他几种计算机语言的编译技术更为复杂。最新正式标准C++11【18】已于二零一一年八月十二日公布。2.2.2界面开发语言C#介绍C#(CSharp)是微软公司在两千年七月份开发完成的一种崭新的、便捷的、安全的、面向对象的程序设计语言,是特意为.NET的应用程序而开发的语言【19】。它借鉴了C++、VisualBasic、Delphi、Java等各种程序设计语言的长处,归纳了VB中便捷的可视化处理机制和C++的高超运行效能。由于C#具有强大的操作能力、优美的语法风格、独树一帜的语言特性和简单快捷的面向对象编程的支持,而使它成为.NET程序开发设计的首选语言,显示了现今最新的程序开发设计技术的功能和精髓。.NET框架也为C#提供了一个强大的、简单易用的、逻辑结构一致的程序设计环境。另外,公共语言工作时也为C#程序提供了一个工作时可以托管的环境,使程序比以前更加稳定、安全。2.2.3编程工具VS2010介绍由微软公司开发设计的开发环境VisualStudio【20】是当前最为流行的Windows平台下的应用程序开发环境。VisualStudio的2010版本于二零一零年四月份正式发行,它重新设计和构造了集成开发环境(IDE)的界面,变得更加通俗易懂。VisualStudio2010同时也带来了NETFramework
4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP)等程序开发框架,而且它还支持开发和设计实现面向Windows7操作系统的各类应用程序。在连接数据库方面,VS2010不仅支持MicrosoftSQLServer,还支持IBMDB2和Oracle数据库。2.2.4开发工具VTK概述VTK(VisualizationToolkit可视化工具包)是一个面向对象的可视化类库,由美国Kitware公司开发。它支持体绘制并支持提供多种不同的体绘制技术,降低了开发难度【21】。当前,使用VTK实现对医学图像的可视化是一个热门。VTK是基于Windows/Unix环境下的,并支持多种编程语言,比如C++、TCL、JAVA、PYTHON。VTK采用流水线【22】机制。其中,流水线利用source当作开始来读取源数据。接下来Filter对源数据进行预处理,同时产生数据输出。源数据经过filter进行操作后得到所需的结果,接下来使该结果利用mapper映射成为图形数据。当进行数据效果的体现时,利用actor作为绘制窗口的实际对象来领受mapper传过来的已经处理好的数据相关属性。最后使用Render来显示最终结果的图形。另外,就算只有一个Render,也是可以同时示范多个实际对象Actor的。使用可视化工具包VTK来实现CT图像的可视化,根据算法和数据结构判断,实质上是一个类似读取数据和图形显示的问题【23】。对与已经给出的计算机断层扫描CT图像,由于这些图像肯定与DICOM3.0标准相符,所以想要读取它们比较容易,即在设计程序时只须设置好必需的数值,就能够打成对一幅计算机断层扫描CT图像甚至计算机断层扫描CT图像序列的读取。在可视化工具包VTK中,为了更加高效地操作如此巨大的类库,我们不妨根据某一个类在类库中的功能,将类库中的类分成如下几个部份:公共部分(common)、图形处理部分(graphics)、图像处理部分(imaging)、读写文件部分(I/O)、渲染绘制部分(rendering)以及数据转换部分(filtering)等,每一个部分都已经被编译成相应的动态链接库。2.3本章小结 对面绘制中的重要算法,移动立方体(MarchingCubes)算法进行了深入学习研究,掌握了MC算法的基本原理和计算过程,并与第一章中所述的改进算法做比较,体会MC算法的中心思路。最后,介绍了关于本程序的开发语言和开发工具。CT数据中骨的等值面绘制第三章设计与实现第三章设计与实现3.1程序的总体设计3.1.1系统的需求分析作为三维可视化中的重要方法,面绘制有着非常重大的实际意义。该程序的目标是从本地读取显示Dicom格式的CT图像,用等值面绘制的方法进行骨的三维显示,且用户可通过界面修改等值面参数,从而比较绘制出的不同效果。为了使该程序使用更加简单方便、功能更加完善、执行效能更高,则本程序设计应满足以下需求:(1)具备完善的程序操作界面,确保应用程序能够简单、便捷的操作;(2)能方便地查看检测结果以及检测信息;(3)运行较快速,显示直观;(4)正常使用时避免出错,若运行时遇到突发错误,程序不会影响到本地文件。3.1.2程序的总体设计思想 本程序是基于VTK库实现的,需要对VTK的应用实例进行大量调研,包括用到的主要类和参数。首先应设计实现程序中读取Dicom格式的CT图像的功能(可以利用vtkDICOMImageReader、\o"读16位的图像文件"vtkVolume16Reader),然后调用VTK中已经实现的经典等值面三角化算法,即移动立方体算法(vtkMarchingCubes)生成三角面片,用于提取等值面。同时将生成的三角面片拼接成等值面(vtkStripper),最后建立映射(vtkPolyDataMapper),将经过的CT数据映射为多项式的几何数据。另外,为了能使程序清晰直观的进行骨的三维显示,还需要创建一个绘制对象(vtkRenderer)和绘制窗口(vtkRenderWindow),同时创建一个Camera(vtkCamera),并设置视觉属性,使用户可以对生成的三维图像进行旋转、平移等简单空间操作。 程序的界面设计方面是用C#语言编写的,用C#编写界面有简单易懂,可操作性强等优点。界面的主要功能是让用户可以通过界面修改等值面参数,从而通过对比不同参数的绘制结果,了解阈值不同部位的三维显示情况,以达到应用医疗,获取病变信息的目的。并且界面一定要简单易懂,让用户可以容易操作。 界面的设计思路是在绘制程序中,将需要修改的参数(等值面参数)设为变量,通过C++中的方法将变量设为读取一个本地文件(txt)中的数据,然后用C#设计一个界面,把界面中的等值面参数写入本地文件(txt)中,进而实现了用户可以通过界面修改等值面参数的功能。同时根据软件工程的基本要求,界面中也增加了用户退出提示。开始开始否顶点像素值>b?否顶点像素值>b?顶点在等值面下顶点在等值面下读取Dicom格式CT图像读取Dicom格式CT图像是是分别取分别取两图层中相对的4个体素组成一个立方体的8个顶点顶点在等值面上逐层扫描小立方体,形成三角面片逐层扫描小立方体,形成三角面片设置等值面阈值b设置等值面阈值b拼接等值面拼接等值面绘制三维图像绘制三维图像结束结束图3.1程序流程图程序流程图如图3.1,实现主程序步骤如下步骤1:读取Dicom格式CT图像;步骤2:将读取的一套三维图像看成是一层层的图层,接下来从相邻的两个图层中各取相对的四个体素组成一个立方体的八个顶点,从而将图像分成若干个小立方体。步骤3:按照小立方体的每个角点与设置的阈值大小关系将立方体的角点用0或1标明状态值,角点小于阈值的状态值标为0,角点大于阈值的状态值标为1。步骤4:采用线性差值的方法计算得出等值面与立方体边的交点(重合点),然后将交点连接起来形成三角面片。步骤5:将三角面片拼接,形成等值面;步骤6:绘制三维图像。3.2程序的实现3.2.1读取Dicom格式的CT图像功能的实现根据调研大量文献的结果以及参考VTK用户手册,读取图像可以用vtkImageReader、\o"读16位的图像文件"vtkVolume16Reader、vtkDICOMImageReader等方式读取,而vtkImageReader虽然读取速度较快,但写起来较为繁琐;而\o"读16位的图像文件"vtkVolume16Reader可读取16位图像,优点是不限定Dicom格式,缺点是文件后缀要以.1.2.3…来命名,操作复杂,并且无法读取数量较多的图片,这是因为vtkArray类没有办法带动数量庞大的数据,否则会导致图像错位;所以我最终还是选择了常用的vtkDICOMImageReader。部分实现代码如下:vtkDICOMImageReader*reader=vtkDICOMImageReader::New();reader->SetDirectoryName("D:\\brain\\brain\\DICOM\\");//设置文件名前缀,即读取文件路径;3.2.2实现提取等值面 本程序利用VTK中已经实现的MC算法提取等值面,又因为需要用户可以通过界面调整等值面参数,所以等值面的值需设为一个变量。再利用面绘制的经典算法MC算法,把标量属性数据和结构化的数据集对象同时作为输入,并输出等值线形成的图形(如点、线和三角形)。即vtkMarchingCubes。3.2.3视觉属性的设置创建一个Camera(vtkCamera),并设置视觉属性,包括漫反射光的颜色、镜面光系数、镜面光强度以及Camera位置等。视觉属性:SetDiffuseColor(1,0.49,0.25);//设定颜色,漫反射光的颜色SetSpecular(.3);//高光反射,镜面光系数SetSpecularPower(20);//设置镜面光强度,高光强度相机属性:SetViewUp(0,0,-1);//设置相机的“上”方向SetPosition(0,1,0);//位置:世界坐标系,设置相机位置SetFocalPoint(0,0,0);//焦点:世界坐标系,控制相机方向ComputeViewPlaneNormal();//设定视平面法线3.2.4界面的设计实现本程序的是用C#编写界面,把在界面中输入的等值面参数写入本地文件(txt)中,当启动绘制程序时,会重新读取本地文件(txt)等值面参数进行绘制,从而实现用户可以通过界面修改等值面参数的功能。同时根据软件工程的基本要求,也根据软件测试中要求的软件容错性,界面中也增加了用户退出提示。程序界面简单分为以下四个部分:(1)设置“设置等值面的值”按钮,将文本框里的数据写入设置好的本地文件(txt格式)中,如果本地文件不存在,就新建一个本地文件,然后将数据写入。FileStreamfs=newFileStream(@"C:\Users\asus\Desktop\yl.txt",FileMode.OpenOrCreate);StreamWritersw=newStreamWriter(fs);sw.Write(this.textBox1.Text);(2)设置“重置”按钮,先查找(1)中的文件是否存在,假如文件存在,则将(1)中文件删除。(3)设置“开始绘制”按钮,运行绘制主程序。(4)根据软件工程的基本要求,同时也根据软件测试中要求的软件容错性,界面中也增加了用户退出提示。最终实现界面效果如图3.2。在文本框中输入等值面阈值,点击“设置等值面的值”,再点击“开始绘制”,则程序可根据输入的值绘制相应的三维图像;如需更改等值面阈值,则可点击“重置”来重新设置。(a)原始界面(b)用户退出提示图3.2程序界面3.3本章小结 首先通过第一章的调研和第二章的学习,对程序进行需求分析,并构思程序的总体设计思想。然后,利用熟悉的程序语言并基于可视化工具包VTK库,依次实现了课题要求的相关基本功能。CT数据中骨的等值面绘制第四章实验结果第四章实验结果程序中已经通过经典的移动立方体(MC)算法设计实现了CT数据中骨的等值面绘制。根据前面第二章的介绍,MC算法的基本思想将读取的一套三维图像看成是一层层的图层,接下来从相邻的两个图层中各取相对的四个体素组成一个立方体的八个顶点,从而将图像分成若干个小立方体。然后,根据小立方体的顶点与给定阈值的大小关系将立方体的顶点以0或1标明,即顶点小于阈值标为0,顶点大于阈值标为1。进而就能够比较出部分立方体和所选定阈值的等值面相交,接下来可以利用线性差值的方法来计算出等值面与立方体的棱边的交点,然后将所以立方体的棱上的交点全部连接起来形成三角面片,并将三角面片拼接成等值面,最终绘出三维图形【24】。所以,根据所选等值面阈值的不同,绘制的结果也必然不同。另外,当视觉属性的相应参数发生变化时,绘制的效果也会有所不同。4.1等值面阈值不同时的绘制效果将绘制程序中的等值面的阈值设为200时,绘制后观察不到三维效果,说明选取阈值过小,等值面与图像中立方体没有交点。将绘制程序中的等值面的阈值设为250时,绘制结果如图4.1(a),绘制结果已经可以将骨头完全显示出来,但同时会将与骨头密度接近的血管壁绘制出来。将绘制程序中的等值面的阈值设为300时,绘制结果如图4.2(b),绘制结果可以将骨头比较完整得显示出来,但骨头之间连接处密度较小的部分会出现微小孔隙。将绘制程序中的等值面的阈值设为350时,绘制结果如图4.3(c),绘制结果也可以将骨头显示出来,但骨头之间连接处密度较小的部分孔隙变大。将绘制程序中的等值面的阈值设为400时,绘制结果如图4.4(d),骨头之间连接处密度较小部分产生的孔隙进一步变大,已经影响了骨头的直接观察效果。阈值为250(b)阈值为300(c)阈值为350(d)阈值为400图4.1等值面阈值不同时的绘制效果4.2漫反射光颜色参数不同时的绘制效果漫反射颜色的参数是根据传统的RGB颜色对照表设置的。这种类型图像仅由三种源颜色构成,我们能够调节参数使三原色根据不同的比例互相糅合来得到不同的相应颜色。所以当RGB的值进行变化时,会使绘制结果呈现不一样的效果,如图4.2,三幅图像分别是R值、G值、B值所占比重大时的绘制效果,呈现出的组织颜色分别偏红、偏绿、偏蓝。(a)R值占的比重大(b)G值占的比重大(c)B值占的比重大图4.2漫反射光颜色参数不同时的绘制效果4.3镜面光系数不同时的绘制效果镜面光(高光)系数对绘制结果的直接影响主要体现在图像的反射亮度上,进而间接对图像的不同组织部分的对比造成影响。从图4.3可以看出,随着高光系数的增大,呈现出来的图像亮度越大,反射越强烈。(a)高光系数为0(b)高光系数为0.5(c)高光系数为1.0图4.3镜面光系数不同时的绘制效果4.4实验结果总结 通过比较不同等值面阈值的绘制结果,可以了解不同组织部分的密度大小,从而判断骨头等组织的健康情况。进一步观察就可以大致估算出,能比较完整清晰的显示效果的等值面阈值大约在250到300之间,具体数值通过简单的实验还不能精确测量,因为有很多客观因素会干扰实验效果,包括体数据的差异,不可避免的误差等等。 通过设置漫反射颜色的参数,可以根据喜好调整绘制效果的颜色,本着选择与实际骨头较为相似的颜色的原则,我的漫反射颜色设为(1,0.49,0.25)。 通过设置镜面光系数可以调整绘制结果的反射亮度,较大的镜面光系数会让绘制效果有光泽,亮度大。选择合适的镜面光系数可以让显示效果更加直观。经过反复比对,我最终设置镜面光系数为0.3,这样选择的效果既不会使亮度过大,给观察带来困难,也不会因为没有光泽而显得不美观。 CT数据中骨的等值面绘制第五章总结第五章总结5.1总结5.1.1毕业设计所做的工作根据课题的要求,做了许多准备工作。在设计实现程序的同时,通过处理在实现过程中遇到的问题,也在不断地学习新的知识。对于本次毕业设计过程中所做的工作,总结如下:(1)查阅相关的文献,了解面绘制的基本内容、研究意义与国内外研究发展现状等,同时与指导老师沟通,明确本课题的需要实现的主要功能,并且进行了用例分析。(2)学习了本课题中涉及到的核心思路方面的知识,如移动立方体算法的基本知识,C#开发语言和开发工具VisualStudio2010,以及可视化工具VTK的基本操作。(3)根据本课题的要求和特点进行了程序的总体结构设计和功能分析,并进行了各个功能模块的详细设计。(4)进行程序的开发,对各个功能不断地进行测试和修改。遇到问题就通过查找资料或者请教同学来解决问题。(5)程序在初步完成之后,与指导老师交流,根据指导老师的要求和建议,进行了调整和改进。(6)进一步对程序的功能进行了完善,除了完成课题要求的CT数据中骨的等值面绘制功能之外,为了方便用户使用,设计了简单易用的图形界面。(7)整理在学习课题相关技术时搜集的文献资料和在程序设计与实现过程中的开发文档,撰写毕业论文。5.1.2毕业设计的心得体会在本次设计过程中,通过查阅和翻译各种文献资料,我对课题的内容有了初步的了解和认识,之后通过认真学习思考以及指导老师和同学们的帮助,让我对本课题中用到的相关技术和知识有了更加深入的了解,同时也让自己的分析能力、翻译能力、编程能力、文字表达能力等多方面的能力了有很大的提高。经历本次毕业设计,让我在学到了很多知识,提高了自身的能力之外,还得出了以下几点心得体会:(1)在进行设计之前,大量的调研工作是非常重要的,包括相关中英文文献的调研,相关参考书目的调研,相关网站帮助文档的调研以及实例教程的调研。这样就会使后期的工作更加得心应手。(2)设计之前要对使用到的移动立方体算法进行深入的学习,理解基本原理和计算过程,同时简单了解关于MC算法的改进思想,这对于后边程序的设计和实现都有很大帮助。(3)进行程序设计时,要尽量使用开发工具和各种专用处理库所提供的各种功能,这样不仅可以大量减少代码量,而且减少了代码的Bug数目,同时还提高系统的运行效率。(4)在课题要求的绘制程序完成后,设计一个简单易用的界面会使程序更具有可操作性。(5)系统完成后,非常有必要对系统进行完整的测试,从而在最大程度上发现并排除系统中存在的Bug。5.2展望 医学三维图像的可视化在医学辅助诊疗领域一直发挥着极其重要的作用和巨大的发展潜力。因为等值面绘制方法的绘制速度比较快,所以在手术导航操作,虚拟内窥镜和放射疗法计划等许多领域【25】都有着非常广泛的应用。 在许许多多的面绘制方法中,影响最大的是二十世纪八十年代由Lorensen等人提出的MC算法【4】。MC方法运算准确、实现便捷,是目前最风行、最有效的面绘制算法之一,同时在各种商业化软件和图形图像软件当中也有它的身影。但是传统的MC算法中有很多缺点和需要改进的地方,许多学者对传统MC算法的优化进行了不懈的研究和创新。包括SMC算法,MT算法和后来仍由Lorenson提出的剖分立方体算法(DividingCubes)【26】。此外还有简化MC算法计算,提高运行效率,改善绘制质量的改进方法,比如中点法简化线性插值法,等值面顶点矢量平滑等方法。在本次毕业设计中,我选择了利用传统的MC算法实现等值面的绘制,这是目前面绘制中应用非常广泛的常用算法,并且在VTK中已经实现,可以直接调用。由于接触C#语言和可视化工具包VTK库的时间比较短,对它们的运用还不够熟练,所以设计实现中花费的时间较长,完成的程序还有着可以改进提高的地方,绘制所需要的时间也偏长。此外,程序的界面也比较简单,用户能自己调整的参数不多。因此,我觉得该程序还可以往以下几个方面进行扩展:(1)考虑应用调研相关文献时了解的改进MC算法进行绘制;(2)增强程序界面的功能,让用户可以随意调整更多需要用到的参数;CT数据中骨的等值面绘制第五章总结(3)优化系统的设计,提高其运行效率。CT数据中骨的等值面绘制结束语结束语本程序实现CT数据中骨的等值面绘制,并设计了简单易用的界面,方便用户操作。感谢同学们不断对我提供的宝贵意见和大力支持,帮助我克服了很多困难,同时也让我拥有了敢于面对挑战的勇气。同时也非常感谢XX老师,从课题的各个部分都非常仔细认真的帮我把关,对我的毕业设计帮助很大。最后还要感谢家人对我的支持。通过本次毕业设计,发现了自己有许许多多的不足之处,同时我也深刻的认识到自己在动手实际操作经验上的不足,明白了只有课本上的理论知识是明显不够的,需要更多的磨练才能真正提高自己的能力。CT数据中骨的等值面绘制参考文献参考文献洪锋,梅炯,李明禄,医学图像三维重建技术综述[N],中国图像图形学报,2003年特刊:784~791.罗述谦,周果宏.医学图像处理与分析[M].北京:科学出版社,2003:105~106.春光,段会龙,吕维雪.VisibleHuman计划的发展与应用[J].国外医学生物医学工程分册,1997,20(5):269~274.Lorensen,WilliamE.,andHarveyE.Cline.Marchingcubes:Ahighresolution3Dsurfaceconstructionalgorithm.[J]ACMSiggraphComputerGraphics.1987,Vol.21.No.4.ACM:5~16.单东日,陈向东,朱泽平,高复媛,基于改进MC算法的牙颌组织三维重建[N],中国图像图形学报,2009,14(7):1313~1318.DurstMJ.Letters:AdditionalReferenceto‘MarchingCubes’[J].ComputerGraphics,1988,22(2):34~35.NielsonGM,HamannB.TheAsymptoticDecider:ResolvingTheAmbiguityinMarchingCube[C].IEEEProceedingsofVisualization.1991:83~91.何光辉,田捷,赵明基,等.基于分割的三维医学图像表面重建算法[N].软件学报,2002,13(2):221~22.杨晓冬,刘炳辉,王扬,基于等值面构造的CT图像三维重构[J],机械设计与研究,2007,23(4):74~76.何平.剔除测量数据中异常值的若干方法[J].航空计测技术,1995,15(1):l9—22.江东,冯成德,林大全,鲍华,基于MC重建算法等值面的优化[J],中国测试技术,2006,32(1):80~82.徐毅,李晓梅.对体可视化MarchingCube算法的改进[J].计算机工程,1999,25(11):52—54.CignoniP,GanovelliF,MontaniC,etal1Reconstructionoftopologicallycorrectandadap-tivetrilinearsurfaces[J]1ComputersandGraphics,2000,24(3):39924181.百度百科Marchingcubes[EB/OL]./link?url=9ay861WL213HnRXgSIyrnJaB98oLDs-lR7XQ3YXd1AbS3O1F-HRvmJ18XYu8VipYIUsIALT_rek3GhAodgggB_Lorensen,WilliamE.,andHarveyE.Cline.Marchingcubes:Ahighresolution3Dsurfaceconstructionalgorithm.[J]ACMSiggraphComputerGraphics.1987,Vol.21.No.4.ACM:3~4.李金,胡战利,基于MC算法的CT图像三维重建[J],应用科技,2008,35(4):30~33.Masala,GiovanniLuca,BrunoGolosio,andPiernicolaOliva.AnimprovedMarchingCubealgorithmfor3Ddatasegmentation[J].
ComputerPhysicsCommunications
184.3(2013):777-782.百度百科C++[EB/OL].\l"2"/link?url=vs3_sMpAA2txmzIP4OVK2tpSNsmy0RtD075lcKP6iCyg0u5k2XGt5BJvzGAgw7_SperYL8grwM94OmW3FlJ4SK#2,2014/5/17百度百科.C#[EB/OL]./view/1284594.htm,2011-03-13.百度百科.MicrosoftVisualStudio2010[EB/OL]./view/2950556.htm?fromId=3433001,2014/5/17苗语,师为礼,郭乃珠,基于VTK的医学图像三维可视化的研究与实现[N],长春理工大学学报(自然科学版),2007,30(4):120~122.AlessandroRubini.LINUX设备驱动程序[M].北京:电力出版社,2000:452~455.祁俐娜,罗述谦,基于VTK的医学图像三维重建[J],北京生物医学工程,2006,25(1):1~5.唐占红,於时才,面绘制三维重建原理及其改进算法研究[J],计算机工程与设计,2009,30(9):2225~2228.刘磊,冯前进,王文辉,陈武凡,基于GPU的医学图像快速面绘制[J],计算机工程与应用,2007,43(32):166~169.百度百科.等值面[EB/OL].\l"2_2"/link?url=Bl323ywo8iuC6TM1nFZBReKuRo5igPgjnhjHG53QUT_o2a4JHslHc-CWdP_0da94G_oLtEB9rrW97jbJc0bsP_#2_2,2014/5/19基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年环境质量评估合作协议
- 2024年版特定投资咨询与项目管理服务协议版B版
- 2024年弃土资源化利用项目环境监测与数据共享协议合同3篇
- 幼儿美味小吃课程设计
- 2024全新置换房屋非物质文化遗产保护与传承协议下载3篇
- 2024年新能源发电项目独家合作开发合同范本3篇
- 2024年停薪留职合同员工离职与入职协议书3篇
- 2024全新文化产业融资担保合同范本下载2篇
- 2024体检合同协议书:高品质健康管理方案3篇
- 2024年标准油漆工程劳务分包协议模板版B版
- 【课件】供应商现场与质量管理
- 2024年立式碾米机项目可行性研究报告
- 统编版语文九年级上册(2024)(含答案)
- 中华人民共和国保守国家秘密法实施条例培训课件
- 成都锦城学院《算法分析与设计》2022-2023学年期末试卷
- 可行性报告编制服务方案
- 牛顿法在图像处理中的应用
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 《赢利》精读图解
- 2024年一级造价工程师考试《建设工程造价管理》真题及解析
- 2025届江苏扬州中学数学高一上期末考试试题含解析
评论
0/150
提交评论