ImageJ - 即使遇到错误,如何继续批处理

时间:2012-10-12 10:58:56

标签: java error-handling batch-processing imagej

我在ImageJ中编写了一个宏来在BMP图像文件列表上运行批量“测量”。我使用headless.jar在无头模式下在远程linux机器上运行代码。

每当ImageJ在读取/加载列表中的图像时遇到错误或异常,它就会退出进程。因此,我必须不断监视进程并手动强制ImageJ跳过该文件。

有没有办法可以强制ImageJ继续进程,即使遇到错误/异常?并在日志或其他文件中报告文件名?

1 个答案:

答案 0 :(得分:0)

无法在ImageJ宏语言中显式处理异常。但是,您可以通过在进行有问题的宏调用之前检查先决条件等来防范某些类型的异常。

例如,如果您的文件列表包含不存在的文件,则可以使用File.exists(path) [1]确保该文件存在,然后再尝试打开它。

当然,并非所有错误条件都可以通过这种方式轻松检查(例如,格式错误的BMP),因此我同意medPhys-pl重写宏作为Imagej插件是最完整的解决方案。使用宏记录器(Plugins > Macros > Record)设置为以插件模式而不是宏记录时,您可以获得良好的开端。一旦您有相关的命令要执行,您可以使用FijiScript Editor轻松将它们打包成插件:

  1. File > New > Script
  2. Language > Java
  3. Templates > Java > Bare PlugIn
  4. 将您的命令粘贴到run方法。
  5. 有关编写ImageJ插件的更多详细信息,请参阅斐济维基Introduction into Developing Plugins