トップページ -> コンピュータ -> Cygwin, MinGW の活用 -> Windows で VTK のビルドとインストール(Windows 上の Cygwin を使用)
[サイトマップへ], サイト内検索:

Windows で VTK のビルドとインストール(Windows 上の Cygwin を使用)

サイト構成 連絡先,業績 実践知識 コンピュータ 教材 サポートページ

VTK (Visualization Toolkit) とは, 3次元コンピュータグラフィックス,画像処理,可視化のライブラリです. VTK は,本来,C++ のクラスライブラリで,Tcl/Tk, Java, Python のインタフェースを持っています. この Web ページでは,Cygwin での VTK バージョン 5.4.2 のビルドとインストールの手順を説明する.

VTK の機能については, http://www.vtk.org/VTK/project/technical.html に説明があります.

前準備

前もってインストールしておくべきソフトウエア

VTK のビルドに必要なソフトウエア等を Cygwin のパッケージを使ってインストール

Cygwin のセットアッププログラム setup.exe を使って, VTK をソースプログラムからビルドするのに必要となる他のソフトウエアをインストールする.簡単にインストールできます.

  1. セットアッププログラムの開始

  2. パッケージ選択画面 (Select Packages)」(下図)まで進む

  3. パッケージ選択画面で,パッケージを選ぶ

    下記のパッケージを選ぶ.

    「keep」になっている場合には,インストール済みなので,keep のままでよい.

  4. 終了の確認


VTK のインストール

  1. ソースコードの入手
    cd /tmp
    wget http://www.vtk.org/files/release/5.6/vtk-5.6.1.tar.gz
    wget http://www.vtk.org/files/release/5.6/vtkdata-5.6.1.tar.gz
    

  2. vtkData の展開

    ※ 展開先はどこでもいいが,記録しておくこと.

    cd /usr
    tar -xvzof /tmp/vtkdata-5.6.1.tar.gz
    

  3. vtk の展開
    cd /tmp
    tar -xvzof /tmp/vtk-5.6.1.tar.gz
    

  4. ccmake の起動

    /usr/VTKData」の部分は,先ほど vtkData を展開したディレクトリに一致していること.

    cd /tmp
    cd VTK
    VTK_DATA_ROOT=/usr/VTKData CC=gcc CXX=g++ ccmake .
    

  5. 最初 c キーを押す

    ※ ccmake を初めて起動したときは「EMPTY CACHE」と表示されるが何の問題も無い.

  6. advanced modeへの切り替え

    「t」キーを押す.advanced mode に変わる.

  7. VTK_DATA_ROOT の確認

    正しく設定されていないときは,VTK_DATA_ROOT の行で Enter キーを押す. すると,編集モードに変わるので,「/usr/VTKData」のように設定

    要するに,先ほど vtkData を展開したディレクトリに設定する.

  8. VTK_USE_SYSTEM_TIFF を ON に設定

    VTK_USE_SYSTEM_TIFF の行で Enter キーを押す.「ON」に変わる

  9. X ウインドウシステムのライブラリファイルとインクルードファイル に関する設定.
    VTK_USE_VIDEO_FOR_WINDOWS OFF
    VTK_USE_X ON
    X11_Xv_INCLUDE_PATH /usr/X11R7.4/include/X11/extensions
    X11_Xv_LIB /usr/X11R7.4/lib/libXv.a
    X11_Xxf86misc_LIB /usr/X11R7.4/lib/libXxf86misc.a
    X11_xf86misc_INCLUDE_PATH /usr/X11R7.4/include/X11/extensions
    X11_xf86vmode_INCLUDE_PATH /usr/X11R7.4/include/X11/extensions
    
    CMAKE_X_LIBS

    X 開発環境を自前でビルドするのが面倒という場合には, 次のように設定する.

    VTK_USE_VIDEO_FOR_WINDOWS OFF
    VTK_USE_X OFF
    VTK_USE_VIEWS ON
    

    ※ BUILD_SHARED_LIBS を ON にした場合,エラーが出ることがある.gcc バージョン 4 を使うように設定すると直ることがある.(/usr/bin/gcc-4.exe, /usr/bin/g++-4.exe)

  10. t キーを押す.advanced mode を抜ける.

  11. c キーを押す

  12. 再度 c キーを押す

  13. 「Press [g] to generate and exit」が現れるので,g キーを押す

  14. make の実行

  15. (オプション)link.txt を書き換える作業

    今のままだと,初回の make の実行において,「libGL がリンクできない」という意味のエラーが出ることがあります(2009/06時点).

    上手な回避法が思いつかない.強引ですが, 1度 make を実行した後に,全てのlink.txt に「-L/usr/lib -lGLU -lGL」を書き加えて,再度 make を実行することにします.

    link.txt がたくさんあるので,エディタで書き換えるのではなく,次のようなシェルスクリプトを実行することで書き換えることにします.

    cd /tmp
    cd VTK
    for i in ./*/*/*/link.txt ./*/*/*/*/link.txt ./*/*/*/*/*/link.txt ./*/*/*/*/*/*/link.txt ./*/*/*/*/*/*/*/link.txt; do
      echo $i
      cp $i /tmp/$$
      cat /tmp/$$ | sed 's/libopengl32.a/libopengl32.a -L\/usr\/lib -lGLU -lGL -L\/usr\/local\/lib\/vtk-5.4.2/g' > $i
    done
    

    上記のシェルスクリプトを実行後,再度,make を実行する.

  16. make の結果の確認

    100% まで達していれば成功したと分かる.

  17. make install の実行

  18. (オプション)サンプルプログラムのビルド
    cd /tmp
    cd VTK
    cd Examples
    export VTK_DIR=/usr/local/lib/vtk-5.4
    cmake .
    
    for i in ./*/*/*/link.txt ./*/*/*/*/link.txt ./*/*/*/*/*/link.txt ./*/*/*/*/*/*/link.txt ./*/*/*/*/*/*/*/link.txt; do
      echo $i
      cp $i /tmp/$$
      cat /tmp/$$ | sed 's/libopengl32.a/libopengl32.a -L\/usr\/lib -lGLU -lGL -L\/usr\/local\/lib\/vtk-5.4/g' > $i
    done
    
    make
    

  19. (オプション)サンプルプログラムの make の結果の確認


VTK サンプルプログラムのテスト実行

Medical1

最初は,次の手順で,多数のサンプルプログラムのうち Medical を実行してみます.ここに載せている画面の画像は,すべて Windows での実際の画面のキャプチャ画像です.

※ 前準備として,上で説明している「サンプルプログラムのビルド」が終わっていること.

cd /tmp/VTK/Examples/Medical/Cxx
export VTK_DIR=/usr/local/lib/vtk-5.4/
./Medical1 /usr/VTKData/Data/headsq/quarter

画像の大きさが 64×64、16bitのRaw形式の連番画像ファイル quarter.1〜quarter.93 を読み込み、 0〜500までの画素値を空気、それ以外を物体として描画する.

マウスを使って,回転拡大縮小ができる.

「skinExtractor->SetValue(0,1200);」と書き換え、値を0~1200に変更すると,表示が変わる.次のように表示される.

Medical2

今度は Medical2 の実行です(キャプチャ画面を付けておきます).

cd /tmp/VTK/Examples/Medical/Cxx
export VTK_DIR=/usr/local/lib/vtk-5.4/
./Medical2 /usr/VTKData/Data/headsq/quarter

Medical2

今度は Medical3 の実行です(キャプチャ画面を付けておきます).

cd /tmp/VTK/Examples/Medical/Cxx
export VTK_DIR=/usr/local/lib/vtk-5.4/
./Medical3 /usr/VTKData/Data/headsq/quarter


※ サンプル画像は,RAW形式の連番画像ファイルである.簡単な操作で,MRIcro で描画することができる. quarter.45をquarter.45.imgに名前を変更し、Header Informationを下の図のように変更してHeader→Save header…でquarter.45.hdrで保存すると、MRICroで表示が可能となる。

(画像作成中)

※ (メモ)以下は、VTK_WRAP_JAVA の試み

(画像作成中)

depend.make に「C:/」と書いてあるのがエラーになる.「/cygdrive/c/」に置換する.

for i in ./*/*/*/depend.make ./*/*/*/*/depend.make ./*/*/*/*/*/depend.make ./*/*/*/*/*/*/depend.make ./*/*/*/*/*/*/*/depend.make; do
  echo $i
  cp $i /tmp/$$
  cat /tmp/$$ | sed 's/C:\//\/cygdrive\/c\//g' > $i
done

Java のバージョンが問題になるみたい.ちゃんと説明書を読まないといけない(が力尽きる)。