ImageJのImageCalculatorは、2つの画像の間で演算を行う機能です。この機能も、当然ながらマクロで記録することができ、そのマクロを再生して動かすことが可能ですが、Python (Jython) を使って IJ.runでそのマクロを書き換えるとうまく動きません。おそらく、Jythonにおいては、IJ.runで動かせるのはアクティブなウィンドウ一つだけのようで、2つウィンドウを使うImageCalculatorはうまく動かせないようです。
これに関しては、IJ.runを使うのではなくpluginライブラリを使うことにしました。
from ij import plugin →pluginライブラリ使用の宣言
----------------------
ic = plugin.ImageCalculator() →ImageCalcuratorのインスタンス化
imp0 = ic.run("Add create", imp1, imp2)
→ 画像 imp1とimp2を加算してimp0に代入する
"Add create" というところに Imagecalcurator で使うコマンドを記述
ImageCalcuratorのコマンドとしては、
Add createのほかに
Subtract create, Multiply create, (以下、create省略) Divede, AND, OR, XOR, Min, Max, Average, Defference, Copy, Transparent-zero
があり得ます。
あるいは、インスタンス化しない場合は
from ij.plugin import ImageCalculator
----------------------------
imp0 = ImageCalculator().run("Subtract create stack", imp1, imp2)
これでも可です。
--------
※お断り
当記事は、ImageJ - Fijiディストリビューションの記事執筆時点での最新バージョンを前提とした記事です。ImageJのオリジナルバージョンだと、環境設定をご自分で整備しない限り、同様に動作しない可能性があります。