本站小编为你精心准备了医学三维重建探究参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1三维结构
人体组织与器官的三维成像技术在现代临床医学中起着越来越重要的作用,运用计算机图形学和图像处理技术,将计算机断层(ComputerizedTomography)图像、核磁共振成像(MagneticResonanceImaging)以及超声(Ultrasonography)等成像设备得到的人体断层二维图像序列,在计算机中重建成三维图像,并在屏幕上形象逼真地显示人体器官的立体视图,通过人机交互,医生可以方便对重建的图像进行诸如旋转、缩放等操作,使医生能够更充分地了解病灶的性质及其周围组织的三维结构关系,从而帮助医生做出准确的诊断和制定正确的手术方案[5]。OpenGL是美国高级图形和高性能计算机系统公司SGI所开发的三维图形库,OpenGL被设计成为适合于广泛计算机环境下的三维图形应用编程界面(API),目前它已成为开放的图际图形标准,基于OpenGL开发的大量三维图形应用软件系统,已经广泛应用于科学可视化、实体造型、CAD/CAM、模拟仿真、图像处理、地理信息系统、虚拟现实等各个领域[3]。目前利用OpenGL来实现医学图像的三维可视化已经成为一个热点。
2三维重建原理
目前图像三维重建的方法主要有两大类:一类是三维面绘制,另一类是三维体绘制。体绘制更能反应真实的人体结构,但是由于体绘制算法运算量太大,即使利用高性能的计算机,仍然无法满足实际应用中交互操作的需要,因此面绘制仍是目前的主流算法。本文主要研究三维面绘制的实现,并且对体绘制作一些简单讨论。
2.1三维面绘制
表面表示是表示三维物质形状最基本的方法,它可以提供三维物体的全面信息,其具体形式有两种:边界轮廓线表示和表面曲面表示。最初的表面重建方法采用基于轮廓线的描述方式,即在断层图像中,通过手工或自动方式实现目标轮廓的确定性分割,然后用各层的轮廓线“堆砌”在一起表示感兴趣物体的边界,这种轮廓线表示方法简单且数据量小,但是不很直观。除了以轮廓线表示物体外,还可以由轮廓重建物体的表面来表示。最早的方法是基于多边形技术,主要采用平面轮廓的三角形算法,用三角片拟合这组表面轮廓的曲面Bussonnat提出了另外一种基于表面轮廓的Delaunay三角形方法,解决了系列表面轮廓的三维连通性问题。用三角形或多边形的小平面(或曲面)在相邻的边界轮廓线间填充形成物体的表面,所得出的只是分片光滑的表面,Lin采用从轮廓出发的B样条插值重建算法,得到了整体光滑的表面。Lorenesen提出了一种称为“MarchingCube”的算法,这是一种基于体素的表面重建方法,该方法先确定一个表面阈值,计算每一个体素内的梯度值,并与表面阈值进行比较判断,找出那些含有表面的立方体,利用插值的方法求出这些表面,这其实是抽取等值面的过程。基于表面的方法,其主要优点是可以采用比较成熟的计算机图形学方法进行显示(如裁剪、隐藏面和浓淡计算等,而这些都可以通过OpenGL来实现)。计算量小,运行速度快,借助于专用硬件支持,在高性能PC上面绘制完全可以实现实时交互显示。
2.2三维体绘制
体绘制由于直接研究光线通过体数据场与体素的相互关系,无需构造中间面,体素的许多细节信息得以保留,结果的保真性大为提高。从结果图像的质量上讲,体绘制要优于面绘制,但从交互性能和算法效率上讲,至少在目前的硬件平台上,面绘制还是要优于体绘制的[6]。下面讨论二种体绘制方法。
2.2.1投影法(Projection)
首先根据视点位置确定每一体素的可见性优先级,然后按优先级由低到高或由高到低的次序将所有体素投影到二维像平面上,在投影过程中,利用光学中的透明公式计算当前颜色与阻光度,依投影顺序(即体素可见性优先级)的不同,投影法分为从前至后(Front-to-Back)算法与从后至前(Back-to-Front)算法。一般说来,前一种算法运算速度快,但除需一个颜色缓存区外,还需要一个阻光度缓存区;后一种算法仅需一个颜色缓存区,并在执行过程中产生不同层面的图像,有助医生更好地理解医学图像。
2.2.2光线跟踪法(Ray-Casting)
该方法是在体数据进行分类后,从象空间的每一体素出发,根据设定的方法反射一条光线,在其穿过各个切片组成的体域的过程中,等间距地进行二次采样,由每个二次采样点的8个领域体素用三次线性插值方法得到采样点的颜色和阻光度值,依据光照模型求出各采样点的光亮度值,从而得到三维数据图象。直接体视法所面临的问题是运行速度慢,利用空间相关性可提高算法的效率[1]。
3三维表面重建方法及实例
本文给出二种三维表面重建实例。
3.1断层间表面重建法
这种重建方法主要应包含以下几个步骤:(1)获取目标图像序列,本文采用128×128×54MRI人头的图像序列(见图1)。(2)对图像序列进行预处理(这包括一系列图像处理),以获取用于表面重建的图像信息。(3)根据所获得的图像信息重建出人体器官的三维表面图像。进行三维表面重建,必须先进行医学图像的轮廓提取,一般采用灰度分割、边缘检测等方法,本文对二种方法分别进行讨论。
3.1.1轮廓的提取
物体的边界在图像中是由灰度不连续性所反映的,人们希望直接从图中提取边界,但在成像条件不好,边界复杂时是很难做到的。局部边沿在图像的总像点中只占不大比例,那里局部一定方式迅速改变。边沿算子是小空间范围的数学算子,常用来检测图中是否有局部边沿。最早使用的梯度算子是Roberts算子,它是一种差分算子,由于窗口小,平滑噪声作用也小,改进的另二种算子是Prewitt算子和Sobel算子,它们对有噪声的阶跃形边沿检测能力比Roberts好,我们采用Sobel算子,根据可调的阈值进行二值化,最后采用八步跟踪的方法找出相应的边界。
3.1.2轮廓拼接
对于重建比较简单的三维图像可以采用轮廓拼接法,所谓的轮廓接接就是用多边形(一般是三角形)构造通过相邻层上对应轮廓的表面的过程,在这里我们首先采用基于圆环图的轮廓拼接。设C1,C2为将要拼接的对应轮廓,它们以一组有序点来表示,即C1∶{pi}mi=1,C2∶{qi}nj=1。连接同一轮廓上的两个相邻点所得到的边称作轮廓段,而连接不同轮廓上两个点所得到的边称作跨段建立一个图。当两上跨段具有一个共公点时,可用弧把这两个跨段所对应的结点连接,这样的图形就是圆环图(Toroidalgraph)。OpenGL中很多图形都是由一组顶点(Vertex)构成三角面片面而绘成的,要完成轮廓拼接的操作,只需将相邻轮廓上的顶点用三角形面片连接起来,便可初步形成三维表面。为了体现真实的三维效果,我们采用下面的方法得到每个顶点的法向量,如图4所示:a点的法向量为相接四个三角面单位法向量的平均值。这样再利用OpenGL加上材质及光源,便可重建立体感很强的三维人头表面(如图5),并且可以从各个角度加以观察。
3.2等值面绘制法
MarchingCube算法是三维数据场等值面生成的经典算法,也是体素单元内等值面抽取技术的代表。这一类算法所处理的数据一般是三维正交的数据场,可以适用于医学图像序列。我们讨论了MarchingCube算法的实现以及其二义性消除的方法。在MarchingCube算法中,体素是一逻辑上的立方体,由相邻层上的各四个象素组成立方体上的八个顶点,算法以扫描线方法逐个处理数据场中每一立方体体素,求出每一体素内包含的等值面,由此生成整个数据场的等值面。MarchingCube算法中每个单元内等值面抽取的主要计算是:(1)体素中由三角片逼近的等值面计算。(2)三角片各顶点的法向量计算。
3.2.1基本算法
MarchingCube算法的基本假设是沿着立方体的边数据场呈连续线性变化,也就是说,如一条边的两个顶点分别大于小于等值面的值,则在条边上必有也仅有一点是这条边与等值面的交点。确定立方体体素中等值面的分布是该算法的基础。算法中使用的顶点及边的索引定义。我们采用查表的方式,建立多个索引表,这样可以加快程序的速度。如图7的等值面,我们建立的索引值为[Index]=00001000(从右至左0到7位分别代表第几个顶点,0表示该顶点值大于等值面的值,1表示该顶点值小于等值面的值,阴影面为等值面)。这样可直接由立方体各顶点的状态检索出其中等值面的分布模式,从而确定该立方体体素内的等值面三角片连接方式。然后我们还得计算每个三角片顶点的位置及其法向量,可以直接用线性插值计算等值面与立方体的交点X(见式2)。由于我们以一个像素为单位,因此有较高的精度。
3.3分析
明显的MarchingCube算法及其改进算法所得的立体像要比根据轮廓进行面绘制所得的立体像要精确地多,但这是以时间为代价的。
4结束语
三维重建在医学中应用越来越广泛,用其作为医生诊断病情的辅助手段,能够极大地提高医疗诊断的准确性和科学性。OpenGL的出现,可以使人们更容易地进入三维图形世界,运用OpenGL进行医学图像的三维图形重建,可大大节省开发时间,提高软件的可靠性。医学图象的三维重建已经成为一个新的研究热点。