如何使用 R 调用/执行 imageJ 宏?

ACG*_*ACG 5 macros r imagej

我在 imageJ 中编写了一个宏,它会输出一个数据框,然后在 R 中进行分析。我希望能够在 R 中运行整个过程,而不必先在 imageJ 中手动运行宏。目前宏提示用户输入和输出目录,然后做它的事情。我在想 R 中必须有一个函数可以让我指定宏以及输入和输出目录(然后我可以在宏中重新编码这些变量以某种方式通过 R 脚本获取这些参数?)

我认为我可以使用 system() 命令,并从网络上的其他地方找到了这个诱人的线索:

system("./JavaApplicationStub  directory file[i] -batch zmacro") 
Run Code Online (Sandbox Code Playgroud)

但我不确定如何实现这一点(我的宏已经使用了批处理,因此该部分是不必要的)。

ACG*_*ACG 4

感谢 nograpes 和 Kota (以及更多的谷歌搜索),问题得到了解决。

Kota 中通过 R 调用 imageJ 宏如下:

system("/Applications/ImageJ/ImageJ.app/Contents/MacOS/JavaApplicationStub -batch 
/Users/xxxx/Desktop/testmacro.txt")
Run Code Online (Sandbox Code Playgroud)

我正在使用的特定宏需要输入和输出目录。为了在 R 中进行编码,我在系统调用中添加了一个参数:

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

据我所知 imageJ 只支持传入一个参数。所以我用“ * ”分隔输入目录和输出目录。

imageJ 中的代码如下所示:

folders = getArgument;
delimiter = "*";
parts=split(folders, delimiter);
dir1 = parts[0];
dir2 = parts[1];
Run Code Online (Sandbox Code Playgroud)

最令人意外的事情是,通常通过 imageJ 中的宏打印的日志文件现在显示在 R 控制台中。

恶作剧管理。