基于VTK和ODT成像技术的大鼠脑皮层细血管的三维重建与可视化
- 格式:pdf
- 大小:3.82 MB
- 文档页数:66
基于VTK的医学图像三维可视化实现郑小中;周振环;赵明【摘要】3D visualization of medical image on the platform of visual studio 2008 is realized by using visualization toolkit, focusing on how to use Marching Cubes algorithm and ray-casting algorithm for 3D reconstruction with all kinds of slices, such as DICOM slices and so. Interactive surface developed by MFC and summary of data preprocessing and optimization during the reconstruction are also discussed.%利用VTK可视化工具包在Visual Studio2008平台上实现了医学序列图像三维的可视化.在对三维数据的预处理和优化基础上,在MFC实现的可交互界面上,用Marching Cubes(立方体移动)算法和Ray—casting(光线投射)算法对DICOM等格式的切片进行三维重建.【期刊名称】《深圳职业技术学院学报》【年(卷),期】2011(010)005【总页数】9页(P17-25)【关键词】VTK;MFC;DICOM;立方体移动;光线投射【作者】郑小中;周振环;赵明【作者单位】五邑大学,广东江门529020;深圳职业技术学院,广东深圳518055;深圳职业技术学院,广东深圳518055;深圳职业技术学院,广东深圳518055【正文语种】中文【中图分类】TP317.4尽管计算机断层扫描(CT)及核磁共振(MR)已广泛应用于疾病诊断,但是这些医疗仪器只能提供人体内部的二维图像,医生只能凭经验由多幅二维图像对病灶的大小及形状进行估计,这给诊断带来了困难[1].此外,从宏观上来看,国内已经具备了医疗设备的生产能力,但许多医疗软件仍需高额从国外进口,致使大多数的医疗单位难以承受,对进口软件的维护成本较高,也增加了患者的负担.从微观上来看,用于图像处理的软件占据统治地位的仍旧是OpenGL和DirectX,而这 2种技术在使用上却存在着缺陷.例如OpenGL是开源的,但因其主要用于底层算法的实现,所以工作量及难度都比较大;而 DirectX又只限于Windows图像处理的开发,所以制约着图像处理开发的进步发展.本文以VTK(Visualization Toolkit)为基础,在Windows平台上,以Visual Studio 2008为开发平台,结合MFC(Microsoft Foundation Classes),对多种格式的二维切片、Marching Cubes算法和Ray-casting算法在VTK中的实现及优化进行研究,并实现了面绘制和体绘制.1 可视化工具包VTK1.1 VTK简介VTK(Visualization ToolKit)是一套用于计算机图形可视化及图像处理的开源的、面向对象的工具包,1993年由美国 GE公司研发部的 Will Schroeder和Ken Martin作为开源软件首次发布,并支持多平台(如Windows、Unix和Linux)的软件系统[2].VTK可以利用已成为工业标准的三维图形图像绘制库 OpenGL,使人们可以有效地利用各种支持OpenGL标准的显卡进行硬件加速处理,且实践证明 VTK在三维化的效果更好、速度更好.此外,VTK利用面向对象的编程模式大大简化了用OpenGL开发的代码复杂性,使编程更加简洁易读,代码的开源性也在不断地促使工具包的丰富和完善,用户可以根据自己的编程能力编写出适合自己的功能模块,其强大的功能已被医疗软件开发商和研究机构所认可.1.2 VTK的程序框架结构VTK主要由图形模型和可视化模型构成:1)图形模型主要包括的类有:vtkRenderWindow(绘制窗口)、vtkRenderer (绘制器)、vtkLight(光源)、vtkCamera(照相机)、vtkActor(角色)、vtkProperty(特征)和Transform(变换).2)可视化模型采用数据流(Dataflow)方法将各个对象连接成可视化网络结构,最终形成流水线管道(Pipeline),管道是贯穿于VTK的一个核心内容,其每个对象将负责相应的数据处理或用户输入等操作.可视化模型的最高层次是数据源,因为VTK并不善于绘制复杂的图形结构,所以其数据一般来自自带的简单数据集(Simple Source)或者外部的图像文件;将数据源传送给各种数据处理对象(如等值面的提取,表面法线的生成等滤波器或函数),对数据进行加工处理;最后以一个或多个映射器(Mapper)将数据集映射为图库中对应的图形几何,以此结束管道.映射器的输出主要用于可视化或写入等操作.数据流中各个对象的处理联系紧密,尤其是滤波器、读/写图像等操作,所以可以由该对象的 Update()方法实时触发执行,以便为下步操作提供准备.图1展示了VTK的框架结构及可视化流水线[3].1.3 VTK的图像读取器目前医学影像设备种类繁多,成像原理及图像格式不尽相同,给图像处理带来了困难.VTK不仅提供了DICOM图像文件读取的接口,还提供了其他类型图像的接口,并可以用vtkImageShiftScale将其他数据类型的图像转换为VTK可以识别的unsigned short类型或者unsigned char类型,极大地方便了图像显示和处理操作.图2展示了VTK提供的5种图像读取器的类关系图及其主要成员函数,其中vtkVolume16Reader读取的图像主要用于三维可视化操作,其他4种既可读取单个图像也可以读取多个切片图像.·SetFilePrefix()和 SetFilePattern()共同设置读取文件的目录及文件名前缀格式,vtkDICOMImageReader的 SetDirectoryName()只需指定切片的读取目录即可(如果切片文件名没有特殊的扩张格式),如果每个切片有规范的文件名格式,需要采用SetFilePattern()予以说明[2].例如:读取文件夹 BMPFiles下切片格式为BN1.BMP BN2.BMP...BN256.BMP的 BMP文件时,除了SetFilePrefix()设置为“.../BMPFiles/BN”外,还需将SetFilePattern()设置为“%s%d.BMP”.图1 VTK框架结构及可视化流程图2 读取器类结构·SetDataExtent()用于指定切片的大小(前4个参数)和读取切片的范围(后2个参数);·SetDataSpacing()用于设置X,Y,Z轴方向上像素的间距. ·SetDataImageRange()主要用于设置读取的文件范围,常用于vtkVolume16Reader.·SetDataOrigin()设置数据集的中心坐标.·SetFileNameSliceOffset()用于设置从某个切片开始读取,默认值为 1,即从第一切片读取切片序列.·SetFileNameSliceSpa cing()用于设置读取有规律的切片,如将其设置为 2时,将读取切片filename.1,filename3,filename5....默认值为 1即连续读取切片序列.·SetDataDimension()用于设置切片的尺寸.2 VTK与MFC的接口本文以 Visual Studio 2008为例,首先确保VTK同Visual Studio2008已正确配置;其次将程序中用到的类库添加到“项目→属性→配置属性→链接器→输入→附加依赖项”中(注意每个类库需要附带扩展名.lib,且类库之间以空格隔开).此外,VTK与MFC的常见接口有两种:第一种方式可以采用 vtkRenderWindow类中的 SetParentId()函数设置绘制窗口的父窗口句柄,一般为 MFC中某控件的句柄(如staticText、当前视图、对话框等),以此将VTK的绘制窗口定位并覆盖在MFC指定的控件上,如renWin→SetParentId(hwnd).但由于该操作主要实现在控制台程序中,所以不仅无法实现MFC的鼠标响应和消息的传递等交换功能,而且还限制了后续代码的扩展,所以并不提倡该方法[3].第二种方法采用MFC的数据处理(文档类实现)和显示(视图类实现)分离机制,充分利用面向对象的编程风格和MFC的消息机制及类库函数,可以实现友好的交互界面.该操作用到的头文件主要有 vtkWin32OpenGLRenderWindow.h,vtkWin32 RenderWindowInteractor.h,vtkMFCWindow.h,对应的类库为vtkMFC.lib.该功能的实现需要解决如下3个主要问题:1)绘制窗口:通过vtkMFCWindow *m_vtkMFC=new vtkMFCWindow(this)将VTK的绘制窗口指定到MFC的视图窗口(该操作在视类中进行设置,所以直接用this即可,其他窗口对象也可以),并通过代码m_vtkMFC→GetRenderWindow()→Add Renderer(m_Renderer)将绘制器添加到绘制窗口中现实对角色的绘制操作.2)交互:利用代码m_vtkMFC→GetInteractor()→SetInteractorStyle(style)设置利用鼠标交互的方式,可以实现放缩、移动、旋转等操作.3)重绘:在视图类 OnDraw()函数中添加代码m_vtkMFC→DrawDC(pD C),当对绘制窗口(视图窗口)进行交换时,实现对绘制窗口进行重绘操作[4].本程序主要是基于MFC的FormView框架结构,首先在视类头文件中声明4个函数,void readFile()、void initSlider()、void setSlider()、void Draw() 分别实现切片的读取、滑块的初始化、滑块值的设置、数据流的实现;然后在OnInitialUpdate()中对程序启动时进行初始化,即调用readFile()、initSlider()、Draw();最后在各个滑块的OnNMReleasedcapturesclar1op()消息中对Draw进行调用,实现交互绘制.参考代码如下:3 三维可视化的实现三维可视化主要包括面绘制与体绘制2种.3.1 面绘制面绘制是采用分割技术对一系列的二维图像进行轮廓识别、提取等操作的过程,最终还原出被检测物体的三维模型,并以表面的方式显示出来.图3展示了面绘制的数据流结构.图3 面绘数据流3.1.1 提取等值面(Marching Cubes)对图像进行进行提取等值面操作(分割操作),不仅需要选用合适的分割算法,还需要了解被分割对象的组织结构,如:皮肤和骨骼的密度是不同的,并且头盖骨同其他部位的骨头密度也显然不同,根据不同组织具有不同的密度(或者灰度值)进行等值面提取操作.经典的Marching Cubes算法的基本原理:首先,假定原始数据是离散的三维空间规则数据场,用于医学诊断的断层扫描仪(CT)及核磁共振仪(MRI)等产生的图像均属于这一类型;其次,为了在这一数据场中构造等值面,给出所求等值面的值;最后,找出等值面经过的体元位置,求出该体元内的等值面并计算出相关参数,以便由常用的图形软件包或图形硬件提供的面绘制功能绘制等值面.由于该方法是逐个体元依次处理的,因此被称为移动立方体法(Marching Cubes).用MC方法求等值面的步骤为:①将三维离散规则数据场分层读入内存;②扫描两层数据,逐个构造体元,每个体元中的8个角点取自相邻的两层;③将体元每个角点的函数值与给定的等值面做比较,根据比较结果,构造该体元的状态表;④根据状态表,得出将与等值面又交点的体元边界;⑤通过线性插值方法,计算出体元边界与等值面的交点;⑥利用中心差分方法,求出体元各角点处的法向,再通过线性插值方法,求出三角形各定点处的法向;⑦根据各三角面片个顶点的坐标值及法向量绘制等值面图像.VTK主要提供了两种提取等值面的类vtkContourFilter滤波器和封装了 MC (Marching Cubes)算法类vtkMarchingCubes,最终通过设置SetValue (arg1,arg2)实现对某轮廓组织的提取,其中arg1是提取的标号一般从0开始,arg2是提取等值面的值,所以可以同时实现多个等值面的提取操作,但由于不同组织的等值信息难以分类,所以我们在这里采用滑块(Slider Control)进行调节.3.1.2 数据处理根据需要可以对读取的图像进行各种预处理或者优化操作,例如在 VTK 中通过vtkPolyDataNormals在等值面上产生法向量;用vtkStripper在等值面上产生纹理或三角面片等.最终实现图4等值面的绘制操作.程序的核心代码如下:3.1.3 面绘制实验结果实验数据来源于某骨质医院和 VTK数据包.图4采用读取器vtkVolume16Reader 读取93张64*64大小的头部CT数据,将vtkContourFilter设置为皮肤灰度值为500的绘制效果;图5用vtkDICOMImageReaderd读取34张胸腔DICOM图像,图像大小为512*512,vtkMarchingCubes设置骨骼灰度值150的绘制效果;图6利用257张BMP格式的头颅图像,图像大小为256*256,用vtkBMPReader读取数据,vtkMarchingCubes设置等值为80的绘制效果;图7为利用1878张大小为 587*341的 JPG格式人体骨骼图像,用vtkJPEGReader读取标号 1001到 2878的图像,vtkContourFilter设置等值为100的绘制效果. 3.2 体绘制体绘制不同于面绘制,面绘制需要生成中间几何图元,而体绘制是直接绘制,所以内存的需求较面绘制小,但是由于每切换一个视角需要重新对所有的像素点进行颜色、透明度等计算,所以需要的时间又比面绘制的长.本系统利用光线投射算法进行体绘制,光线投射算法的基本原理如图8所示.图4 头部皮肤效果图5 胸腔骨骼效果图6 头骨效果图7 人体骨骼效果图8 光线投射算法基本原理流程图1)数据预处理:常见有2种操作,一种是类型的转换,通过vtkImageShiftScale 将不同类型的数据集转换为 VTK可以处理的数据;另一种是剔除冗余数据,例如通过vtkStripper防止无效的旧单元的存在,提高绘制速度.2)数据分类:三维数据场中的数据是三维空间中多种不同物质的测量结果或计算机数值计算的结果.例如,在人体或动物的CT扫描图像中,对应用骨骼、肌肉和皮肤等不同密度的物质,就有不同的CT值,在CT图像中表现为具有不同的灰度值.为了在最终的可视化图像中以不同颜色正确地表示出共存的多种物质的分布,就需要对数据进行分类,找出数据与不同物质之间的对应关系;为了在最终图像中以不同颜色表示单一物质的不同属性,如温度、密度等,也需要进行分类.所以分类是整个可视化算法非常重要的一步,但是分类又是非常困难的,又如,人的头部同一组织结构往往具有不同的灰度值,而同一灰度值的像素又有可能属于不同的组织结构.因此,尽管图像处理和模式识别技术对物质分类问题进行了多年研究,但仍然只能对简单的或特定的三维数据场进行自动分类.本范例,为了方便寻找坡度或不同组织,采用滑块Slider Control进行实现.3)给数据点赋颜色值:将分类后的组织信息分别予以不同的颜色,便于图像分析是非常必要的,VTK 采用 vtkColorTransferFunction 类的AddRGBPoint()函数将不同组织信息转换为不同的颜色.4)给数据点赋不透明度值:在体绘制中,需要显示三维数据场的内部结构,因而需要生成具有透明度的图像.因此对每个体元不仅要根据分类结果赋予不同的颜色值(R,G,B),而且还要赋予不透明度值α.α=1表示该体元完全不透明;α=0则表示完全透明.体元颜色值由实现, iP为第i种物质所占的百分比, ),,( iiiiii BaGaBaCi= 为第i中物质的颜色值.VTK采用分段函数vtkPiecewiseFunction类的AddPoint()函数实现不同组织透明度的设置.5)光照效应计算:VTK中采用光线函数 vtk-VolumeRayCastCompositeFunction进行投射,最终用vtkVolumeRayCastMapper进行光效应等的计算.6)图像合成:主要通过设置 vtkVolume的SetMapper()和 SetProperty()函数将上述类型进行合成.VTK中对应上述的核心代码如下:面绘制图像5和6,经滑块调节后体绘制效果见图9,10,得到较高的绘制效果. 图9 头部光线投射重建效果图10 胸腔光线投射重建效果参考文献:[1] 齐敏,位军,陈世浩.M Lehmpfuhl.基于 VTK的医学三维可视化分析系统[J].计算机仿真,2008,25(3):242-245.[2] 骆建珍,林财兴,孟令旗,等.DICOM医学图像三维可视化系统的研究[J].机电一体化,2007,13:45-48.[3] 罗火灵,许永忠,陈世仲.基于VTK和MFC的医学图像三维重建研究和实现[J].生物工程学进展,2010,31(1):23-28.。
基于VTK 的三维医学影像可视化系统设计与实现****基金项目:西藏自治区自然科学基金项目"基于大数据的西藏非物质文化遗产知识图谱研究"(XZ2018ZRG-66)**通讯作者孙浩雒伟群杯(西藏民族大学信息工程学院,陕西咸阳712082)摘要:随着社会科技的发展以及医疗行业智能化的普及,医学影像三维可视化在医学领域有着重要的应用。
文章将VTK.QT 以及Visual Studio 三者结合起来对医学DICOM 影像进行可视化分析,通过VTK 读取医学DIC0M 影像并 进行三维重建后显示,在冠状面、矢状面、横断面、三维立体图形界面显示数据图像;通过VTK 的交互部件,实现对二维图像与三维立体图像的距离测量和角度测量,给医师提供准确数据;通过布尔运算把种植体套筒与牙床板融合到 一起,模拟了口腔种植体的植入过程;并且通过QT 来设计出友好的用户交互界面。
关键词:VTK QT 三维可视化1研究背景随着生活水平的提高,人体牙体缺失的问题越来 越严峻,主要由于人口老龄化,许多老年人的牙齿都掉了,掉了之后就很容易形成空缺,对外观以及生活体验都大大减少。
这就出现了人工种植牙技术,来改 变这一现状。
传统种植手术完全依赖医生的经验,可 能会导致手术失误,随着数字化种植技术的发展,可以精确地模拟种植体种植的手术流程,大大降低了手术的风险。
同时随着医学影像的快速发展,医学数字 成像与通信(DICOM)格式的医学图像在当下使用最为广泛,研究出一款三维可视化的软件是非常有必要的,可以解决医生传统的读取CT 的效果不好以及二 维显示不够直观的缺点。
本项目致力于研发一种低成本、便于维护、面向中小型医院的医学图像的三维可视化软件,帮助医生 更好的诊断并且提供可靠的解决方案,帮助医院实现智能化的转变。
本项目所使用的原始数据由医学数据库中提供 的真实的371幅CT 人脑系列断层图像,图像格式为符合DICOM3.0标准的医学图像。
基于VTK的人脑MR图像的脑区分割与三维重建作者:张海燕来源:《价值工程》2010年第35期摘要:VTK是一种具有强大功能的图像处理及三维可视化工具,本文首先使用主动轮廓模型自动、准确的分割人脑MR图像脑组织区域,然后使用Visual C++开发环境结合VTK工具对分割后的人脑MR图像脑组织区域进行三维重建,结果表明基于VTK的三维可视化研究具有广阔的应用前景。
Abstract: VTK(Visualization Toolkit) is areconstruction and visualization toolkit with strong function. This paper first automatically and accurately segments the human MR brain regions using an active contour model and reconstructs the 3D model of the human brain using VTK with VC++, the results show that VTK can help to develop the 3D visualization system of medical images in PC environment.关键词:VTK;MRI;图像分割;三维重建Key words: VTK;MRI;image segmentation;3D reconstruction中图分类号:TP391文献标识码:A文章编号:1006-4311(2010)35-0119-020引言近20年来,尽管计算机断层技术(CT)、核磁共振成像(MRI)和超声(US)等医学影像技术已广泛用于疾病的诊断,但它们只能提供病变部位的一组二维断层图像,医生只能凭经验估算出病灶的大小及形状,缺乏客观性和准确性。
基于VTK和ITK的3D医学图像重建系统的设计与实现作者:刘鹰韩利凯来源:《价值工程》2011年第24期摘要:三维图像重构是当前数字图像处理领域的一个热点,特别是其在医学图像处理中的应用。
VascuView3D是一个基于VTK和ITK的3D医学图像重建系统,该系统实现了体绘制(VR)、表面绘制(SR)和多平面绘制(MPR)等3D视图,以及基于CLUT的三维灰度图像着色。
Abstract: 3D image reconstruction is an attractive field generally in digital image processing techniques, especially in medical imaging. The design and implementation of a 3D medical image reconstruction system VascuView, which can be used to build 3D images from 2D image slice files produced by CT and MRI devices, is introduced. The volume rendering, surface rendering and Multi-Planar rendering are implemented and lots of the 3D operations such as coloring of 3D image based on CLUT can be performed with this software.关键词:医学图像处理;3D图像重建;VTK;ITKKey words: medical image processing;3D image reconstruction;VTK;ITK中图分类号:TP393文献标识码:A 文章编号:1006-4311(2011)24-0161-020引言计算机断层扫描仪(CT)、核磁共振成像(MRI)和3D-4D超声波立体影像诊断等3D医学成像诊断设备已得到广泛应用。
信息技术与信息化图像处理2008年第5期115利用VTK 实现D I C O M 医学图像三维重建3D Reconstructi on of D I COM M edical I m ages Based on VTK王树秀3雷声33常发亮3WAN G Shu -xiu L EI Sheng CHAN G Fa -liang摘要利用医学可视化技术可以将二维断层序列图像重建为三维虚拟实体,基于这个模型可以精确地获取病变区的大小、位置和形状,极大地提高了诊断的直观性与交互性。
VTK 是目前国际上通用的科学计算可视化工具包,D I COM 文件为医学图像的专用传输和存储格式。
在V isual C ++6.0平台下,本文借助VTK 类库,采用体绘制方法实现了D I COM 医学序列图像的三维重建,并给出了程序运行结果。
关键词三维重建 D I COM VTK 体绘制3山东大学控制科学与工程学院济南25006233浙江大学生物医学工程与仪器科学学院杭州310027基金项目:国家自然科学基金(No .60775023;山东省自然科学基金(No .Z2005G03。
D I COM (digital i m age and communicati on on medicine 文件格式为目前国际通用的医学影像专用的传输和存储格式,在P ACS 系统中得到了广泛的应用。
D I COM 图像三维重建是指将二维D I C OM 序列医学图像通过特定的重建算法重建为三维虚拟实体,可以较为准确的获得病变区的大小、位置、形状等三维信息,为进一步的病情诊断、虚拟手术等提供了更为丰富直观的信息和交互手段,极大地方便了医生的诊断治疗。
医学图像三维重建方法可以分为面绘制(Surface Rendering和体绘制(Volu me Rendering 两大类。
面绘制算法中具有代表性的是MC (M arching Cubes 算法,它通过对一系列的二维图像进行边界识别等分割原理,将感兴趣的部分以等值面的方式抽取出来,从而为用户提供较具真实感的三维图像。
AbstractNeuroscience is an important topic in nowadays, and rat is one of the broadest experimental animals. However, the huge amount of data collected by neuroscientists will become meaningless if we cannot give them a precise description of th eir locations. The Rat Brain Atlas is a powerful tool for such questions.This work is supported by the project of “3D reconstruction of rat brain atlas and MR image analyzing system”, which comes from Wuhan Institute of Physics & Mathematics the Chinese Academy of Sciences. The purpose of this project is to further implement the image analysis and visualization functions based on the former work “3D MR image processing system”.This thesis focuses on the following aspects of MR image visualization: preprocessing of MR and atlas images; 3D reconstruction and visualization; anatomical structures registration, localization and labeling.In the preprocessing part, the vectorial atlas slices are transformed into scalars. The brain of the rat is extracted from MR images with SNAKE model. Then, the two type slices are re-sampled with the same resolution.In the part of 3D reconstruction and visualization, we implemented volume rendering of rat brain based on ray-casting and texture mapping separately, surface rendering based on MC algorithm, and 3D arbitrary cutting view utilizing VTK.A manual registration method is introduced, f u rthermore, an automatic registration strategy based on PCA is implemented in the part of registration between atlas and MR image. In addition, the localization and labeling of ROI in 2D and 3D MR image are completed at last.Considering customers’ require, taking the engineering's principle of Object Oriented (OO) and stability and compatibility into account, this system is designed and implemented with Visual C++6.0 and VTK on windows platform. Practice proved that this system has a higher capability than our former MRI processing system in rat brain anatomic structure analysis.Key Words:MR Image, Rat Brain Atlas, ROI (Region of Interesting), 3D visualization, VTK, Image Registration, Localization and Labeling独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。