Qt VTK ITK安裝與測試(三)ITK的安裝與測試

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進行圖像處理軟件的開發了。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章