logo资料库

基于matlab三维重建.docx

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
基于matlab体绘制技术的医学影像三维重建
摘要:体绘制技术是科学计算可视化研究领域的一个重要方向。体绘制技术可以在同一幅图像中同时展示体数据所
关键词:体绘制;医学影像;三维重建;GUI界面
0引言
1面绘制技术(Marchingcube)
2体绘制技术(Ray casting)
3三维可视化工具
4实验设计及实验结果
5总结
参考文献
基于 matlab 体绘制技术的医学影像三维重建 摘要:体绘制技术是科学计算可视化研究领域的一个重要方向。体绘制技术可以 在同一幅图像中同时展示体数据所包含的许多信息,为观察者提供三维显示效果。 近年来,高技术的发展在计算机图形学,计算机视觉和图像领域已被广泛研究和 应用于几何模型。特别是在三维建模和重建领域从 2D 图像中提取 3D 对象。其中 一个研究就是医学图像处理领域。常用的三维重建有面绘制和体绘制,本文会对 这两种技术做详细的介绍,此外,本文利用体绘制技术,在 matlab 平台上进行 实践,利用 MATLAB 软件制作 GUI 界面展示结果,实现对头部 CT 图像的三维重建 以及切分操作。 关键词:体绘制;医学影像;三维重建;GUI 界面 0 引言 三维重建技术已经广泛应用于医学影像领域。在 Loan 等人【1】的研究中给出了全球 大部分的软件公司生产用于查看和处理医学图像的软件产品。这项研究为医务人员的工 作提供了很大的实践价值如何在实践中应用 MIP 领域的研究工作?答案已经由一些公 司提供。这是已经完善的平台或者是系统,那么在这些系统中,常用的三维重建技术有 三种,包括 Marching cube、Ray casting 以及 Texture-based rendering【2】。 具体来讲,将三维医学 CT 图像数据进行可视化的手段主要有面绘制和体绘制,相 对于面绘制技术,体绘制能表现医学图像数据中面绘制所不能表达的内部结构信息。三 维医学图像数据的体绘制结果可以呈现包含在数据内部的组织信息,体绘制的结果是一 种半透明效果的图像,让用户能够观看到体数据内部的组织结构信息。内部的组织数据 显示技术能在医学教学、医学诊断和医疗康复领域为相关工作者提供宝贵的信息,能够 使他们的工作更加有效【3】。而在面绘制中,最常用的方法就是 Marching cube;体绘制 中最常用的就是 Ray casting。本次实验拟采用体绘制技术进行三维重建,并对上述两种 方法做简单的介绍。
1 面绘制技术(Marchingcube) 1.1 面绘制原理 面绘制三维重建是一种采用对物体表面进行拟合而忽略物体内部信息的重建方法。 面绘制三维重建先对三维体数据提取表面轮廓,然后构造中间几何图元,如三角片面, 然后根据光照、明暗模型来进行消除隐藏面,图形渲染,得到显示三维体数据的二维显 示图像。面绘制三维重建所处理的数据仅为图像的边缘轮廓部分,在速度方面优于体绘 制算法。面绘制通常适用于表面特征明显的组织和器官(如骨骼或皮肤)【4】。 1.2 面绘制分类 一般来说,面绘制分为两种方法:基于断层轮廓线的方法和基于体素的方法。 基于断层轮廓线的方法是最早用来进行面绘制的方法,它的基本思想是先提取每层 图像切片的轮廓,然后以某种图形如三角形将每层的轮廓线连接起来,最后拼接成物体 表面。该方法一般步骤分为轮廓提取,轮廓特征点提取,切片间轮廓对应,轮廓拼接, 分叉处理,曲面拟合。通过将每层轮廓的连接,形成物体表面。因为这种方法处理多重 轮廓,分叉、空洞等情况时并不理想,且两层轮廓间对应点的确定和连接是难以解决的 问题,所以不被广泛采纳使用【4】。 基于体素的重建方法是随着医学图像设备解析度不断提高出现的一种重建方法,这 种方法也称为基于等值面提取的算法。主要包括由 Herman 和 Liu 提出的 Cuberille 方法、 W.Lorensen 等人提出的一种基于体素的表面重建方法 Marching cubes(MC)、Maching Tetrahedra、Dividing Cubes、Surface Tracking【4】。下一小节将对经典算法 MC 进行简单 介绍。 1.3 Marching cube Marching cube【2】是用于从 DICOM 图像切片建立 3D 模型的最常用方法之一。这种 方法被认为是间接的体积渲染算法。使用分而治之的方法通过线性插值生成片间连通性 并计算每个点的法向量。该算法的输出是一个表示三维物体表面的 1.三角形网格。从医 学扫描的每一个二维切片(它被认为是一个二维网格)开始,每个游行正方形有四个点 表示物体的内部或外部点。二维物体的轮廓是通过交点之间的连接来确定的(即在正方 形和三角形的边缘之间)对象的边界)。扩展到三维空间,用两个相邻切片中的每一对 的八个像素创建一个 marching cube。如图 1 所示:
图 1:由两个相邻切片创建的 marching cube 三角测量步骤如下所述:为了找到立方体中的表面交点,使用等值作为标准。如果 等值大于顶点的值,则该顶点被标记为外部节点;相反,该顶点被标记为内部节点。一 对内部和外部节点将确定相交立方体的边缘与物体表面。通过沿着边缘插入曲面交叉而 获得交点。对于有 8 个顶点和 2 个状态(内部和外部)的每个立方体,我们都有 一个曲面可以与立方体相交的总数为 28=256 种方法。由于立方体内的对称性和旋 转特性,表面可能只有 14 种独特的图案与立方体相交(见图 2) 图 2:三角部分 14 种情况
最后一步是使用梯度向量计算每个三角形顶点的单位法线。在创建三角形之后,将 它们连接在立方体之间以形成 3D 对象表面的三角形网格。算法流程图如下: 到目前为止,marching cube 算法仍然是大多数 MIP 软件的一种选择和应用的方法。 该算法的一个缺点就是难以处理表面和立方体交点的特殊情况。例如,一个具有两个相 同符号的对角点的面,会导致产生一个孔,因此有多个可能三角测量。然而,Nielson.G.M 等人【5】解决了这个缺点(或称为 marching cubes 的模糊性),但是处理时间较长。 2 体绘制技术(Ray casting) 2.1 体绘制原理 在面绘制中,只能提供物体的表面信息,忽略了物体内部大量的有用信息,因此只 适合于表示表面特征明显的物体,如骨骼,却无法刻画物体内部细微复杂的结构。而体 绘制是直接将三维数据转换成三维图像,所以具有面绘制没有的优点。体绘制能更好的 显示出三维物体的内部信息真实形态,它的基本思想是模拟三维体数据场中体素对光线 的反射,透射和发射作用,通过分类为每个体素赋予相应的不透明度及颜色属性,最后 合成图像。体绘制技术大大丰富了可视化技术的理论。 2.2 体绘制分类 体绘制算法包括光线投射(Ray casting)算法,溅射法,剪切变形基于纹理映射的
体绘制以及变换域算法等。 光线投射算法是以图像空间为序的经典体绘制算法。所谓以图像空间为序就是三维 体数据到二维数据的投影是在图像空间完成的。光线投射算法的基本原理是沿着视线方 向投射光线,光线是从图像空间的像素发出,接着对光线进行等距离采样,再根据插值 原理求出采样点的不透明度及颜色值,最后按照一定的规则进行合成,得到图像空间像 素点的值,形成最后屏幕上要显示的图像。溅射算法是由首先提出的一种以物体空间为 序的体绘制算法。该算法的基本思想是将三维数据表示为一个由重构核构成的矩阵,然 后再根据一个足迹表,将体数据转换到图像空间,最后合成图像,整个足迹表预先计算, 存储着沿视线方向对重构核的积分。本文主要是实现光线投射算法,所以下面一小节注 重介绍其原理和实现方法。 2.3 Ray casting 光线投射算法是以图像空间为序的经典体绘制算法,该方法从图像平面的各个像素 出发,沿视线方向投射出光线,在穿过三维体数据物体的过程中对体数据介质实时处理, 最终形成图像。在这个算法中,射线是从视点(眼睛)产生的,并通过视平面(眼睛和 体积之间)的每个像素进行投射【6】。因此,它以整个体积的身份间隔进行采样。光线遇 到的第一个对象决定了像素的颜色。插值采样点以获得颜色和不透明度,以便合成以获 得最终结果。重复这个过程直到所有的像素都被渲染到屏幕上(见图 4) 图 4:光投射算法 其算法流程图见图 5:
图 5:Raycasting 算法流程图 该算法假定三维空间数据 ,, 分布在均匀网格或规格网格的网点上(为简 便,说明时采用数据,, 表示三维空间数据)。数据预处理包括原始数据的格式转 换、剔除冗余数据及导出所需要的数据等。接着进行数据值分类,其目的是根据数据值 的不同,将其分为若干类,并给每类数据赋予不同的颜色值和阻光度值,以求较准确地 表示多种物质的不同分布或单一物质的不同属性。然后进行重新采样,即从屏幕上的每 一个像素点根据设定的观察方向发出一条射线,这条射线穿过三维数据场,沿着这条射 线选择 k 个等距的采样点,并由距离采样点最近的 8 个数据点(采样点所在的体素)的 颜色值和阻光度值作三次线性插值,求出该采样点的颜色值和阻光度值。同时,在做重 新采样前,要将具有颜色值及阻光度值的三维数据场由物体空间坐标转换为相应的图像 空间坐标【7】。 2.3.1 颜色赋值 为了在体绘制的结果图像中显示三维数据场内部结构的丰富细节,需要生成具有透明效 果的图像;由于来自断层图像的数据都为灰度值,如果直接生成灰度图像,细节表现将 很差。因为人眼对灰度图像的敏感性不强,能分辨出的灰度等级很有限,人眼对某一背 景或平均亮度适应以后,可分辨的灰度等级不大于 30 级,当照片或显示设备的对比度 不足时,实际可分辨的灰度等级数还要下降,所以使用灰度图像无法充分展示图像的细 节。然而人眼对不同色度和亮度的彩色图像的敏感性却很强,将灰度图像按一定算法转 化成彩色图像后,虽然信息总量不变,但人所能接受到的(或感受到的)信息却较灰度
图像增加了。在光线投射算法中,图像合成过程涉及对各采样点的累计处理。由于灰度 表示的范围相对较小,而彩色表示的范围却很大,如果使用灰度值进行合成图像处理, 容易使许多信息随着运算过程中的数据取舍而丢失,造成信息量的减少,采用彩色值运 算就可以大大避免这种情况的发生,从而有利于达到尽可能全面和完整地体现原始数据 的目的。因此,对每个体素不仅要分配颜色值(R,G,B),而且要分配相应的透明度 a或阻光度p。a=1表示完全透明;a=0表示该体素完全不透明,即对光线的阻挡 作用最大。实际中也可以采用设置阻光度的方法,它与透明度有p=1-a的数学关系。 由于各体素的颜色值是人为赋予的,因此最终图像中的颜色是伪彩色。 2.3.2 明暗效应 在计算机图形学中,明暗计算一般都是在面绘制中为了增加图像的真实感而进行的。 但是,在体绘制中,也可以利用明暗计算的效果更加突出地显示出不同物质之间的边界 面,增加逼真度。由于面绘制中的明暗计算是基于面的法向向量的,而在体绘制中没有 面的信息,因此必须求出等价的法向向量才能进行明暗计算。在体绘制中,用各数据点 上的梯度值来代替法向向量。计算出各个数据点的法向向量后,采用明暗模型可以对绘 制效果进行加强,得到立体感强的效果图。 2.3.3 叠加反射分量 获得了体素对光源的反射分量后,需要把反射分量叠加到体素颜色值中,新的颜色 值可以表现出物体上某点在有光照情况下的效果。由于光源一般为白色,在 RGB 颜色模 型下3个分量 R、G、B 的值相同,实际上可以认为是该点亮度的变化值。亮度值在 RGB 颜色模型下不能直接对 R、G、B 3 分量进行叠加,因为 RGB 颜色模型是面向硬件的,而 亮度是由人眼的感受确定的,所以要使用面向用户的颜色模型。人眼对亮度的感受对应 于 RGB 颜色模型,其中 R、G、B 分量值的变化不是同步的,有一定的比例关系。这种叠 加运算在某些颜色模型中却很简单,可以使用直接含有亮度分量的颜色模型进行运算。 在这些颜色模型下,可以直接在亮度分量上增加亮度数值,然后将其结果再转换成 RGB 颜色模型,用于最终显示在屏幕上。这里选用 HSV 模型,它属于色调模型,可以模拟人 眼感知色彩的方式。其中V分量就是亮度分量,在HSV模型下,增加亮度只需要增加 分量即可。但是在计算机技术中显示和存储颜色信息时,都采用 RGB 颜色模型,所以最 终的结果是在 RGB 颜色模型下的形式。在开始对数据作伪彩色处理时,采用了 RGB 颜色 模型,因此整个体绘制过程中,只有在叠加明暗效应时需要转换成 HSV 模型,叠加后再 转换成 RGB 颜色模型。 2.3.4 重采样 在由屏幕发出的射线上选择了采样点后,需要找出距采样点最近的 8 个数据点,这 个步骤是非常重要的,因为采样点在图像空间内使用图像空间坐标进行定位,而待寻找 的数据点是在物体空间,即在原始数据场空间内,采用的是物体空间坐标。所以必须完
成这种转换,将采样点转换到物体空间坐标系下,从而进行确定相邻数据点的处理。 要完成由图像空间到物体空间的转换,首先需确定两个坐标系之间的关系,它们之 间只存在平移和旋转变换。通过坐标变换运算,确定采样点在物体空间中的位置坐标, 选取采样点附近最近的 8 个数据点构成体素,求取重采样值。具体坐标变换在论文[7] 里写的很清楚,不再赘述。 2.3.5 图像合成 光线投射算法中的最后一步是图像合成,其目的为沿着某一像素点发出的射线,逐 一计算该射线上各采样点的颜色值和阻光度值,并按照一定的规则合成,以形成该屏幕 像素点的最终颜色值。将屏幕上各像素点的颜色值都计算出来后即形成了一幅图像。在 图像空间扫描的体绘制中,有两种不同的图像合成算法,这种合成算法是沿射线方向将 各种采样点的颜色值和阻光度值合成以得到最终图像。 设第 i 个体素的颜色值为 Cout,阻光度为αout,进入第 i 个体素的颜色值为 Cin,阻 光度为αin 由前向后的图像合成公式为 它的主要优点是在图像合成过程中,阻光度必定逐步增大,当不透明度值趋近于 1 时,说明该像素的图像已接近完全不透明,后面的体素不会再对图像做出贡献,因 而可以不再计算了,节省了无效的计算,速度较快。 3 三维可视化工具 如上已经介绍了接近所有的三维重建的方法,包括面绘制和体绘制。那么开发这些 技术的平台和工具有那些呢?在贺楠楠【8】的调研论文里已经明确给出了答案。国内用 到的三维可视化开发工具主要有 ITK、VTK、MITK、Mimics、3DMed、RTVR、VGL。 国外有 3D Viewnix 系统、3D Slicer 软件、Allegro 系统等。之前也用过 MITK 平台,但 因为不熟练,且平台较为复杂,我也很久没有接触过编程,所以最终选用了 matlab 作为 此次实验的平台。 3.1 MATLAB 在医学三维重建中的应用 MATLAB 提供了 20 类图像处理函数,涵盖了图像处理包括近期研究成果在内的几 乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。 Matlab 软件环境提供了各种矩阵运算、操作和图象显现工具。它已经在生物医学工 程,图象处理,统计分析等领域得到了广泛的应用。在三维重建方面,使用的数据量相 对较大,同时涉及到大量的矩阵、光线、色彩、阴影和观察视角的计算,对于非计算机
分享到:
收藏