开发自己的程序。
这需要对 VTK 和操作系统、编程环境本身有比较深入的了解,而这种了解对自行开发程序是十分必要的。
5 用 VTK 进行 CT 片三维重构 VTK 作为一种通用的可视化类库,在科学和工程界有着广泛的应用。
其中一种重要而常见的应用就是在医学领域,比如著名的“可视化人”项目,就有 VTK 的应用。
实际上,VTK 在医学方面的应用是是 VTK比较强调的,在它提供的例程应用中,就有专门的医学目录。
学习它们,并应用于我们的项目中,是一条合适的途径。
比如,如果要做一个 3D 的医学影像系统,其中重要的一个环节就是三维重构,这也是在全膝置换手术中需要的。
所以,用 VTK 进行 CT 片的三维重构,就是一个合适的应用的例子。
利用 VTK 做 CT 片的三维重构,从算法和数据结构来看,就是一个读取数据问题和一个图形显示问题。
对于我们手里的 CT 片,因为它们符合 DICOM 3.0 标准,所以对它们的读取还是相对容易的。
VTK已经实现了这类数据的读取,vtkImageSource 类的很多子类都可以完成这种工作,如 vtkImageReader 类 。
,或者 vtkVolumeReader 等 这样我们编程的时候只要指定必须的参数 就可以实现对单张 CT 片乃至 CT片序列的读取了。
根据 VTK 的数据管道,原始数据读取入了以后,就可以使用各种各种过滤器进行数据转换,在这个例子里,即进行表面抽取、影射,然后就可以绘制了。
因为是三维重建,所以还应该加入交互器,以便可以在绘制窗口里进行交互。
关于重建算法,对于 CT 片这种三维规则数据场,可以采取成熟、基本的算法来进行三维重建,比如 MarchingCubes 算法。
我们使用 Visual Studio 6.0 开发平台来完成上述的工作,使对 CT 片的读取、重建及显示、交互等功能融合到 MFC 的框架中,以便提供一个方便的用户接口。
具体的程序另件给出,各部分的功能可以参考注释。
参考文献 1.The Visualization Toolkit An Object-Oriented Approach To 3D Graphics 3rd edition 2.The Visualization Toolkit Users Guide 3.VTK 源码:http://www.vtk.org/get-software.php 4.VTK 电子文档:http://www.vtk.org/get-software.php 5.VTK 邮件列表:http://public.kitware.com/mailman/listinfo/vtkusers 6.http://digitalne.nju.edu.cn/new/course/vtk/index.htmVTK数据类型分为两种:vtk 是基于 C的库,自然是面向对象的库了 对象类型有两种 图形模型对象the Graphics Models 可视化模型对象the Visualization Models 整个图形模型主要分为九类对象: 1渲染控制器: 定义与设备无关的坐标计算方法 创建绘制窗口; 2渲染窗口RenderWindow:其基类为 vtkRenderWindow 管理显示设备上的窗口 一个或多个绘制方 法可在渲染窗口上创建一个场景。
渲染窗口是用户图形界面 其中包括 了设置渲染窗口的大小 产生立体显示效果等的方法 一共控制控制两个缓存; 3渲染器Renderer:基类为 vtkRenderer作用是管理光源、照相机和绘制对象等的位置、属性等 提供 世界坐标系 观察坐标系及显示坐标系之间的转换。
建立好一个 Renderer 后将其加入 RenderWindow中即可将场景显示出来; 4灯光 Light:VTK 中的实现类为 vtkLight 5照相机Camera: VTK 实现类为 vtkCamera 6角色Actor:vtkActor 代表渲染场景中的绘制对象实体通过参数的调节可以设置角色的位置方向渲染 特性Property引用renference纹理影射Texture等属性并可对 Actor 进行放缩。
角色 的改变是通过一个 44 的变换矩阵实现的; 7属性Property:实现类为 vtkProperty。
要使三维物体具有真实感 必须说明几何物体的一些特性例如 光照特性泛光漫反射镜面反射边缘颜色反射强度物体的灰度物体的绘制样式点 线框 表面 着色模式 flat Gouraud Phong等;VTK 中正是通过属性模型来对其进行说明的; 8映射Mapper:vtkMapper 指定了渲染数据和图形库中基本图元之间的联系。
VtkMapper 的一些派生 类通过 LookupTable 映射数据并控制图形库中相应 Actor 图元的生成。
一个或多个 Act or可以使用相同的 Mapper。
Mapper 有多个参数对其进行控制 如 ScalarVisibility 标志 可以设置 scalar 的数据是否影响相关的 Actor 的颜色 ScalarMode 可以控制 Actor 的颜 色是 scalar point 还是 cell 的值;渲染方式可以通过 ImmediateModeRenderingOn和 ImmediateModeRenderingOff 控制 前一项表示立即渲染 后一 项表示将渲染放于渲染列表中 一般选择 ImmediateModeRenderingOn 方式进行 选择后者将会占用较多的系统资源 影响系统的性能; 9变换Transform:vtkTransform 是一个放置 44 变换矩阵的堆栈 可对这一堆栈进行各种操作 如:平 移 缩放 旋转等 一般在栈的顶部进行。
实现过程主要由渲染控制器创建渲染窗口由渲染器在渲染窗口上绘制场景。
场景包括绘制.
上一篇:
基于DCT的JPEG图像压缩及实现
下一篇:
法律专业开题报告范文