前言

做医学图像处理的时候,通常都是利用ITK做图像处理,VTK做可视化,所以在图像处理的过程中有时需要ITK与VTK混合编程。该文档是基于Linux系统的,VTK在Linux下安装与ITK的安装很相似,ccmake的时候默认配置就好,具体参见Linux 下配置ITK.

在ITK与VTK混合编程的时候需要安装另外一个工具ItkVtkGlue。下面就开始介绍如何安装ItkVtkGlue。

ItkVtkGlue

  • 首先需要下载ItkVtkGlue的源码包,下载地址: download ItkVtkGlue

  • 将ItkVtkGlue的源码包解压到ITK目录下,并在ITK目录下新建ItkVtkGlue-bin目录用来存放ItkVtkGlue的源码包的编译文件。

    ~/ITK/itkvtkglue-bin$ ccmake ../ItkVtkGlue
    ~/ITK/itkvtkglue-bin$ make
  • 配置与编译ItkVtkGlue的源码的方式和配置编译ITK程序的方式一样。

    CMakeLists.txt

  • 每一个ITK或者VTK程序都需要一个CMakeLists.txt文件,并放在同一个目录下,该文件包含了cmake的版本信息、程序执行的环境信息以及整个工程的信息,所以在执行ITK和VTK程序是必须要有CMakeLists.txt文件。

  • ITK与VTK混合编程时,CMakeLists.txt文件的信息如下:

cmake_minimum_required(VERSION 2.8)
project(SubtractImageFilter)

find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
if (ITKVtkGlue_LOADED)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
else()
find_package(ItkVtkGlue REQUIRED)
include(${ItkVtkGlue_USE_FILE})
set(Glue ItkVtkGlue)
endif()

add_executable(SubtractImageFilter MACOSX_BUNDLE SubtractImageFilter.cxx)
target_link_libraries(SubtractImageFilter
${Glue} ${VTK_LIBRARIES} ${ITK_LIBRARIES})
  • 在ccmake配置的时候会提示输入ItkVtkGlue的目录,类似输入ITK编译后的目录一样,在提示itkvtkglue目录路径的地方输入itkvtkglue-bin文件所在的目录就好了,然后程序就能正常编译了。

    找不到“itkImageToVTKImageFilter.h”的问题

  • 在程序的头文件中如果引入’itkImageToVTKImageFilter.h’头文件,会提示找不到该文件,这时需要下载一个工具包:InsightApplications.zip,下载地址:download InsightApplications
  • 解压InsightApplications.zip文件,将itkImageToVTKImageFilter.h,itkImageToVTKImageFilter.txx从\InsightApplications\Auxiliary\vtk文件夹找出添加到正在执行的工程文件,然后再编译就不会有错了。