ITK, VTK, Qt4

  • ITKはピクセル・ボクセル型の画像データを読み込んでいろいろする
  • VTKは点・線・面・・・といった幾何オブジェクトを描図する
  • QtはGUIツールキット
  • こちらに従う
  • 関連サイト
  • 3つ(ITK,VTK,Qt4)のインストールの順序
    • Qt4
    • VTK(Qt4を使って視覚化したいので)
    • ITK(ITK単独でもインストールはもちろんできるが、VTKと連携するにあたり、ItkVtkGlueいうモジュールを作りたいため。このモジュールはITKがVTKを活用して作るモジュール
  • まずQt4をインストールする。VTKのインストールに必要
$ mkdir qt-4.8.6-build && cd qt-4.8.6-build
$ wget http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz
$ tar xzf qt-everywhere-opensource-src-4.8.6.tar.gz
$ cd qt-everywhere-opensource-src-4.8.6
$ ./configure # go through the dialogue 
$ make
  • 次にVTKをインストールする
    • こちらからダウンロードし、/home/ryamada/Downloads/VTK-6.3.0/に展開する
  • /home/ryamad/VTK-buildを作り
$ cd /home/ryamada/VTK-build
$ ccmake /home/ryamada/Downloads/VTK-6.3.0
    • とし、QtオプションをONにしてconfigureして
    • ITKのビルド先を/home/ryamada/ITK-buildと指定し
    • ITKと一緒に使うための、オプション指定、"VTK_USE_ANSI_STDLIB" flagをONにする
      • ただし、このオプションがtをクリックしてオプションを全部表示させても現れないかもしれない
      • そんなときは、いったんconfigureをし、それが作るCMakeCache.txtファイルというのを開き、このフラグを書き込んでONにしてやったうえでgenerateするとよい(1回やれば、以後はccmakeのオプションに現れるようだ)
    • なお、configure->generate->buildでうまく行かなかったときは、Examplesを作るオプションやshared libraryを作るオプションをOFFにしていったんビルドし、そのあとで再度オプションをONにし直してやるとよいようだ…(Examplesの依存性の問題の用だが…)
    • その上でgenerateする
$ make
  • こで/home/ryamada/VTK-build/bin以下に実行可能ファイルができるので、
$ cd /home/ryamada/VTK-build
$ ./HelloWorld
  • とするなどして、VTKがQt4を使ってビジュアルな表示をすることの確認ができる
  • 最後にITKをインストールする
    • ITKをこちらからダウンロードする
    • ccmakeする
      • ITKのダウンロード・展開先を/home/ryamada/InsightToolkit-4.1.8とし、ビルド先を/home/ryamada/ITK-buildとする
      • Module_ITKVtkGlue=ONのオプション選択で実施する
      • 始めはExamplesもSharedLibraryもOFFで実行してうまくいくことを確認しよう
      • ついでExamplesだけONにして回す
      • ちょっと自信がないのだが、tして"ITK_BUILD_ALL_MODULES_FOR_TEST"をONにし(こちらを参照
      • Module_ITKVtkGlueもONにする(こちらは必須)
      • 最後に(他でつかうためにも、特にItkVtkGlueモジュールを作るためにも)SharedLibraryを作るオプションで回したい
      • 64bitマシンの場合のためか、"dynamic R_X86_64_32 relocation"とかいうエラーが続出する、これは"recomplie with fPIC"で解決するそうなのだ。こちらのように、CCMakeオプションからCMAKE_CXX_FLAGSとCMAKE_C_FLAGSについて -fPICを加えて実行する
$ mk ITK-build
$ cd ITK-build
$ ccmake /home/ryamada/InsightToolkit-4.8.1
$ make
  • さて、ITKからVTKにデータを渡してQt4を使って描図する処理をビルドしてみよう!
    • こちらの例をやってみる
    • /home/ryamada/proj/以下に、srcというディレクトリとbuildというディレクトリを切り
    • リンク先のImageToVTKImageFilter.cxxとCMakeLists.txtとをsrcディレクトリに保存する
    • buildディレクトリに移動してccmakeする。ITK_DIRとITKVtkGlue_DIRとの指定を促されるので、上で作ったITKVtkGlueオプションONのITKビルドのディレクトリをしていすればOK
    • できた実行可能ファイルに適当なJPGファイル(など)を与えれば、VTK-Qt4の画面が立ち上がる
  • わからなくなったら、「成功した時のbuildディレクトリに残っている、CMakeCache.txtファイル」を開くとどういう指定をしたかが、下図のようにわかる