我在ImageJ中写了一个宏,在BMP图像文件列表上运行批处理“度量值”。我使用headless.jar在远程linux机器上以无头模式运行代码。
每当ImageJ在读取/加载列表中的图像时遇到错误或异常,它将退出该进程。因此,我必须不断地监视进程,并手动强制ImageJ跳过文件。
是否有一种方法可以强迫ImageJ继续该进程,即使它遇到了错误/异常?并报告文件名,可能在日志或其他文件中?
发布于 2012-10-18 19:23:43
不可能显式地处理ImageJ宏语言中的异常。但是,在进行有问题的宏调用之前,可以通过检查先决条件等来防范某些类型的异常。
例如,如果您的文件列表包含不存在的文件,则可以在尝试打开文件之前使用File.exists(path)
[1]来确保文件的存在。
当然,并不是所有的错误条件都可以这样轻易地检查(例如,格式错误的BMPs),所以我同意medPhys的观点,即将宏重写为Imagej插件是最完整的解决方案。使用宏记录器(Plugins > Macros > Record
)设置为以插件模式记录,而不是宏模式,您可以获得一个良好的开端。一旦您有了要执行的相关命令,就可以使用斐济的脚本编辑器轻松地将它们打包到插件中。
File > New > Script
Language > Java
Templates > Java > Bare PlugIn
run
方法中。有关编写开发插件简介插件的更多细节,请参见斐济wiki的ImageJ。
https://stackoverflow.com/questions/12857581
复制相似问题