湯LOG

主に自分用のメモ

ITKとは

はじめに

ITK(Insight segmentation and registration Tool Kits)に関する日本語の記事が少なかったので、以後徐々に書き進めていきたいと考えています。
自分もまだまだ理解していないのでメモ程度に。

ITK概要

 - フィルタリング
 - セグメンテーション(領域抽出)
 - レジストレーション(位置合わせ)

  • ドキュメントが豊富で、よくテストされている

 - wikiチュートリアルメーリングリストがあります
  http://www.itk.org/ITK/help/tutorials.html

 - 任意の次元を取り扱える(2次元、3次元、n次元)
 - C++のテンプレートを用いた統一されたデータ保存の概念
 - 大規模データの効率的な処理

 - National Library of MedicineやNational Institute of Healthなどがスポンサー

  • For Image Processing only

 - UIや可視化の機能はありません
 - QtやVTK(Visualization Tool Kits)と組み合わせるのが一般的

主な機能

  • ガウシアンフィルタ
  • エッジ保存平滑化
  • 統計的領域分割
  • Region Growing
  • エッジ検出
  • Watershed
  • 動的輪郭(LevelSet)
  • Mesh
  • 剛体位置合わせ
  • 非剛体位置合わせ

おわりに

今回はさらっと概要だけ紹介しましたが、おいおい詳しく見ていこうと思います。
インストールについては、過去記事をご覧ください。
yuzatakujp1013.hatenablog.com

ちなみに有名な画像処理ライブラリにOpenCVがありますが、はっきり言って処理速度やアルゴリズムの充実さでいうとOpenCVのほうが上なので、2D画像処理をする際にはOpenCVを用いたほうがいいでしょう。

ただし、RAWデータやDICOMデータのように高ビット画像を圧縮せず扱いたい場合は、ITKなどを用いたほうが良いかもしれません。OpenCVの実装は基本的に8ビットがメインなので。(ただITKとOpenCVパイプラインとなるモジュールも存在します)

ITKはセグメンテーションやレジストレーション医用画像処理に特化したツールであり、OpenCVはカメラ系のコンピュータビジョンに特化したツールです。自分が行う対象をしっかり把握したうえで、適したツールを使うことをお勧めします。