基于ITK平台的医学图像分割算法比较与分析(4)
时间:2017-04-22 16:38 来源:毕业论文 作者:毕业论文 点击:次
强烈的需求 , 但是由于对医学影像处理程序的开发并不熟悉 , 因此会遇到许多的困难。 如果能有一个专门的医学影像软件平台 , 尤其是底层的算法研发平台 , 能够简化医学影 像程序的开发 , 将会极大的提高工作效率 。 ITK(The Insight Toolkit) 是一个开放的 、 面向 对象的类库。它提供了强大的二文医学图像处理功能 , 主要用于医学图像的预处理 、 分 割及配准。本科毕业设计说明书 ( 论文 ) 本文介绍的 ITK 是一个用于医学图像分割与配准的开放源码的软件开发包 [5] 。 它 提供了一些主流算法 , 如区域增长 、 阈值分割 、 基于分水岭的分割 、 Fast Marching 算法 、 Level Set( 水平集 ) 等多种分割方法 , 并将这些用于医学图像处理的算法和程序的开发过 程屏蔽起来。以类库的形式给我们的开发工作以直接的支持 , 大大的简化了开发工作 , 并且提高了开发效率。 1.3.1 ITK 平台的核心概念 ITK 是医学影像分割与配准算法的研发平台 , 是一个开放源码 、 面向对象的软件 系统 , 它里面有大量的文件和实例帮助使用 ; 在这里我们主要用所学的计算机编程语 言即 Visual C++; 另外的 CMake 可以使 ITK 跨平台工作 , CMake 是一个跨平台 、 开放 源码的安装(编译)过程。 ITK 本身只是一个算法研究平台 , 所以安装之后并不能运行任何应用 。 平台由许 多子系统组成,围绕一些核心设计概念创建,主要包括:范型编程、内存管理指针 、 数据处理管道和多线程等 。 下面主要介绍范型编程 、 事件处理和数据处理管道三个概 念 [5] : 1 、范型编程:范型编程是一种由一般的或可再度使用的软件成员来组织类库的 编程技术 。 其目的是以一种有效的 、 可适应的方式来使得软件具有 “ plugging together ” 的能力 , 即保持数据的容器 、 储存数据的迭代器以及范型算法使用容器和迭代器来创 建有效的基本算法,在 C++ 中使用的模板编程机制和 STL 标准模板类库来实现的。 2 、事件处理: ITK 中的事件处理使用 Subject/Observer 设计模式来执行。在这一 方式中 , 对象通过注册它们正在观察的实例 , 来关注这个特定实例所发生的一个特定 的事件。例如, ITK 中的滤波器周期性地调用 itk : : ProgressEvent 。当事件发生时对 象已经记录下这一事件中通报的信息 。 在记录过程中 , 通过调用一个命令来发出信息 (如函数回收、方法调用等 ) 。当事件发生时,所有注册观察者经过调用相应 的 Command : : Execute ()方式来通知。 3 、数据处理管道:数据对象(例如图像和网格)是用来代表数据的,过程对象 就是用来操作数据对象并产生新的数据对象的类 。 数据处理管道连接了数据对象和过 程对象 。 管道支持一个自动更新机制 。 该机制在当且仅当它的输入或内在状态改变时 才会唤起一个滤波器来运行 。 另外 , 数据管道还支持 streaming , 可以自动将数据分成许多小部分, 对这些小部分进行逐一处理,并重新集合处理后的数据产生最终结果 。 通过使用 SetInput ()和 GetOutput ()方式连接数据对象和过程对象。 1.3.2 ITK 开源软件实验平台的搭建与使用 前文已述 ITK 只是一个算法平台 , 使用 C m ake 可以使 ITK 实际运行应用 。 C m ak e 是一个跨平台 、 开放源码的安装 ( 编译 ) 工具 , 可以使用简单的语言来描述所有平台 的安装 ( 编译 ) 过程 。 C m ak e 可以输 出 UNI X 和 Cygwi n 系统下 的 MakeFile s 和 Window s (责任编辑:qin) |