5

imageJ でマクロを作成し、R で分析するデータ フレームを吐き出しました。最初に imageJ で手動でマクロを実行しなくても、R で手順全体を実行できるようにしたいと考えています。現在、マクロはユーザーに入力ディレクトリと出力ディレクトリを要求し、それを実行します。マクロと入力および出力ディレクトリを指定できるようにする関数が R にあるに違いないと考えています (マクロでこれらの変数を再コード化して、R スクリプトを介してこれらの引数を何らかの方法で取得できますか?)

私は system() コマンドを使用できることを収集し、Web 上の別の場所からこの興味をそそる手がかりを見つけました。

system("./JavaApplicationStub  directory file[i] -batch zmacro") 

しかし、これを実装する方法がわかりません(私のマクロはすでにバッチ処理を利用しているため、その部分は不要です)。

4

3 に答える 3

3

nograpes と Kota (さらには Google 検索) のおかげで、問題は解決しました。

R を介して imageJ マクロを呼び出すには、Kota から次のようになります。

system("/Applications/ImageJ/ImageJ.app/Contents/MacOS/JavaApplicationStub -batch 
/Users/xxxx/Desktop/testmacro.txt")

私が使用している特定のマクロには、入力ディレクトリと出力ディレクトリの両方が必要です。これを R でコーディングするために、システム コールに引数を追加しました。

system("/Applications/ImageJ/ImageJ.app/Contents/MacOS/JavaApplicationStub -batch 
/Users/acgerstein/Desktop/testmacrobatch.txt 
/Users/acgerstein/Desktop/130829Pos_24h/*/Users/acgerstein/Desktop/temp/")

私が知る限り、imageJ は渡される引数を 1 つしかサポートしていません。そのため、入力ディレクトリと出力ディレクトリを「 * 」で区切りました。

imageJ のコードは次のようになります。

folders = getArgument;
delimiter = "*";
parts=split(folders, delimiter);
dir1 = parts[0];
dir2 = parts[1];

少し予想外だったのは、通常は imageJ のマクロによって出力されるログ ファイルが、R コンソールに表示されるようになったことです。

いたずらは管理されました。

于 2013-09-25T16:46:36.220 に答える