谢 凯,卢光跃 (长江大学电子信息学院,湖北荆州434023)
整形外科手术难度高,危险性大,而且必须容貌与功能兼顾。整形外科对影像学提出了较高的要求,要求术前必须准确诊断,确定病变范围,提供三维立体视觉,显示复杂的空间结构,准确测量三维形态参数,设计手术路径和方案,模拟手术,预测手术对面容的影响等。为了满足整形外科的临床需求,CT三维重建辅助整形手术系统开始出现,它是最近的十多年间兴起的新兴交叉学科,一直是国内外研究与应用的热点[1~3]。
笔者对整复外科虚拟手术技术进行深入研究,提出了面向整复外科虚拟手术的三维切割模拟算法。
基于表面重建的三维切割模拟流程如图1所示。
图1 基于表面重建的三维切割模拟流程图
构造合适的切割体,如立方体、球、NURBS曲面等,将曲面放置在合适的切割位置上,得到曲面相对于模型的位置。根据选定的切割体和切割体与模型的相对位置,利用体数据空间隐函数来表达切割体。
在模型空间,用隐函数表示切割体。假设表示切割体的隐函数为f(X),其中X=(x,y,z)T为模型空间中的坐标,那么P={X|f(X)=0}表示切割体表面上的所有点的集合;P={X|f(X)>0}表示切割体内部的所有点的集合;P={X|f(X)<0}表示切割体外部所有点的集合。
得到切割体在模型空间的隐函数表达以后,必须将隐函数表达从模型空间转换为体数据空间。从体数据空间到模型空间经历了2次变换,第1次变换为缩放变换(由于体数据在x,y,z方向的间距不同),以恢复数据的原始比例,假设变换矩阵为:
式中,Xspacing、Yspacing、Zspacing为体数据在x,y,z方向上的网格间距。第2次变换为在模型空间的几何变换(旋转,平移变换),变换矩阵用Mg。假设体数据空间内坐标为 X′=(x′,y′,z′)T在模型空间的对应点的坐标为那么:
因此在体数据空间切割体对应的隐函数为:
如果切割体形状比较复杂,不能用单个函数表示,那么可以通过函数的组合表示,例如如果切割体为一个半球,就可以用一个完整的球和一个平面组合而成。下面给出一部分通用的隐函数组合规则。
假设有2个切割体在体数据空间可以用隐函数F1(X)和F2(X)表示。
切割体的交集为:
那么对应的隐函数为:
切割体的并集为:
对应的隐函数为:
切割体的补集为:
对应隐函数为F(X)=-F′(X)。
得到切割体在体数据空间的隐函数表达之后,利用已知的切割体隐函数处理原始体数据。对于体数据网格上的每一点计算隐函数的值,如果值小于0,那么该点位于切割体的外部,如果值大于0,那么该点位于切割体的内部,根据隐函数的值判断当前点是否应该被切除。如果当前点应当被切除,那么将该点的值设为数据允许的最小值,否则保留原来的数值。这样就可以把需要的体数据部分保留了下来。
利用表面重建算法[4],从处理过的体数据重建等值面[5~6],然后采用合适光照模型就可以得到切割后的效果图。
图2 三维整形手术模拟平台
颅面部结构复杂,是多个重要器官集中区,同时又关系到容貌,涉及颅面部的外科手术难度高,危险性大,而且必须容貌与功能兼顾。颅面部整形外科对影像学提出了较高的要求,要求术前必须准确诊断,确定病变范围,提供三维立体视觉,显示复杂的空间结构,准确测量三维形态参数,设计手术路径和方案,模拟手术,预测手术对面容的影响等。基于CT图像的三维手术模拟是当今的一大热点,因为它克服了以前方法的局限性。以人机交互方式即利用鼠标移动截骨块,截骨块可在三维坐标方向上同时进行移动和旋转,系统可以自动输出相应截骨块在三维方向变化的数据 (见图2)。
该系统采用基于CT图像的三维手术模拟,系统平台采用Visual C++6.0来实现,用到了Pixel Shader 2.0[7~8],在配有Pentium4 2.4GHz CPU、NVIDIA Geforce 6600显卡 (128M)的PC机上进行测试。手术模拟是在接近真实解剖形态的立体模型上施行,截骨手术模拟与实际手术操作大致相同。根据测量诊断结果选择整形模式,并预设截骨段在三维轴向上的移动距离和旋转的角度。系统即按预设参数自动模拟经典的颅面外科截骨整形手术。
下面利用一个眶距增宽症的病例说明三维整形手术模拟平台的应用。
眶距增宽症 (orbital hypertelorism)是一种严重的颅面部畸形,矫形手术是唯一的治疗方法。截骨方式如图3(a)和图3(b),矫正后患者内侧眶距为20mm。
图3 截骨前(a)与截骨整形后(b)的颅骨示意
在己经建立的三维颅面模型的基础上,进行颅面三维截骨手术的模拟。考虑患者的畸形特征,由医生根据测量的数据和临床经验进行模拟手术方案设计。患者颅面图像显示于图像终端,操作者按手术类型选取标志点,划出截骨线,位于截骨线上的所有边界像素构成 “切割线”输入并存储于系统;所有边界像素均予以标记,使 “截骨段”由边界像素切割线界定为独立、有确定大小和厚度的多面体操作块。该切割线的所有轮廓点都经过世界坐标到屏幕坐标的转换并标记到头颅图像上,轮廓线不连续之处则予以插值。通过设定骨块的参数,可以将骨块移动到任何预定位置,如果效果不满意可以重复操作,直到满意为止。
与上海第九医院合作,对眶距增宽症的三维截骨手术进行了模拟,眶距增宽症的三维截骨手术模拟示意图如图4所示。从术前骨组织畸形情况,可以看到患者眶间、鼻骨、梨状骨中央广泛骨组织增生,眶间距49.06mm(正常人不超过28mm);另外,此患者两侧眶向外、向后、向下扭转,眶横径与标准平面夹角分别为-0.8°和-1.5°(正常人为+4~+8°)。因此,手术的目的就在于截除中央多余的骨质,并将两侧眶扭转回正常形态。图4(b)中将眶周分为3块,中间部分拿下来另外用。图4(c)把中间那块骨头纵向劈开。图4(d)把两侧的骨块移动到中间,中间劈开的骨头,垫在两边的眼眶和颧骨、残余的眶外侧缘之间,这样就基本上完成设计了。图5为眶距增宽症矫正手术前后病人的正面图和侧面图,可以看到患者的外观得到了极大的改善。
图4 眶距增宽症三维截骨手术模拟示意图
图5 眶距增宽症矫正示意图
笔者提出了一种基于表面重建的三维医学切割模拟方法,并在该方法的基础上设计并实现了三维整形手术模拟平台,该平台包含基于表面重建的三维切割模拟、三维移动造型、三维标定测量等功能。实际病例表明,该平台能够有效的完成整形手术规划、模拟等功能,有着极大的医学实用价值。利用该系统成功对眶距增宽症的三维截骨手术进行了模拟,也可以很方便的进行颅面部其它虚拟手术,可对任意部位随意进行切割、分离、移动等操作,并可将不同的部分进行伪彩色染色。所有操作均可交互式反复进行。并且可以将虚拟手术过程以动画和视频的形式供医生或病人及其家属观看。
[1]Durst M J.Letters:Additional Reference to Marching Cubes[J].Computer Graphics,1988,22(2):72~73.
[2]Lorensen W,Chine H E.Marching Cubes:A high resolution 3D surface construction alg orithm[J].Computer Graphics,1987,21(4),163~169.
[3]Xie Kai,Yang Jie,Zhu Y M.Interactive volume cutting of medical data[J].Computers in Biology and Medicine,2007,37(8),1155~1159.
[4]Xie Kai,Yang Jie.Real-time and Precise Collision Detection based on Surgery Simulation[J].Lecture Notes in Computer Science,2006,4091:164~170.
[5]Xie Kai,Yang Jie,Zhu Y M.Real-time rendering of 3D medical data sets[J].Future Generation Computer Sy stems,2005,21(4):573~581.
[6]Xie Kai,Yang Jie,Zhu Y M.Real-time visualization of large volume datasets on standard PC hardware[J].Computer Methods and Programs in Biomedicine,2008,90(2):117~123.
[7]Kessenich J,Baldwin D,Rost R.T he OpenGL shading language[EB/O L].http://www.opengl.org,2004.
[8]Fernando R,Kilgard M.The Cg Tutorial-The Definitive Guide to Programmable Real-Time Graphics[M].Addison Wesley,2003.