论文部分内容阅读
医学图像三维重建(Three Dimensions Reconstruction)是指通过计算机断层扫描(Computerized Tomography)、核磁共振成像(Magnetic Resonance Imaging)和超声波扫描(Uhrasono graphy)等成像设备按某种物理学原理从人体器官采样得到的单张或序列图像进行计算机处理,以从中恢复器官的三维表面形状。并进一步通过人机交互,对重构出的物体进行各种模拟仿真的操作,如旋转、缩放、切割等。研究快速而有效的三维成像技术,是具有相当价值的。医学图像的三维重建是近10年发展起来的,是借助计算机对生物组织结构影像的连续图像进行处理、获得三维图像并能进行定量测量的一项形态学研究的新技术与新方法。ITK(Insight Segmentation and Registration Toolkit)具有强大的医学图像分割和配准功能,目前采用开源的形式支持发行,因此深受开发人员的青睐,它已经并将继续成为医学影像领域研究人员的一个分割和配准算法的仓库和基础[1]。但是由于ITK不具备可视化功能,所以一般要与可视化开发工具包VTK(Visualization Toolkit)联合起来使用才能构成一个比较完整的医学影像处理与分析系统。而VTK虽然提供了可视功能,但缺乏灵活、实用的用户界面。OpenGL是一套独立于操作系统的三维图像库,具有良好的跨平台移植能力。随着图形显示硬件的发展,OpenGL已经被绝大多的显卡生产商作为标准,广泛的应用于图像可视化技术。为了利用VC++ 6.0的强大功能来实现对三维图形的绘制,Windows提供了OpenGL32.DLL和GLU32.DLL动态链接库,开发者可以在多种硬件平台及操作系统下利用图形库方便地编程,快速地生成美观、复杂的三维彩色图形。本课题实现了一种基于ITK和OpenGL开发医学图像处理平台的新模式,在目前流行的编程环境VC++ 6.0下,利用ITK进行序列DICOM图像的输入、分割及三维重建,利用OpenGL渲染及输出。不仅解决了ITK不提供可视化的问题,而且可以根据需要定制方便实用的用户界面。本论文的主要工作如下:1 ITK中等值面的提取。ITK医学图像分割和配准算法丰富,但是对于三维重建目前只提供面绘制算法。Marching Cubes算法被认为是至今为止最流行的面绘制算法之一,它的本质是从一个三维数据场中抽取一个等值面,所以也被称为“等值面提取”算法。ITK等值面算法由itkBinaryMask3DMeshSource实现。本课题将阈值分割的输出作为等值面提取的输入,通过SetObjectValue()设置一个value值,灰度值与之相等的像素将被直接提取,生成为一个Cell类型为三角形的ITK数据类型Mesh。2 ITK和OpenGL的接口OpenGL可以绘制复杂多样的形体,但是这些复杂形体都是由一些基本图元构成。这些基本图元包括点、线和多边形。由于ITK等值面提取的结果为一个Cell类型为三角形的Mesh,这就为OpenGL留了一个接口。因此要绘制整个Mesh,最简单的方法就是利用OpenGL逐个绘制所有的三角形。然后再利用OpenGL强大的渲染功能添加材质和光照,使得三维场景更加逼真。3 OpenGL的绘制Mesh可以看成一个三维的点集,同时这些点也可以组成线段、三角形等Cell做为Mesh的基本单元。这些Cells以一个链表的形式存在内存中,可以通过游标(Iterator)进行访问。由于OpenGL中所有的几何图元都是根据他们的定点(vertex)来描述的,因此要绘制三角形,除了要访问到每个Cell,还必须得通过GetElement()方法获得每个点的坐标。