基于VTK的恒牙三维重建_第1页
基于VTK的恒牙三维重建_第2页
基于VTK的恒牙三维重建_第3页
基于VTK的恒牙三维重建_第4页
基于VTK的恒牙三维重建_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 32卷 第 6期武汉理工大学学报 # 信息与管理工程版V o .l 32 N o. 62010年 12月JOURNAL OF WUT ( IN FORM AT ION & MANAGEM ENT ENG INEER ING )D ec. 2010文章编号: 1007- 144X ( 2010) 06- 0918- 04文献标志码: A基于 VTK 的恒牙三维重建冷 栋1, 周廷美1, 杨 俊2( 1. 武汉理工大学机电工程学院, 湖北武汉 ; 2. 武汉大学口腔医院, 湖北武汉 )摘 要: 三维重建是计算机图形学的一个重要研究领域。针对牙体形态的测量问题, 研究了恒牙的三维重建,采用面绘制

2、的方法, 构建了恒牙的三维可视化模型。借助三维可视化工具包 VTK 的强大功能, 在 V S2008的编程环境中, 使用轮廓拼接法, 完成了单颗恒牙的三维重建。关键词: 三维重建; VTK; 轮廓拼接法中图分类号: TP391. 7DO :I 10. 3963 /.j issn. 1007- 144X. 2010. 06. 016近年来, 具有无损、空间分辨率高 ( 达到微米数量级 ) 等优点的显微 CT 技术逐渐应用于实验牙髓病学领域。其以优质的断层图像, 为准确真实的三维重建提供了保证, 使得在三维重建图形上进行定点测量成为可能, 被誉为牙髓病学研究 / 金标准 0。三维重建是计算机可视化

3、的重要研究领域之一 1 。国外学者在这方面已经做了许多研究, LORENSEN 等 2 提出了 MC ( m arching cube) 算法; N IELSON 等 3 提出了 MT ( m arching tetrahedra) 算法; LIN 4 采用从轮廓出发的 B 样条插值重建算法, 得到了整体光滑的表面。国内也有许多学者作了很多有益的探索。西北工业大学谢红研究了用于自由曲面的基于面片拼接的三角曲面模型重建算法 5 。三维重建的方法一般划分为面绘制和体绘制两大类。面绘制因绘制速度快于体绘制而在实际应用中采用较广。1VTK 简介VTK( v isualization too lk it

4、) 是一个用于科学计算的可视化工具包, 可用于医学图像可视化的 C + + 类库, 在处理 CT 扫描数据方面具有强大的功能 6- 8 。VTK 在可视化算法、可移植性、可扩充性等方面都有着独特之处, 其主要采用管道路径体系结构, 在流水线的体系结构上设置了面绘制和体绘制两种绘制流程, 并分别采用相应的可视化算法。VTK最显著的特点就是管道化, 即一个VTK程序就是一个完整的渲染管道, 渲染管道的前段称为可视化模型管道, 由数据源、读取器和过滤器等部分组成。如在制作某些渲染节目时, 渲染管道的后段为图形模型管道, 由演员、光线、照相机、属性、映射器、绘制器和绘制窗口等组成, 利用渲染管道 VT

5、K可完成点线面的三维重建 9 。由于 VTK 功能强大, 目前已经广泛应用于可视化的各个领域。加州大学伯克利分校利用VTK开发了一个系统进行医学领域研究的实时仿真及可视化系统; 斯坦福大学利用 VTK 开发了一个用于教学的虚拟动物资源库, 学生能通过该资源库系统去探索这些动物的内部结构, 从而取代传统的动物实验 10 。在国内, VTK则被广泛应用于医学领域的 CT 三维重建以及模拟手术。2 恒牙的三维重建2. 1 恒牙三维重建的流程及体数据的获取采用 VTK 进行恒牙三维重建的流程如图 1图 1 采用 VTK 进行恒牙三维重建的流程图收稿日期: 2010 - 09- 09.作者简介: 冷 栋

6、 ( 1985- ), 男, 湖北武汉人, 武汉理工大学机电工程学院硕士研究生.第 32卷 第 6期冷 栋, 等: 基于 VTK 的恒牙三维重建919所示。重建的第一步是读取断层图片数据, 并将其转换为开发工具 VTK 所支持的一种数据表达形式; 然后根据其物理结构建立起相应的模型 ( CT 数据建立的是比较抽象的等值面模型 ); 最后将物理组件与抽象的模型结合在一起, 建立 CT 数据的可视化界面, 以帮助用户正确理解图像数据。待处理的是结构点阵数据, 其拓扑和几何都是隐含的, 因此只需要知道数据的维数、数据源和数据空间, 并输入读取数据对象的 CT 数据的一些参数, 如图片之间的间距、图片

7、上像素之间的间距以及所读取图片的起始片, 如从第 1张图片到第 100张图片等。读者便可以利用 VTK 中的 v tk-BMPR eader很方便地读取 CT 图片数据, 读取数据的代码如下所示:vtkBM PReader * bm preader = v tkBM PRead-er: : New ( ); / /创建一个读取对象。bm preader- SetF ilePrefix ( E: tooth 1 a ); / /设置读取路径, 文件名为 a。bmpreader- SetFilePattern( % s% d. bmp ); / /系列断层图片后缀为. bm p。bm preade

8、r - SetDataScalarTypeToUnsigned-Char ( );bm preader- SetD ataByteO rderToL ittleEndian( );bm preader- A llow8B itBMPOn ( ); / /读取 8位的系列断层 BM P 图片。 bm preader- SetF ileN am eSliceO ffset( 0. 037);/ /系列 CT 断层图片层间距为 0. 037。bm preader- SetF ileN am eSliceSpacing( 1); / /连续读取系列断层图片。bmpreader- SetNumberO

9、fSca larCom ponents( 3); / /设置为三维体数据。bm preader- SetDataSpacing( 3. 2, 3. 2, 3. 2); bm preader- SetDataO rig in( 0. 0, 0. 0, 0. 0);/ /设置原点位置在原点。 bm preader- SetDataExtent( 0, 900, 0, 900,1, 864); / /设置阈值与图片起始序号。bm preader- Update( ) 。2. 2 体数据预处理由于 CT 断层图片中包含了噪声信号, 这些噪声信号在生成体数据过程中得以保留, 从而严重影响了三维重建效果。

10、体数据中噪声信号影响反求建模得到的表面模型质量, 因此必须对体数据进行数据处理, 以使表面模型变得光滑、真实 11 。笔者采用高斯滤波器去除体数据噪声。高斯滤波实质上是一种信号滤波器, 其用途是信号的平滑处理。用于后期应用的数字图像, 其噪声是最大的问题, 由于误差会累计传递等原因, 前期的处理不当往往会造成后期图像的失真, 因此很多时候需要用高斯滤波器对图像进行处理, 以得到信噪比 SNR较高的图像 ( 反映真实信号 )。与此相关的高斯拉普拉斯变换, 是为了得到较好的图像边缘, 即先对图像做高斯平滑滤波, 剔除噪声,然后求二阶导数, 用二阶导数的过零点确定边缘。滤波器通过建立数学模型, 将图

11、像数据进行能量转化, 能量低的就会被排除掉, 噪声属于低能量部分从而被剔除。编程运算是一个模板运算, 以图像的八连通区域为例, 中间点的像素值就等于八连通区的像素值的均值, 这样可达到平滑的效果,采用高斯滤波器, 系统函数是平滑的, 从而可避免振铃现象。高斯模板是通过采样二维高斯函数得到的,如式 ( 1) 所示:122G ( x, y ) =exp- x + y=2PR22R211exp-x2exp-y2( 1)222PR2R2PR2PR高斯滤波器是最常用的低通平滑滤波器, 然而在高斯平滑过程中, 去除高频噪声的同时也会对图像边沿产生影响, 丢失边缘的某些细节, 因此标准差 R 不能太大, 也

12、不能太小。太大会破坏图像的真实性, 计算量变大, 影响重建速度; 太小则无法去掉体数据中的大量噪声信号。同时由于体数据是三维的, 因而需要设置 3个方向的标准差。经过多次实验, R = 1. 5是比较合适的。高斯滤波代码如下:vtkIm ageGaussianSm ooth * sm oo th =vtkIm-ageGaussianSm oo th: : N ew ( );sm ooth - SetInput( ( vtkDataOb ject*) bm-preader- GetOu tput( ) ); / /读入体数据。sm ooth- SetD mi ensiona lity( 3);/

13、 /设置为三维高斯滤波。smooth- SetStandardDev iations( 1.5, 1. 5,1. 5);/ /设置 3个方向的标准差均为 1. 5。2.3表面重构2.3.1 轮廓拼接法重建在计算机图形学领域, 面绘制算法发展到今天已经相当成熟。该算法将感兴趣的部分以等值面的方式抽取出来, 通过变换光照效果生成高质920武汉理工大学学报# 信息与管理工程版2010年 12月量的三维图像, 并可以方便地对其进行观察和分析。面绘制方法实质是在等值面抽取过程中设置阈值, 再根据阈值对体数据逐个处理, 生成数据量极大的三角面片, 然后利用三角面片构造物体的表面模型。轮廓拼接法是最早用于进

14、行表面绘制的方法, 它首先将每张图片的轮廓提取出来, 然后以提取后的轮廓点为顶点, 并以三角形的形式将每张图片的轮廓线连接起来, 从而拼接出物体表面 12 。该方法较适用于断层扫描数据且断层间等值面变化较小或大致相似的情况。2. 3. 2轮廓拼接法算法轮廓拼接法建模依照给定的阈值从断层图像中逐一提取闭合的边界轮廓线, 然后将相邻切片的等值线相连接, 从而形成曲面网格逼近等值表面。这个过程对相邻断层图像而言是独立的。轮廓拼接法最为关键的一步是在相邻断层图像之间按照一定规则, 建立插值点对。在图 2中, 假设相邻两断层图像中对应轮廓特征点集分别为:A = A j0 j m 和 B = B i0 i

15、 n 其中: m 3, n 3, 且轮廓线上的点按逆时针顺排列; A 为上轮廓 Ca 的点集; B 为下轮廓 Cb 的点集; m 和 n 相差不应太大。图 2 在相邻的切片间建立插值点对通过对应轮廓间建立插值点对, 绘制三角形面片, 在轮廓 Ca 和轮廓 Cb 之间建立一个类圆柱表面。为了利用基本三角面片来构造实体的表面, 采用如下方式进行拼接: 首先, 在轮廓 Ca 上选取一点 A j, 令 j = 0, j + 1= 1, 依次顺延, 然后在轮廓 Cb 上选取与 A 0 距离之和最短的两个点 B i、Bi+ 1, 连接 A 0B i、A 0Bi+ 1、B iBi+ 1, 构成一个基本三角面

16、片 (A 0、Bi、B i+ 1 ), 再以 B i+ 1为起始点, 在轮廓 Ca 上寻找除已经找到的点以外与之距离最短的点 A 1, 分别连接 3 个点构成三角面片 ( A 0、A 1、Bi+ 1 ), 接着以 A 1 为起始点在轮廓 Cb 上寻找除已经找到的点以外与之距离最短的点, 这样循环进行, 直到对应轮廓上所有的点都被遍历过一遍。2. 3. 3轮廓拼接法代码轮廓拼接法代码如下: vtkC ontourF ilter* skinEx tractor= vtkContourF-ilter: : N ew ( ); / /实例化一个对象。 sk inEx tractor- SetInput

17、Connection( bmpread-er- GetOutputPort( ) ); / /读入体数据。sk inExtractor- SetV alue ( 0, 100); / /设置轮廓线提取阈值为 100, 以便提取断层图像轮廓线,进而得到轮廓点数据。vtkPo lyDataNorm als * sk inNo rm als= vtkPo ly-DataNorm als: : N ew ( );sk inNorm als- SetInputConnection( skinExtractor - GetOutputPort( ) ); / /输入轮廓点数据, 进行构造等值面。sk in

18、No rm a ls- SetFeatureAng le( 60. 0)。2. 4 绘制与显示通过上面的程序代码, 基本可以完成三维表面重建, 三维重建结果显示的部分代码如下: vtkRenderer* aRenderer=vtkRenderer: : New ( );/ /创建绘制者。 vtkRenderW indow * renW in = vtkRenderW in-dow: : N ew ( ); / /创建绘制窗口。 renW in - AddRenderer( aRenderer); / /将绘制者加入绘制窗口。 vtkActor* sk in= vtkActor: : N ew

19、( ); / /创建演员。sk in- SeMt apper( sk inM apper);vtkRenderW indow Interactor * iren = vtkR ende-rW indow Interactor: : New ( ); / /创建交互对象, 以便于交互操作, 如鼠标、键盘等。 iren- SetRenderW indow ( renW in);vtkPo lyDataM apper * skinM apper= v tkPolyD a-taM apper: : N ew ( ); / /创建映射对象。sk inM apper- SetInputConnection

20、 ( skinNor-m a ls- G etOutpu tPort( ) );sk inM apper- ScalarV isibilityO ff( ) 。重构的单颗恒牙的背面如图 3所示, 恒牙正面如图 4所示, 恒牙侧面如图 5所示。3 结论笔者使用轮廓拼接算法将 864张扫描精度为第 32卷 第 6期冷 栋, 等: 基于 VTK 的恒牙三维重建921图 3 恒牙背面图 4 恒牙正面图 5 恒牙侧面37Lm 的单颗恒牙的切片数据导入 VTK, 进而重建出建模精度较高的三维模型。通过三维可视化工具包 VTK 结合 V isua l S tudio 2008对单颗恒牙进行三维表面重建, 重

21、建结果清晰, 能很清楚地看到单颗恒牙的具体形态, 并能对重建结果进行交互操作, 如旋转、放大和缩小等, 为后续的实体建模奠定了坚实的基础。参考文献: 1刘志远, 郑永果. 基于 VTK 的医学图像三维重建 J. 信息技术与信息化, 2009, 33( 1): 59- 61. 2LORENSEN W E, CL INE H E. M arching cubes: a highreso lution 3D surface construction a lgorithms J. Com-puter G raphics, 1987, 21( 4):163- 169. 3N IELSON G M, SU

22、NG J. Interva l vo lum e tetrahedron iza-tion C / /P roceed ings o f the 8th IEEE V isualizationc97Conference. Phoenix: s. n. , 1997: 221- 228. 4L IN W C. A new surfaceinterpo lationtechnique for re-construction 3D objectsfrom ser ia lcro ss - sections J. Com pute r V ision &G raph Im age P rocess,

23、1989,48( 1): 124- 143. 5谢红. 基于 ICT 的 CAD 建模技术研究 D . 西安: 西北工业大学图书馆, 1997. 6RAYMOND C M, RYAN O. F luent VTK ex tractor C / /H PCM PU sers G roupCon ferenceIEEE. D enver:Co lo rado, 2006: 384- 388. 7CHENG WL, CHEN C X, Q IAN Z Y, et a.l R esea rchon m ed ica limage three d im ensiona l v isua lization

24、 sys-tem C/ / Inte r Con f Com p M ed Eng in IEEE. B eijing: s. n. ,2007: 919- 923. 8AGEENKO E, RU SSA G L. A v isualization too lkit fo rteaching,lea rning and exper im enta tion in im ag e pro-cessing C / /F rontiers Educ Conf IEEE. Indianapo lis: s. n. ,2005: 21- 26. 9SCHROEDER W, MART IN K, AV ILA L, et a.l The VTKusercs gu ideM . N ew Yo rk: K itw are Inc, 2000: 8- 40. 10吕维雪, 段会龙. 三维医学图像可视化及其应用M . 杭州: 浙江大学出版社, 2001:7- 32. 11 冈萨雷斯. 数字图像处理 M . 北京: 电子工业出版社, 2003: 75- 90. 12何奉道, 陈勇. 物体表面重建轮廓拼接的改进遗传算法 J. 西南交通大学学报

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论