imglib/imglib2

A generic next-generation Java library for image processing

解決する問題

ImgLib2 は、Java で多次元画像データを扱う複雑さに取り組みます。これがないと、開発者はネストされたループや次元固有のコードに煩わされ、エラーが発生しやすく再利用が困難です。このライブラリは、2D、3D、さらには 100 次元のデータにも対応するアルゴリズムを表現するよりクリーンな方法を提供し、データが実際に存在する場所(メモリ、ディスク、またはオンザフライ生成)の詳細を隠します。

仕組み

ImgLib2 は、固定実装ではなく一連のインターフェースを中心に構築されています。これにより、同じコードが多くのデータ型(8 ビット符号なし整数、32 ビット浮動小数点数など)と多くのストレージ方式で動作します。たとえば、データは単一のプリミティブ配列、平面ごとの配列、ディスクにキャッシュされる N 次元セル、またはオンデマンドで読み取られる平面として保存できます。重要な考え方は「透過的なデータアクセス」です。アルゴリズムは画像に対して動作するコードを書き、その画像が完全にメモリ内にあるか、オンデマンドで部分をロードする仮想スタックであるかを知る必要はありません。これにより、データをコピーする必要がないため、画像セクションの作成と操作が安価になります。

対象読者

ImgLib2 は、柔軟で高性能な画像処理基盤を必要とする Java 開発者を対象としています。これは ImageJ2 のコアデータモデルであり、Fiji にバンドルされ、SCIFIO ライブラリと SciJava ソフトウェアイニシアチブで使用されています。また、繰り返しの低レベルコードを書かずにカスタムアルゴリズムを構築したい科学者にも適しています。

ハイライト

  • 次元非依存:コードを一度書けば、2D、3D、またはそれ以上の次元のデータに適用できます。
  • チャンネル数に制限なし:ピクセルごとの微細なスペクトルを処理できます。
  • 画像に限定されない:RNA 配列などの他の順序データにも対応します。
  • 透過的なデータアクセス:仮想スタックやオンザフライ生成画像(例:無限にズームできるフラクタル)でアルゴリズムを動作させることができます。
  • 画像セクションの操作が超低コスト:データをコピーする必要がありません。
  • 自己完結型:あらゆる Java プロジェクトの基盤データ処理ライブラリとして機能できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト