5

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

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

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

但我不知道如何实现这一点(我的宏已经使用批处理,所以这部分是不必要的)。

4

3 回答 3

3

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

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

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 只支持传入一个参数。所以我用“*”分隔了我的输入目录和输出目录。

imageJ 中的代码如下所示:

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

最好的一点出乎意料的是,通常通过 imageJ 中的宏打印的日志文件现在显示在 R 控制台中。

恶作剧管理。

于 2013-09-25T16:46:36.220 回答
2

这是从 CL(在 osx 中)运行宏文件“test.ijm”的示例。您可能可以将此命令包装在 R 中(未经测试)。宏文件的路径应该是完整路径,而不是相对路径。

/Applications/ImageJ/ImageJ.app/Contents/MacOS/JavaApplicationStub -batchpath /tmp/test.ijm
于 2013-09-25T00:18:58.103 回答
1

你试过Bio7吗?它是 ImageJ 的一个发行版,嵌入在一个 Eclipse RCP 应用程序中,它使用Rserve进行了许多出色的 R 集成。

值得一提的是,我们还致力于ImageJ2中的R 脚本集成

于 2013-09-26T16:58:58.807 回答