ImageJはオープンソースでパブリックドメインの画像処理ソフトウェアである。Javaの仮想マシン上で動作し、プラグインやマクロによる拡張性が高い。科学研究における画像解析に広く利用され、生物学ではデファクト・スタンダードの解析ツールとなっている。

デジタルカメラで撮影した写真などの画像処理に用いられる写真編集ソフトウェアでは、誰でも使える直感的な操作性を重視するため、逆に内部の演算がわかりにくくなることがある。これに対してImageJでは、各種画像処理に用いられる数値計算のパラメータが分かりやすいユーザーインターフェイスを備えており、ピクセルの数値を元に再現性の高い計算処理を行うことが可能である。ユーザーによって書かれたプラグイン群は、さまざまな画像処理・解析の課題に対応している（#拡張性の項を参照）。同時にその拡張性の容易さゆえ、画像処理の教育の現場でもポピュラーである。また、オープンソースであるため、処理過程をすべて確認することができる。計算過程にブラックボックスがない、という点でも科学研究での使用に適している。ソースコードはGitHubで公開されている。

 動作環境 
Windows版とLinux版においてはJava1.8のVMが組み込まれており、Javaの実行環境がなくても作動する。Mac OS X版においては、OSに応じて異なるバージョンをダウンロードする必要がある。またPlatform Independent版においてはJavaVMが入っていないため、実行にはJava実行環境を用意する必要がある(そもそもPlatform Independent版はJava実行環境がすでにあるデバイス向けのバージョンである)。

ダウンロードアプリケーションとしての他、Javaアプレットとしても動作する。

 開発小史 
ImageJは、アメリカ国立衛生研究所 (NIH) でWayne Rasbandにより開発が始められた。最初のリリースは1997年である。ImageJにはその思想的祖先としてWayne Rasbandが開発を行ったNIH Imageがある。NIH Imageの最初のリリースは1987年の春であり、電気泳動のゲルのバンドを定量化することを目的としていた。開発言語はPascalであった。開発のきっかけはApple Macintosh IIであり、その拡張性、GUI、グラフィックス、開発言語Pascalのサポートに刺激をうけた、とWayne Rasband自身が語っている。この草創期のNIH Imageでは、ドラム式スキャナにより画像を入力し、ジョイスティックを使ってROIの設定を行うというインターフェイスであった。

NIHImageは動作環境がMac OSのみという制約があったため、サン・マイクロシステムズがJava言語をリリースしたことをきっかけとし、90年代後半にJava仮想マシン上で動作するImageJが構想されその開発が始まった。メニューの外見・構成はNIH Imageの多くを継承し、その機能も引き続き科学研究に適した特徴を有している。NIHを退職したWayne Rasbandは2015年現在でも自宅から日々開発を続行しており新たな機能を追加し続けている。

 基本機能 
1/8/16ビット整数グレースケール、32ビット浮動小数グレースケール、および24ビットRGB/32ビットRGBAカラー画像を編集、解析、画像処理、保存、および印刷することができる。同時に処理できる画像の数は、物理メモリの搭載量およびOSのアプリケーションメモリ空間の制限に依存する。
 TIFF、PNG、GIF、JPEG、BMP、DICOM、AVIなどの画像フォーマットに対応。
 さまざまな顕微鏡メーカー、カメラメーカーの特殊な画像フォーマット (例えばZeissの.lsm、Leicaの.lif) にも対応している。これらの特殊なフォーマットの対応情報は、Loci Bioformatsのページで確認することができる。
 3次元のスタック画像 (multi-tif画像) に対応。
 マルチスレッド処理が実装されており、複数の処理を並行して行う。特にスタック画像ではマルチコアCPUによる並列処理の威力を発揮する。
 スタック画像の断層図の可視化。
 ImageJはマウスによるROI (Region of Interest) を実装している。ROIの面積、ピクセル値の統計値、形態パラメータを測定することができる。
 電気泳動ゲル写真のバンドの濃度測定機能は開発当初からの機能であり、よく練られた機能のひとつとなっている。
 ピクセル値に閾値を設定し、選択範囲を指定することができる。基本的な分節化の機能である。
 距離や角度の測定。
 ピクセル値のヒストグラムの表示
 任意の直線上のピクセル値の輝度分布（プロファイル）の測定とプロット。測定の数値データはファイルとして取得できる。
 画像間の論理演算
 コントラスト増強
 畳み込み
 フーリエ解析
 シャープネス
 スムーズ処理
 エッジ検出
 メディアンフィルタ
 スケール設定
 回転、反転
 メモリの許す限り何枚でも画像を表示することができる。

より詳しい解説はImageJ User Guideを参照のこと。

 拡張性 
Javaプラグインや、記録可能なマクロによる機能拡張が可能である。ImageJが内蔵するJavaコンパイラを用いて、撮影、解析、画像処理などのさまざまな追加機能を手軽に自作し、プラグインの形で導入できる。世界中の研究者が各自の用途に合わせて独自のプラグインを開発しており、これらの多くがImageJホームページにて公開され手軽に入手できる。優秀なプラグインは正式版の機能に加えられることも多い。

 ディストリビューション 

さまざまなプラグインをあらかじめ同梱したパッケージも何種類か配布されている。なかでもメジャーなのはFiji(Fiji Is Just ImageJ)である。ImageJのコマンドは500ほどであるが、Fijiでは900ほどになる。豊富な3次元画像解析機能の他に、プラグインの自動アップデート機能やスクリプティング機能（JavaScript、Jython、JRuby、BeanShell、Clojure、ImageJ Macro）とオリジナルのエディタが特徴的である。2018年からFijiはImageJの後継となる通称ImageJ2の開発チームが融合し、事実上ImageJ2の配布プラットフォームともなった。ImageJ2はFijiのチームが開発してきたImglib2を中核としており、スクリプトやプラグインを書くことでその多様でジェネリックな機能を使用することが可能である。

 論文への引用 

ImageJを使って解析した結果・画像を論文に掲載する際には、論文に次の引用を行うことが推奨されている。ダウンロードは無料であるが、こうした形でのクレジットが助成金を得て開発を続行するために今後も必要となる。

 Rasband, W.S., ImageJ, U. S. National Institutes of Health, Bethesda, Maryland, USA, http://imagej.nih.gov/ij/, 1997-2012.
 Schneider, C.A., Rasband, W.S., Eliceiri, K.W. "NIH Image to ImageJ: 25 years of image analysis". Nature Methods 9, 671-675, 2012.

 文献・脚注