自動操作の中に手動操作を組み込む|Wet研究者がコスパ良く手抜きをするためのimageJマクロ・その2
結論
自動操作の中に手動操作を組み込むには WaitForUser(); を使えばいい。
Demo
WaitForUser(); を使うと、
- ROIの選択だけ手動でやる
- 2値化のThresholdだけ手動で決める
みたいなのが実装できる。
マニュアルと自動化の間を狙って手抜きするにはほぼ必須。
ためしに、開いている画像に対して、
【自動】縮小・回転
<手動>ROIを選ぶ
【自動】Clear Outside
【自動】Crop
【自動】RGBチャネル分離
【自動】Red以外Close
<手動>Threshold選ぶ
【自動】2値化
【自動】Watershedかける
【自動】Particle analysis
をしてみる。
手動で選んだROIの赤チャネルの細胞数をカウントする、もの。
コードがこちら。
▲Code 1|.ijmのDLはここから
操作をしたい画像だけを開いた状態でこれを動かすと、ROIを選ぶ直前でマクロが一時停止する。
ROIを長方形なり丸なり多角形なりで選んで「OK」を押すと先に進む。
今度はThresholdの値決めで止まるので、手動で値を決めて「OK」を押す。
【注意】このとき押すのは「OK」ボタン。Thresholdのウィンドウの「Apply」を押してしまうとその先のマクロが動かない。最初からやり直し。
最後まで動いて、細胞カウントしておしまい。
今回のコードにフォルダ内全処理を組み合わせると、ひたすらROI選び→TH選び→ROI選び→TH選び...が繰り返される。マクロに使われてる感が出てたのしい。