基于stl缺损模型的切割修整方法

文档序号:10713040阅读:566来源:国知局
基于stl缺损模型的切割修整方法
【专利摘要】本发明提供一种基于STL缺损模型的切割修整方法,所述基于STL缺损模型的切割修整方法包括以下步骤:步骤一,读入缺损骨模型的CT数据;步骤二,对CT数据三维重建;步骤三,基于VTK的三维模型切割修整。本发明可用于提供缺损形状规则的STL模型,用于生物3D打印骨缺损修复体的制造。
【专利说明】
基于STL缺损模型的切割修整方法
技术领域
[0001 ] 本发明专利涉及一种基于STL(stereolithography的缩写,光固化立体造型术)缺损模型的切割修整方法,其可用于提供缺损形状规则的STL模型,用于生物3D打印骨缺损修复体的制造。【背景技术】
[0002]由于自然灾害、交通事故等因素,世界上每年都会有很多骨缺损患者在遭受痛苦, 他们急迫需要进行骨组织修复,以改善生活质量。随着医学图像处理系统和快速成型技术的发展,将医学图像处理技术同快速成型技术结合起来进行骨缺损修复的方法越来越为广大医疗工作者所采用。即首先对病人缺损部位附近组织进行CT图像断层扫描,然后利用医学图像处理系统重建患者缺损部位三维模型,再采用快速成型设备获取物理模型,最后根据此物理模型进行缺损骨修复体模型的手工制作。采用这样的方法可以避免病人的二次手术,减少多次手术对病人的损伤。
[0003]但是骨缺损STL模型轮廓常出现破损的、不规则的三角网格,现有的生物3D打印无法打印出符合这种缺损的物理模型。修复者需要手动修整这些缺损轮廓周围的尖锐部分, 因此需要对STL模型进行修整,获得可进行加工的三维模型。
【发明内容】

[0004]本发明的具体目的在于针对已有技术存在的不足,提供一种基于STL缺损模型的切割修整方法,其可用于提供缺损形状规则的STL模型,用于生物3D打印骨缺损修复体的制造。
[0005]本发明是通过下述技术方案来达到上述目的的:一种基于STL缺损模型的切割修整方法,其特征在于:所述基于STL缺损模型的切割修整方法包括以下步骤:步骤一,读入缺损骨模型的CT数据;步骤二,对CT数据三维重建;步骤三,基于VTK的三维模型切割修整。
[0006]优选地,所述步骤一采用MITK实现了对CT数据的读写。
[0007]优选地,所述步骤二包括以下步骤:步骤二十一,输入医学影像的二维断层序列;步骤二十二,将三维离散规则数据场分层读入;步骤二十三,遍历两层数据,逐个构造体素,每个体素中的8个交点取自相邻的两层; 步骤二十四,将体素每个角点的数据与给定的等值面值进行比较,根据比较结果,构造该体素的索引表;步骤二十五,根据索引表得到与等值面有交点的边界体素;步骤二十六,通过线性插值插值方法计算出体素棱边与等值面的交点;步骤二十七,求出体素各个角点的法向量,再通过线性插值方法,求出三角面片各顶点处的法向量;步骤二十八,根据各三角面片各顶点的坐标及法向量绘制等值面;步骤二十九,输出STL文件。
[0008]优选地,所述步骤三包括以下步骤:步骤三i^一,读取一个三维模型的切割工具;步骤三十二,建立Translate函数、Rotate函数、Scale函数,实现作为切割工具的圆柱体的平移、旋转以及放大缩小操作;步骤三十三,进行布尔差运算,即用原始的三维模型数据减去作为切割工具的圆柱体的三维模型数据;步骤三十四,即用原始的三维模型数据减去作为切割工具的圆柱体的三维模型数据; 步骤三十五,调整所得三维图形的颜色以及透明度等属性;步骤三十六,渲染所得的三维模型数据,得到切割修整后的模型。
[0009]优选地,所述的步骤三利用VTK中的布尔运算来实现其切割功能。
[0010]本发明的积极进步效果在于:本发明首次提出利用模型刀具对模型进行切割修复的概念,为生物3D打印提供可加工的三维模型。采用人机交互操作,操作简便,易成功,大大提高了工作效率。【附图说明】
[0011]图1是VTK数据处理流程图。[〇〇12]图2是切割修整流程图。[〇〇13]图3是读入CT数据界面图。[〇〇14] 图4(a)、图4(b)、图4(c)、图4(d)是医学图像三维重建界面图。
[0015]图5(a)和图5(b)是切割修整后的模型和原模型的对比图。【具体实施方式】
[0016]下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
[0017]本发明基于STL缺损模型的切割修整方法包括以下步骤:步骤一,读入缺损骨模型的CT数据CT数据以DIC0M格式存储,DIC0M文件具体由文件头以及数据集组成。利用MITK (Medical Imaging ToolKit,医学影像开发包)实现了对CT数据的读写。在MITK中,图像文件的读写操作都进行了模块化的封装,并且还为用户提供了简便的接口,方便用户使用。 MITK中完成DIC0M文件的读写功能所自定义的类为mitkDICOMReader以及 mitkDICOMffriter,其主要是将实现DIC0M文件的读写功能的数据结构以及算法提取出来作为一个独立的部分,从而面向用户提供DIC0M文件的读写功能。
[0018]步骤二,对CT数据三维重建步骤二利用基于表面的三维重建方法MC(Marching Cubes)算法实现对CT数据的三维重建,其基本思想是逐个对数据场中的立方体体素处理,来分类出与等值面相交的立方体, 并且采用线性插值计算出立方体的边与等值面的交点。根据立方体每一个顶点与等值面的相对位置,将立方体的边与等值面的交点按一定方式连接生成等值面作为等值面在该立方体内的一个逼近表不。
[0019]三维重建方法包括以下过程:首先对表面轮廓数据进行获取,调用MITK开发包封装的mitkMarchingCubes类来实现MC算法,根据需要重建的组织来设置高低阀值,从而在存储体数据的mitkVolume类的一个对象之中提取等值面的三角网格,并且把它存储mitkMesh 类的一个对象中。其次设置面绘制的属性,调用MitkModel的子类MitkSurfaceModel来控制面绘制的材质属性。最后显示三维模型,调用MitkView类来控制三维模型的显示,通过该类提供的接口可以设置显示窗口的大小背景颜色等属性。
[0020]所述步骤二包括以下步骤:步骤二十一,输入医学影像的二维断层序列;步骤二十二,将三维离散规则数据场分层读入;步骤二十三,遍历两层数据,逐个构造体素,每个体素中的8个交点取自相邻的两层;步骤二十四,将体素每个角点的数据与给定的等值面值进行比较,根据比较结果,构造该体素的索引表;步骤二十五,根据索引表得到与等值面有交点的边界体素;步骤二十六,通过线性插值插值方法计算出体素棱边与等值面的交点;步骤二十七,求出体素各个角点的法向量,再通过线性插值方法,求出三角面片各顶点处的法向量;步骤二十八,根据各三角面片各顶点的坐标及法向量绘制等值面;步骤二十九,输出 STL文件。[〇〇21] 步骤三,基于VTK的三维模型切割修整VTK(Visualizat1n Toolkit)是由美国著名的Kitware公司开发的一个开放源代码的自由软件,在Will Schroeder等人于1993年在已有的相关研究成果基础上,利用面向对象的建模技术,设计和实现的三维可视化工具箱。利用VTK进行可视化应用是非常方便的。它包括两个基本部分:首先,建立适当的目标图形来演示数据;其次,建立一个数据流水线 (Data Pipe line)来处理数据,建立流水线(Pipe line)就是将vtkSource、vtkFi Iters和 vtkMappers连接起来,如图1所示为VTK数据处理流水线图,vtkSources提供获取VTK数据的方法;vtkFilters接收vtkSource中的数据,进行各种不同的数据处理工作,vtkFilters为 VTK的主要部件,实现了许多图形学算法;vtkMappers将输入数据解释为图形元素; vtkActors可用于调整图形的颜色,透明度等显示属性;vtkRenderers实现对图形元素进行渲染。
[0022]本发明利用VTK中的布尔运算来实现其切割功能,具体流程如图2,分为以下几个步骤:一,生成vtkSTLReader类,用来读取一个小圆柱体作为三维模型的切割工具。二,再生成vtkTransform类,利用其中的Translate()、Rotate()、Scale()函数实现作为切割工具的圆柱体的平移、旋转以及放大缩小操作。三,生成booleanOperat1n类,利用其中的 SetOpera1nToDifference()函数实现布尔差运算,S卩用原始的三维模型数据减去作为切割工具的圆柱体的三维模型数据。四,通过booleanOperat1nMapper类,将经过布尔运算后所得的数据映射到图形元素中。五,生成booleanOperat1nActor类,来调整所得三维图形的颜色以及透明度等属性。六,最后再通过Renderer将所得的三维模型数据进行渲染,得到切割修整后的模型。[〇〇23] 所述步骤三包括以下步骤:步骤三^^一,读取一个三维模型的切割工具;步骤三十二,建立Translate函数、Rotate函数、Scale函数,实现作为切割工具的圆柱体的平移、旋转以及放大缩小操作;步骤三十三,进行布尔差运算,即用原始的三维模型数据减去作为切割工具的圆柱体的三维模型数据;步骤三十四,即用原始的三维模型数据减去作为切割工具的圆柱体的三维模型数据;步骤三十五,调整所得三维图形的颜色以及透明度等属性;步骤三十六,渲染所得的三维模型数据,得到切割修整后的模型。
[0024]本发明利用VTK中的布尔运算来实现切割功能,导入一个模型作为刀具和需要修复的三维模型做布尔差运算,通过键盘的向键移动刀具切割模型。本发明首先读入缺损骨模型的CT数据,然后将其三维重建为STL模型,利用VTK中的布尔运算来实现其切割功能,保存切割后的模型,获取缺损模型,最后利用快速成型装备制作修复体物理模型。[〇〇25]图3中,点击菜单栏中的“打开”,导入一个CT数据的DIC0M文件,医学影像数据的浏览模块可以实现医学影像包括灰度值等的显示、DIC0M的Tag信息的浏览。按住鼠标左键移动鼠标可调整左侧Tag信息的浏览窗口的窗宽和窗位。[〇〇26]图4中,按照步骤一所述方法导入一序列的CT数据,点击工具栏的“三维重建”,弹出高低阈值设置窗口,设置好高低阈值,点击即可实现三维重建,重建的结果保存为STL文件。按住右键移动可以放大缩小模型,按住左键移动有旋转三维模型,按住中键可以平移三维模型。
[0027]本发明运用圆柱模型作为切割工具,对缺损骨模型进行切割,圆柱模型可进行旋转、平移、放大、缩小等交互操作。其中在操作界面中,键盘右下角数字键4和6控制X方向移动;数字键2和8控制Y方向移动;数字键0和5控制Z方向移动;F1控制圆柱沿X轴旋转;F2控制圆柱沿Y轴旋转;F3控制圆柱沿Z轴旋转。运用鼠标和键盘控制切割刀具,道具和模型重合的地方将被切掉。切割完之后可以将获得的模型保存为STL文件。
[0028]图5(a)和图5(b)是切割后的模型与原模型的对比图,可以看出切割后的模型形状更加规则,更适用于生物3D打印,为骨支架的制备成型提供计算机图形数据。
【主权项】
1.一种基于STL缺损模型的切割修整方法,其特征在于:所述基于STL缺损模型的切割 修整方法包括以下步骤:步骤一,读入缺损骨模型的CT数据;步骤二,对CT数据三维重建;步骤三,基于VTK的三维模型切割修整。2.如权利要求1所述的基于STL缺损模型的切割修整方法,其特征在于:所述步骤一采 用MITK实现了对CT数据的读写。3.如权利要求1或2中所述的基于STL缺损模型的切割修整方法,其特征在于:所述步骤 二包括以下步骤:步骤二十一,输入医学影像的二维断层序列;步骤二十二,将三维离散规则数据场分层读入;步骤二十三,遍历两层数据,逐个构造体素,每个体素中的8个交点取自相邻的两层; 步骤二十四,将体素每个角点的数据与给定的等值面值进行比较,根据比较结果,构造 该体素的索引表;步骤二十五,根据索引表得到与等值面有交点的边界体素;步骤二十六,通过线性插值插值方法计算出体素棱边与等值面的交点;步骤二十七,求出体素各个角点的法向量,再通过线性插值方法,求出三角面片各顶点 处的法向量;步骤二十八,根据各三角面片各顶点的坐标及法向量绘制等值面;步骤二十九,输出STL文件。4.如权利要求1或2中所述的基于STL缺损模型的切割修整方法,其特征在于:所述步骤 三包括以下步骤:步骤三i^一,读取一个三维模型的切割工具;步骤三十二,建立Translate函数、Rotate函数、Scale函数,实现作为切割工具的圆柱 体的平移、旋转以及放大缩小操作;步骤三十三,进行布尔差运算,即用原始的三维模型数据减去作为切割工具的圆柱体 的三维模型数据;步骤三十四,即用原始的三维模型数据减去作为切割工具的圆柱体的三维模型数据; 步骤三十五,调整所得三维图形的颜色以及透明度等属性;步骤三十六,渲染所得的三维模型数据,得到切割修整后的模型。5.如权利要求1或2所述的基于STL缺损模型的切割修整方法,其特征在于:所述步骤三 利用VTK中的布尔运算来实现其切割功能。
【文档编号】G06T19/20GK106097457SQ201610406581
【公开日】2016年11月9日
【申请日】2016年6月12日
【发明人】胡庆夕, 孙振林, 谢明亮, 刘媛媛, 鲁小保, 蒋维健
【申请人】上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1