ITK安装和示例程序

ITK installation and sample program

本文关键字:例程 程序 安装 ITK      更新时间:2023-10-16

我是ITK的新手,我做了以下步骤来安装ITK并使用它在VS2010中编程

  1. 下载ITK 4.3.1并使用CMAKE编译
  2. 构建是成功的,我有一个lib->Debug文件夹包含库。
  3. 将bin文件夹路径添加到环境变量路径。

下面是我的简单代码…

#include <iostream>
#include <Core/Common/include/itkImage.h>
using namespace itk;
using namespace std;
int main()
{
    return 0;
}

以上代码返回

Cannot open include file: 'itkConfigure.h'

我试着搜索标题,但没有运气。然而,在C:InsightToolkit-4.3.1ModulesCoreCommonsrc我发现itkConfigure.h。在文件。我真的不知道如何处理这个文件。欢迎任何帮助

设置项目的最简单方法是再次使用CMake。试着用CMakeLists.txt和main.cpp创建一个项目。CMakeLists.txt应该是这样的:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(ItkTest)
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
add_executable(MyTest main.cpp)
target_link_libraries(MyTest ITKCommon)
假设你在名为ItkProject的目录下创建了这两个文件,然后在Visual Studio命令提示符中执行:
cd <path to ItkProject>
mkdir build
cd build
cmake .. -DITK_DIR="<path to build dir of ITK>"

<path to build dir of ITK>是您运行CMake来配置ITK项目的地方。它将包含ITK。但关键的是,它还应该包含一个名为ITKConfig.cmake的文件。它是在cmake命令find_package(ITK REQUIRED)中搜索的文件-如果cmake找不到它,配置将失败。

一旦被发现,它设置了一堆CMake变量,你可以在你自己的CMakeLists.txt中使用,包括ITK_USE_FILE

当您调用include(${ITK_USE_FILE})时,这将继续设置包含路径,库搜索路径和编译器标志等内容。路径<path to ItkProject>/Core/Common/include将被添加到包含目录中,因此在main.cpp中,您只需要执行:

#include <Core/Common/include/itkImage.h>
#include "itkImage.h"

无论如何,运行CMake后的最终结果应该是解决方案文件<path to ItkProject>buildItkTest.sln,该文件已设置为准备使用ITK。

我检查了ItkConfig。cmake和其中定义的路径应该匹配物理路径,如果ITK build没有被修改过(目录没有重命名),就会出现这种情况。

# The ITK source tree.
# For backward compatibility issues we still need to define this variable, although
# it is highly probable that it will cause more harm than being useful. 
# Use ITK_INCLUDE_DIRS instead, since ITK_SOURCE_DIR may point to non-existent directory
IF(NOT ITK_LEGACY_REMOVE)
  SET(ITK_SOURCE_DIR "C:/ITK320")
ENDIF(NOT ITK_LEGACY_REMOVE)
# The ITK include file directories.
SET(ITK_INCLUDE_DIRS "C:/ITK320-build;C:/ITK320/Code/Algorithms;C:/ITK320/Code/BasicFilters;C:/ITK320/Code/Common;C:/ITK320/Code/Numerics;C:/ITK320/Code/IO;C:/ITK320/Code/Numerics/FEM;C:/ITK320/Code/Numerics/NeuralNetworks;C:/ITK320/Code/SpatialObject;C:/ITK320/Utilities/MetaIO;C:/ITK320/Utilities/NrrdIO;C:/ITK320-build/Utilities/NrrdIO;C:/ITK320/Utilities/DICOMParser;C:/ITK320-build/Utilities/DICOMParser;C:/ITK320-build/Utilities/expat;C:/ITK320/Utilities/expat;C:/ITK320/Utilities/nifti/niftilib;C:/ITK320/Utilities/nifti/znzlib;C:/ITK320/Utilities/itkExtHdrs;C:/ITK320-build/Utilities;C:/ITK320/Utilities;C:/ITK320/Code/Numerics/Statistics;C:/ITK320/Utilities/vxl/v3p/netlib;C:/ITK320/Utilities/vxl/vcl;C:/ITK320/Utilities/vxl/core;C:/ITK320-build/Utilities/vxl/v3p/netlib;C:/ITK320-build/Utilities/vxl/vcl;C:/ITK320-build/Utilities/vxl/core;C:/ITK320-build/Utilities/gdcm;C:/ITK320/Utilities/gdcm/src")
# The ITK library directories.
SET(ITK_LIBRARY_DIRS "C:/ITK320-build/bin")