ITK编译及安装


最近想利用ITK读取整个Dicom图像到内存,再将读取到的ITK数据转换到VTK。于是乎,开始了一段ITK编译之路。以下将记录一些有用的信息,以备后用。

前言

DICOM图像的读取问题
相比于VTK类库中vtkDICOMImageReader类读取DICOM序列图像,借助ITK类库实现对DICOM序列图像的读取要复杂许多。但是,使用ITK类库读取图像不像使用VTK类库那么功能局限,VTK类库对每种图像格式都有着专门的读写类,像vtkDICOMImage-Reader类只能读取普通的DICOM图像,对于压缩后的DICOM图像则只能通过ITK类库来实现读取

CMake配置选项说明

首次配置时间较长,可耐心等待。且第一次Configure后,CMake界面出现一片红,正常现象。
几点重要设置:
● 【must】CMAKE_INSTALL_PREFIX——用于指定存放编译后生成的库文件,此处选新建的Bin文件路径,即D:\Library\ITK5.1.2\Bin。(注意:如果不设置,则默认为C盘路径下的位置,VS安装时需要管理员权限
● 【must】BUILD_SHARED_LIBS——默认是关闭的,意味着ITK是静态编译,只生成lib文件;若选中此项,则动态编译,将会多生成dll文件。
● 【must】VXLUSE_WIN_WCHAR_T——取消复选框“√”。否则报错。(这个我没取消也没有报错)
● 【optional】Module_ITKVtkGlue——如果已经安装了VTK,功能可选。
● 【optional】BUILD_EXAMPLES——默认是关闭的,生成实验用案例,选后,ITK工程变大,编译变慢,存放在Build文件夹中。初学者建议勾选。
● 【optional】BUILD_TESTING——默认是打开的,生成测试的用的EXE,选后,ITK工程变大,编译变慢,存放在Build文件夹中。初学者建议勾选。
● 【optional】BUILD_DOCUMENTATION——默认是关闭的。若选中此选项,则会编译ITK帮助文档。
若在使用ITK过程中需要用到FFTW库时请注意选中选项ITK_USE_FFTWF(支持float型的图像)和ITK_USE_FFTWD(支持double型的图像),并导入对应库所在的位置。
配置完以上选项后,继续点击Configure,直到CMake界面没有红色。可能会需要多次Configure。

运行VS2015编译及安装

在ITK_5.1_build2目录下打开ITK.sln。
在这里插入图片描述在这里插入图片描述

  1. 右击项目”ALL_BUILD”,选择”重新生成”,等待;选择任一项目,右击选择”设为启动项目”,然后就可以进行”调试”或者”开始执行”了
  2. 选择任一项目,右击选择”设为启动项目”,然后就可以进行”调试”或者”开始执行”了(注意,因为没有生成,所以每一项目先自动进行生成)

如果还想把ITK相关的头文件、动态链接库文件等提取处理,以便于其他项目的开发,可以编译Solution下的“INSTALL”工程,右击该工程,在弹出的快捷菜单中选择Project Only->Build Only INSTALL选项,如下图所示。VTK里的所有头文件以及相关的库文件等,都会被提取到CMAKE_INSTALL_PREFIX选项所指定的目录里。默认路径为C:/Program Files/ITK。

VTK转ITK

#include <vtkImageData.h>
#include "itkVTKImageToImageFilter.h"

typedef itk::VTKImageToImageFilter<itk::Image<short, 3>> VTKImageToImageType;
VTKImageToImageType::Pointer vtkImageToImageFilter = VTKImageToImageType::New();
vtkImageToImageFilter->SetInput(pVTKImageData);
vtkImageToImageFilter->Update();
itk::Image<short, 3>::Pointer pITKImageData = vtkImageToImageFilter->GetOutput();

ITK转VTK

#include "itkImageToVTKImageFilter.h"

typedef itk::ImageToVTKImageFilter< Input3dImageType> itkTovtkFilterType;
itkTovtkFilterType::Pointer itkTovtkImageFilter = itkTovtkFilterType::New();
itkTovtkImageFilter->SetInput(pITKImageData );
itkTovtkImageFilter->Update();
vtkSmartPointer<vtkImageData> pVTKImageData = itkTovtkImageFilter->GetOutput();

参考文献

[1] 在win10下的VTK安装 VS2017+VTK+ITK+camke+QT的逐步安装(保姆级教程,逐步教程)
[2] win 10系统下 CMake编译Visual Studio 2017 C++ 匹配的ITK5.1.2过程实录。
[3] VS2015配置ITK环境

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值