中国口腔颌面外科杂志
    主页 > 期刊导读 >

基于的交互式三维颌面截骨手术实现

THESIS&RESEARCHREPORT研究论著基于VTK的交互式三维颌面截骨手术实现林勤1,刘欣1,卢虹冰1,杨国胜1,李云鹏2,封兴华2(1.第四军医大学生物医学工程系,西安710032;2.第四军医大学口腔医学院,西安710032)[摘要]目的:实现计算机手术计划系统中的交互式三维颌面截骨手术模拟。方法:使用C++编程语言和VTK(Visu-alizationToolKit)可视化工具包进行系统构建。结果:以1例先天性左半侧颜面肥大综合征患者为例,在该病例的面模型上实施了交互式的颧骨下缘突起截除手术模拟,描述了交互式手术实现过程中基本问题的解决方案和具体编程步骤。结论:实验结果表明,该模拟手术实现方法可行;手术模拟过程的响应时间较快,符合实时系统的要求。[关键词]VTK;截骨手术;手术模拟;人机交互;颌面外科[中图分类号]TP391.72;TP391.9;R687.31[文献标志码]A[文章编号]1003-8868(2008)05-0015-03ImplementationonInteractiveSimulationofMaxillofacialOsteotomyBasedonVTKLINQin1,LIUXin1,LUHong-bing1,YANGGuo-sheng1,LIYun-peng2,FENGXing-hua2(1.DepartmentofBiomedicalEngineering,FourthMilitaryMedicalUniversity,Xi'an710032,China;2.SchoolofStomatology,FourthMilitaryMedicalUniversity,Xi'an710032,China)AbstractObjectiveToimplementaninteractiveosteotomysimulationforacomputer-basedsurgicalplanningsystem.MethodsC++programmingplatformandtheVTK(VisualizationToolKit)wereusedtobuildthecomputer-basedsurgicalplanningsystem.ResultsPerformingacasesimulationofthehighcheekboneosteotomyforSteinersyndrome;Aschemeforfastimplementationofinteractiveproceduresandasolutionfortwofundamentalproblemsexistedininteractivesimula-tionofsurgicalprocedureswereproposed,alongwiththeprogrammingflowchartindetails.ConclusionTheresultofthetrialindicatesthatproposedschemeiseffectivewitheasyinteractionandfastresponse,meetingthereal-timedemandofsurgicalplanningsystems.[ChineseMedicalEquipmentJournal,2008,29(5):15-17]KeywordsVTK;osteotomysurgery;surgerysimulation;interactiveoperation;craniofacialsurgery1引言正颌外科手术复杂,难度较高,具有一定危险性;患者对术后面部的美学效果也有较高要求,所以在术前制定精确的手术方案非常重要。虚拟正颌外科手术计划系统的引入,旨在改变医生仅靠传统二维序列图像进行诊断的现状,为医生提供病灶的三维形态表示,并可在术前进行个体化的手术方案模拟,辅助医生诊断和制定手术方案,提高手术成功率。虚拟手术计划系统的重要模块之一是手术过程模拟。在手术模拟过程中,如何直观且实时地对病例数据集进行交互式控制是该系统的实现难点。VTK(VisualizationToolKit)是开源、费的计算机图形、免图像处理和可视化工具包。VTK具有优秀的架构和运行机制,在国际可视化领域得到了广泛的应收稿日期:2008-02-25修回日期:2008-03-31基金项目:陕西省科技计划项目(2004K05-G40);教育部留学回国人员科研启动基金(HG2506)作者简介:林勤(1979-),男,四川简阳人,硕士研究生,主要从事医学图形、像处理方面的研究图工作,Email:lioncham@163.com;卢虹冰,教授,硕士研究生导师,主要研究方向为医学图形、像图处理。用。VTK的开发工具包支持多种编程语言,如Tcl/Tk,Java和C++等。VTK的C++类库以分层结构进行组织,与微软公司MFC的分层结构相似。在系统开发过程中,利用C++语言的类派生机制等方法修改VTK类的默认执行方式和嵌入个性化的执行代码,可以实现多样化的可视化和交互式手术模拟。鉴于VTKC++类库的灵活性和较高的算法执行效率,该类库适用于有实时性要求的交互式专用手术计划系统的实现。因此,本研究选用C++编程语言和VTK的C++类库作为系统的交互式手术模拟模块的实现工具。本文对交互的实现过程做了详细叙述,并利用该方法对一例先天性半侧颜面肥大综合症病例实施了交互式颧骨下缘突起的截除手术模拟。2数据的获取和预处理文中病例图像的采集设备为Aquilion16型高速螺旋CT512机,每层图像大小为512×像素点,层内像素点的间距为0.468mm,层厚为1mm,共294层。断层图像的文件输出格式为DICOM3.0。本病例主要关心头部骨的空间结构及异常改变,使用阈值分割技术[1]分割出病例的骨性组织和软组织,对病例的骨性组织进行三维可视化。3三维可视化医疗卫生装备?2008年5月第29卷第5期ChineseMedicalEquipmentJourna?lVol.29No.5May200815研究论著THESIS&RESEARCHREPORT三维可视化有2种主要的方法[2]:面绘制和体绘制。面绘制是一种直接从体数据提取物体表面的方法,具有代表性的是Lorensen等人提出的MarchingCubes方法。体绘制是以体数据为基本单元,直接由体数据生成三维物体的图像。体绘制能够表达对象的内部信息,但是运算量大。与体绘制相比,面绘制算法的计算量较小,成像速度快,更适用于实时系统。面绘制方法可满足本实验对骨组织表面形态和位置获取的需求,因此,本系统采用面绘制算法对病例数据进行三维可视化。经预处理的病例数据构成一个拓扑规则的三维标量数据场。使用VTK的vtkImageData类[3]接收病例数据,并调用其SetDimensions函数设置数据的维数,SetSpacing函数设置像素点间隔(像素点间隔必须严格按照原始数据的像素点间隔进行设置,否则会造成可视化结果的比例失调),以准确表达病例数据的规则拓扑结构。将vtkImageData的输出接入vtkContourFilter,使用MarchingCubes面绘制算法对骨组织表面进行三维可视化。如需进一步缩短可视化的响应时间,可使用vtkEx-tractVOI对原数据进行子区域抽取或(和)按直角坐标的3个[4]方向分别进行比例抽取,以减少数据量,但可能会损失一定的分辨率。上述预处理及可视化过程见图1中前3步所示。图1手术过程的事件传递流程4交互式手术的实现4.1两个基本问题交互式手术模拟主要是2个方面的问题[2]:手术工具的表达和对手术操作的响应。手术工具可以利用VTK的Widget[5]系列类来表达。Widget是指可放置于三维空间中的小器件,该系列类内建有VTK的Source、Filter、Mapper和Actor等,可以在三维空间中将[6]自身的位置、形状和状态以三维物体的形式直观显示出来。使用不同的Source可以使Widget在三维空间呈现不同的外观,以表达不同的手术工具。手术操作的响应可通过在手术工具上添加Observer的方法进行触发。VTK的Observer可译为观察者,它用于事件(Event)的拦截和响应的触发。使用Widget的AddObserver接口即可在手术工具上添加一个Observer,同时,指定该手术工具将拦截的事件和对应的响应。交互式手术过程中,医师会通过鼠标和键盘不断向系统发送操作事件。手术工具会拦截这些事件,并根据事件的不同改变自身的位置、外观和状态等。当手术工具拦截到的事件与Observer指定的事件相匹配时,该Observer就会触发对应的响应,使手术操作生效。4.2具体实现步骤本文构造一个三维平面作为切割平面(即手术刀)对病例的骨性组织进行切割。(1)使用vtkPlaneWidget构建该三维切割平面。vtkPlaneWidget在三维空间中显示为一个带方向箭头的网格状平面,其中,网格状平面表示该三维平面的当前位置,箭头的方向表示该平面的法线方向。我们通过拖动网格状平面的位置和箭头的方向来控制切割平面的位置和方向。(2)对vtkPlaneWidget添加Observer。使用vtkPlaneWid-get的AddObserver接口指定vtkPlaneWidget需要拦截的事件(如vtkCommand::InteractionEvent)和该事件对应的响应(本文将该响应的类命名为vtkPlaneCallback)。(3)构建vtkPlaneCallback,用于响应vtkPlaneWidget上Observer的调用,此处为仿真交互式手术刀的效果。当vtk-PlaneCallback被调用时,将自动获取切割平面的最新位置信息(即vtkPlaneWidget的当前位置),并触发对骨组织的切割操作。以vtkCommand为父类定义vtkPlaneCallback。因为需要自动获取切割平面的最新位置信息,所以在vtkPlaneCallback中添加成员函数vtkPlane*(指针)用于记录vtkPlaneWidget的平面位置。重写vtkPlaneCallback的Execute成员函数,在Execute函数中更新vtkPlane*。当vtkPlaneWidget的Observer调用vtkPlaneCallback时,即执行vtkPlaneCallback的Execute函数,获取切割平面的最新信息。(4)在VTK的VisualizationPipeline[6]中嵌入vtkClipPoly-Data类,该类可实现通过指定平面对病例数据进行切割。使用vtkClipPolyData的SetClipFunction函数,指定切割平面为vtkPlaneCallback中的vtkPlane*。当vtkPlaneCallback的Execute函数执行时,vtkPlane*信息的更新就会触发vtk-ClipPolyData对病例骨组织进行切割操作。图1描述了系统中数据的流向、手术事件传递的方向和如何触发切割操作。5截骨手术的仿真实现5.1截骨手术实现过程仿真实验数据来自一例患半侧颜面肥大综合症(即Stein-16医疗卫生装备?2008年5月第29卷第5期lVol.29No.5May2008ChineseMedicalEquipmentJourna?THESIS&RESEARCHREPORT研究论著er综合症)的男性患者。治疗方案通过2期手术实施[7]:第1期手术整复左侧面部骨性和肌性肥大,第2期手术纠正右侧面部发育不足。在第1期手术中,主要的一步是在切开病例软组织后使用电锯截除颧骨的下沿突起。利用前述方法,本实验模拟颧骨下缘突起的截除手术,模拟过程及结果如图2所示。(a)三维空间中可视化病例(b)激活vtkPlaneWidget(黑色数据集(左侧骨性肥大部分网格表示截骨面的位置,箭头以黑色圆圈圈出)表示截骨面的法线方向)(c)拖动vtkPlaneWidget(d)移除被截去的颧骨下至截骨位置,进行切割沿突起。被截去的骨性组织用深黑色标识图2虚拟手术过程5.2响应时间本实验使用的计算机配置是:IntelPentiumD915(双核2.8GHz),1GB内存,ATIRadeonX1300显卡(256MB显存)。图2是没有使用vtkExtractVOI对原始数据进行抽取的仿真结果。在交互式手术过程中,当移动手术工具到达新位置时,截骨完成的平均响应时间为7.61s。为提高响应速度,表1给出了同样计算机配置下使用vtkExtractVOI对原始数据进行不同比例抽取后的可视化响应时间和截骨响应时间的比较。其中,vtkExtractVOI对规则三维标量数据场的抽取设置是按照三维直角坐标系的3个表1不同数据量下的可视化响应时间和截骨响应时间比较可视化的平均截骨的平均数据抽取比例体素总数/个响应时间/s响应时间/s原始数据量7707033622.207.611/8数据量963379213.403.251/27数据量285445611.151.381/64数据量12042248.44<1.00坐标方向分别进行的。为保证抽取后数据在3个方向上的比例一致,遂将3个方向上的数据抽取比例设为相同值。比如:z若设置x方向的抽取比例为1/2,则y、方向的抽取比例也设置为1/2,数据抽取的结果即为原始数据的1/8。5结论交互式手术模拟中,手术工具的三维表达和对三维手术操作的快速响应是系统实现的难点。本研究提出使用VTK的Widget类表示虚拟手术场景下的手术工具,通过在手术工具上添加Observer的方法绑定手术操作的事件和响应,并通过手术工具的状态改变触发响应。初步仿真实验证明该方法可行。构建的系统在普通计算机上运行,其可视化响应时间和交互操作的响应时间都较短,通过优化,可进一步满足手术计划系统实时性的要求。当前正在进行及下一步的工作包括:利用VTK的开源特性,增强交互模块在三维空间下的精确定位,添加更多的手术工具Widget表达,并根据模拟的手术方式不同加入更多的手术模拟操作和响应方式,以实现复杂颌面外科手术的实时交互仿真。[参考文献][1]RafaelCG,RichardEW.DigitalImageProcessing[M].2nded.北京:电子工业出版社,2002:595-612.[2]罗述谦,周果宏.医学图像处理与分析[M].北京:科学出版社,2003:220-239,369-371.[3]WilliamAH,LisaSA,BerkG,etal.FileFormatsforVTKVersion4.2[EB/OL].(2004-05-18)[2007-12-28].http://www.vtk.org/pdf/file-formats.pdf.[4]LisaSA,RustyB,BerkG,etal.TheVTKUser'sGuideVTK4.4[M].America:KitwareInc,2004:67,105-106.[5]KennethMM,WilliamAS,WilliamEL,etal.VTK5.0.2Doc-umentation[EB/OL].(2006-10-20)[2008-01-18].http://www.vtk.org/get-software.php.[6]WilliamJS,KennethMM,WilliamEL,etal.TheDesignandImplementationofanObject-OrientedToolkitfor3DGraphicsandVisualization[EB/OL].(2004-07-15)[2008-01-20].http://www.vtk.org/pdf/dioot.pdf.[7]封兴华,石照辉,陆斌,等.半侧颜面肥大综合症致面部严重畸形病例报告[J].中国美容医学,2006,15(5):599-600.医疗卫生装备?2008年5月第29卷第5期ChineseMedicalEquipmentJourna?lVol.29No.5May200817