Qt VTK ITK安装与测试(三)ITK的安装与测试

1 篇文章 0 订阅

ITK的安装与测试

安装简介

本部分讲述使用cmake加VS2010编译,安装ITK库,基本步骤和VTK安装时相同,而后测试VTK与ITK的联合开发。

VTK安装步骤

1.资源下载

资源下载网址:

http://www.itk.org/ITK/resources/software.html

下载:InsightToolkit-4.4.0.zip和InsightApplications-4.4.0.zip。

2.装路径新建

D:\Program Setup\(可以是任何路径)

--ITK

            -- InsightToolkit (解压InsightToolkit-4.4.0.zip到此路径)

            -- itk_bin    (cmake编译路径)

            -- itk        (安装路径)

3.Cmake编译ITK

3.1 添加源文件目录D:\Program Setup\ ITK \InsightToolkit,编译文件目录D:\Program Setup\ ITK \ITK_bin,而后点击Configure,开始编译。

3.2 修改编译选项。

勾选BUILD_SHARED_LIBS,设为ON

BUILD_EXAMPLES,BUILD_TEXT参数可选,如果选择会非常耗时,按照我的经验,全部勾选,用VS编译需要至少4个小时。

注:如果想编译使用insightApplication,就必须选择一下两个选项:

ITKV3_COMPATIBILITY设为 ON

ITK_LEGACY_REMOVE设为 OFF

修改完,点击Configure到没有错误,如下:

 

3.3 使用VS2010编译,安装ITK

打开D:\Program Setup\ ITK \ITK_bin,选择ITK.sln点击,而后选择ALL_BUILD右击选择生成编译所有工程。

编译完成后,在解决方案中选择INSTALL,右击生成,等待安装完成即可。

4 配置环境变量

环境变量配置:

编辑环境变量的Path值,添加D:\Program Setup\ITK\bin保存。

VTK测试

1 新建一个空项目

添加一个源文件test.cpp,将下列代码添加到test.cpp。

#include"itkImage.h"
#include<iostream>
 
intmain(){
 
   typedefitk::Image< unsignedshort, 3>ImageType;
   ImageType::Pointerimage= ImageType::New();
 
   inti;
 
   std::cout<<"ITK hello world !"<<std::endl;
   std::cin>>i;
   return0;
}

2 运行程序

而后在属性管理器->Microsoft.Cpp.Win32.user中按要求添加

库文件目录D:\Program Setup\ITK\lib

头文件目录D:\Program Setup\ITK\include\ITK-4.4

以及在链接器中添加库名称,如果不知道需要的那些库,将所有的库名都添加。

点击运行:


到此表明ITK基本安装成功。

VTK与ITK联合测试

1 insightApplication的安装

insightApplication中有很多ITK的例子,是学习ITK的一个有效途径。除此为了将ITK与VTK简单的结合起来,我们需要使用insightApplication中的一些函数模版。

insightApplication安装方法与ITK类似,使用cmake与VS2010编译,安装。

Cmake编译选项,USE_VTK设为ON,VTK_DIR设为VTK的D:\Program Setup\VTK2008\binCMAKE_INSTALL_PREFIX设置insightApplication的安装路径,可以设置为ITK的安装路径,也可另设路径。其他按要求设置即可。装了这么多遍,相信大家都很熟悉了。

2 联合测试

新建工程,源程序如下:

#include"itkImage.h"
#include"itkImageFileReader.h"
#include"itkImageToVTKImageFilter.h"
#include<itkGDCMImageIO.h>
#include"vtkImageViewer.h"
#include"vtkRenderWindowInteractor.h"
#include"vtkSmartPointer.h"
#include"vtkImageFlip.h"
#include"vtkRenderer.h"
#include"vtkImageActor.h"
#include"vtkCamera.h"
#include"vtkImageMapper.h"
 
usingnamespacestd;
 
intmain()
{
 
        typedefitk::Image<unsignedchar,2>ImageType;
        typedefitk::ImageFileReader<ImageType>ReaderType;  
        ReaderType::Pointerreader=ReaderType::New();
 
        //获得DICOM文件读取对象
        typedefitk::GDCMImageIOImageIOType;
        ImageIOType::PointergdcmImageIO=ImageIOType::New();
 
        //Filterofitkimagedatatovtkimagedata;
        typedefitk::ImageToVTKImageFilter<ImageType>FilterType;
        FilterType::Pointerconnector=FilterType::New();
 
        //获得DICOM文件名并读取DICOM文件;
        char*DICOMName="F://MR.dcm";
        reader->SetFileName(DICOMName);
        reader->SetImageIO(gdcmImageIO);
 
        //ITK到VTK转化      
        connector->SetInput(reader->GetOutput());
        connector->Update();
 
        vtkSmartPointer<vtkImageFlip>flip=vtkSmartPointer<vtkImageFlip>::New();
        //vtkSmartPointer<vtkImageMapper>
        flip->SetInput(connector->GetOutput());
        flip->SetFilteredAxis(1);
        //需要进行上下翻转才能正确显示;
        flip->Update();
 
 
        vtkSmartPointer<vtkImageActor>actor=vtkSmartPointer<vtkImageActor>::New();
        actor->SetInput(flip->GetOutput());
        actor->InterpolateOff();
 
        vtkSmartPointer<vtkRenderer>renderer=vtkSmartPointer<vtkRenderer>::New();
        renderer->AddActor(actor);
 
 
        vtkSmartPointer<vtkRenderWindow>renderWindow=vtkSmartPointer<vtkRenderWindow>::New();
        renderWindow->AddRenderer(renderer);
 
        vtkRenderWindowInteractor*iren=vtkRenderWindowInteractor::New();
 
        iren->SetRenderWindow(renderWindow);
        iren->Initialize();
        iren->Start();
 
        return0;
}

运行程序之前需要将itkImageToVTKImageFilter.h,itkImageToVTKImageFilter.txx从\InsightApplications-4.4.0\Auxiliary\vtk文件夹找出添加到工程文件。

点击运行,如果出现,出现异常:error LNK2019: 无法解析的外部符号 _SnmpUtilVarBindFree@4

添加windowsIDK中的三个库

snmpapi.lib, rpcrt4.lib, wsock32.lib 

属性管理器->Microsoft.Cpp.Win32.user->链接器->输入。

运行结果:


到此VTK与ITK的联合已经完成,下面就是了解VTK与ITK进行图像处理软件的开发了。


 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值