3 System Overview ぱらぱらめくる『The ITK Software Guide Book 1: Introduction and Development Guidelines』

  • システム構築の基本
    • Generic programming(データ型・アクセスについてテンプレートを採用), Smart pointers(データに複数のポインタを走査させて、そのメモリ管理はgarbage collectionとかとちょっと違えて作ってある), Object factories, Event management, Multi-thread
  • 数値計算
    • vnl numeric libraryを使っている(The numerics library, vnl is intended to provide an environment for numerical programming which combines the ease of use of packages like Mathematica and MatLab with the speed of C and the elegance of C++. It provides a C++ interface to the high-quality Fortran routines made available in the public domain by numerical analysis researchers.)
  • データの保持とデータへのアクセス
    • 2つの基本クラス:itk::Image, itk::Mesh
      • その他のクラス:itk::Histogram, itk::SpatialObject
  • データのハンドリングはパイプライン
    • パイプラインはフィルタ処理の連続としてつくってある
    • 各フィルタは、ポインタを与えられ、どういうタイプのフィルタが、どの画像データオブジェクトに対して作られるかを指定され(これをSetInput()で行う)、そしてそれにフィルタ作用を規定する条件をメンバー登録して、その結果をGetOutput()を使って、次に渡し、最終的にmappersフィルタに渡すことで「処理結果」を得る
  • IO
    • パイプラインの最上流はsourcesフィルタ、最下流はmappersフィルタ。その典型が、readersというsourcesフィルタ、writersというmappersフィルタ
  • Spatial objects
    • 点、辺、三角形、多角形、四面体、直方体…などの持ち方
  • Registration
  • FEM
  • Level Set Framework
    • 偏微分方程式を解くためにフィルタの当て方を作り上げる使用
    • Sparse level set solver, generic level set segmentation filter, threshold, Canny, Laplacian などに基づく諸法
  • ラッパー