ITK介绍

ITK: The Insight Segmentation and Registration Toolkit

一、ITK简介
    ITK是美国国家卫生院下属的国立医学图书馆开发的一款医学图像处理软件包, 是一个开源的软件,用于处理图像配准和分割的问题。 ITK是用C++实现的,能够跨平台,并用CMake来管理编译过程来保证编译过程独立于平台。除此以外,它还使用一种叫做卷的处理过程,来产生C++和 其他其他解释程序之间的接口,从而使得开发者能用各种不同的程序语言来开发。
    ITK的C++执行风格是基于广义(generic programming)编程,也就是说他使用的是模板来保证相同的代码能广泛的应用于任何类或者类型。这种C++模板的方式使得编码过程很高效,并且使 很多软件的问题在编译的时候就发现了,而不是在运行的时候。
    由于ITK 是一个开源的工程,因此来自世界各地的开发者都可以使用、调试、维护以及扩展这个软件。ITK使用一种叫做极限编程的思想来开发的。极限编程颠覆了传统软 件编程的思想,它采用不断同时反复的进行设计-执行-测试-发布的过程。极限编程的核心特征是交流和测试。
二、ITK简史
    在1999年,美国国立卫生研究院国立医学图书管授予表彰六位合作者在开发开源的图像配准和分割工具包做出的贡献。他们的工作最后成为大家公认的ITK, 并形成了最基本的Insight Software联盟。ITK的NIH/NLM 项目经理是Dr.Terry Yoo由他协调这六位最初的合作者组建Insight 联盟。这些联盟成员中有三位是商业合作者,有三位来自学术机构(南加州大学,田纳西大学,明尼苏达大学)。但直到2002年的时候第一个正式的公共ITK 发行版本出台。
三、ITK的配置
    ITK通过CMake来解决跨平台的编译问题,CMake能够控制软件编译的过程通过使用简单的平台和独立于编译器的配置文件,它能生成本地的 Makefile和工作空间从而用于你选择的编译环境。在UNIX和Cygwin系统中CMake产生Makefile文件而在Windows下生成 Visual Studio 工作空间以及为其它的像Borland的编译器生成适当的build file。
    运行CMake首先需要提供两部分信息:一是源代码所在的目录(ITK_SOURCE_DIR)、其次是将要生成的目标文件存放的路径 (ITK_BiNARY_DIR)。这两个信息就是所说的source directory和binary directory。推荐将这连个目录设置为不同,虽然两个目录一样照样可以编译。在Unix平台下,binary directory由用户创建,CMake由指向source directory的路径。比如:
mkdir Insight-binary
cd Insight-binary
ccmake ../Insight

ps: ccmake curses based user interface for CMake
CMake 是被用于为软件项目配置和生成build files,用ccmake来配置一个项目的最基本的步骤是:
1. 在你将要存放目标文件和执行文件的地方,运行ccmake。如果source directory和build directory不在同一个目录的话,需要在ccmake的第一命令行参数配置source directory的位置
2. 当ccmake运行的时候,它将读取配置文件,并显示当前的生成选项。如果你曾经运行过CMake并且刷新过配置文件,新的配置条目会在最上面显示出来并会被标记*. 当然了,如果是第一次运行ccmake,所有的生成选项都将是新的,并被标记。这样你就可以修改任何你想修改的选项了,当你对配置都满意的时候,按“c”来让CMake处理配置文件。注意在修改一些选项的时候会导致新的选项产生,并在顶部产生且以*标示。不断的重复这些操作,直到没有新的条目出现。这时将出现一条新的命令:G)Generate and Exit。按“G”键就可以让CMake生成所有的生成文件(比如Makefile或Project文件)然后退出。在编译的任何时候,你都可以通过按"q"退出ccmake,但这样的话将不会生成或更改任何生成文件.

   在Windows下,CMake GUI被用于定义souce和build目录。为了加快程序生成的速度,建议禁用testing和examples的编译,这可用通过设置变量 BUILD_TESTING=OFF 和BUILD─EXAMPLES=OFF 来实现。
    一个额外的资源可以在InsightApplications module中找到,它包含了许多集成了GUI和不同水平可视化的应用程序。但是,这些应用程序太多以及需要第三方库支持的问题,编译这个模块得推迟到你 已经很熟悉这些toolkit的基本构架以及编译过程。
    运行CMake需要通过在Unix上使用ccmake或者在Windows上使用CMakeSetup。记得从Unix的binary 目录来运行ccmake。而在Window上,通过图形化界面来来定义source和binary目录,然后设置必要的build variable。大部分敏感的变量应该有默认的值。
    典型的编译过程将无论如何至少需要15到30分钟,这依赖于你系统的性能。
四、开始用ITK
   最简单的用ITK新建一个新的工程文件需要先建立一个新的目录和两个文件在这个目录中。一个是将被用于产生Makefile的 CMakeLists.txt文件,或者是VS的工作空间。另一个是可能会运用ITK大量库文件的的C++程序。准备好这两个文件之后就可以运行 CMake来配置你的项目。在Unix下,可以cd到你刚刚新建的目录,输入命令“ccmake .”. ps:命令中的"."表明CMakeLists.txt文件在当前目录之中。在光标界面下将会要求你提供ITK建立时的目录。这个目录和你当时配置ITK 时的 ITK_BINARY_DIR 是一样的。
在Windows你通过运行CMakeSetup并提供你新建的目录,包括source direcoty和binary directory。然后用CMake,CMake将要求你提供ITK建立使得binary 目录。 在ITK的binary directory将包含一个叫做ITKConfig.cmake的文件,它是在ITK配置的时候产生的。这个文件可以让CMake恢复所有需要用来配置 ITK project的配置。

你可能感兴趣的:(Medical,Image)