PythonからImageJを利用するPyImageJライブラリを使ってみる


imageJは科学的な画像解析のためのソフトで、PythonからimageJを利用するためのPyimageJというパッケージが用意されている。

PyImageJはImageJ2とPythonを統合するためのラッパー関数のセットを提供している。

今回はAnacondaで仮想環境を作成し、pyimagejを利用する環境構築を行い、サンプル画像を表示するところまでやってみる。

参考URL1
参考URL2

1. Anacondaで仮想環境を作成する

Anacondaで新しい仮想環境を作成する際は、$ conda create -n 新しい環境名を実行する。今回はimagejという名前の仮想環境を作成する。

2022年3月現在ではPythonのバージョンは3.6, 3.7, 3.8が推奨されているため、3.8を使用する。

$ conda create -n imagej python=3.8

続いて作成した仮想環境に入る。

$ conda activate imagej

2. 必要なパッケージをインストールする

pyimagejopenjdkをインストールする。

$ conda install -c conda-forge pyimagej
$ conda install -c conda-forge openjdk=8

3. 仮想環境でJupyterを使えるようにする

仮想環境をJupyter Notebook上で使えるようにするために、コマンドプロンプト上でipykernelをインストールする。

$ pip install ipykernel

Jupyterのカーネルとして仮想環境を追加するためのコマンド$ ipython kernel install --user --name=環境名を実行する。

$ ipython kernel install --user --name=imagej

サンプル画像を表示してみる

conda activate imagejで仮想環境下に移動し、$ jupyter labでJupyter Labを開く。

新しいノートブックを作成し、以下のコードを実行する。

PyImageJを使用する際の最初のステップは、ImageJ2ゲートウェイを作成すること。ゲートウェイを使用すると、ImageJ2 API に完全にアクセスできるようになる

# ライブラリのインポート
import imagej

# ゲートウェイを作成する
ij = imagej.init()

# 画像を読み込む
image_url = 'https://imagej.net/images/FluorescentCells.jpg'
jimage = ij.io().open(image_url)

# 配列に変換
image = ij.py.from_java(jimage)

# 画像を表示する
ij.py.show(image)

JupyterでImageJを使うことができました!