2012-10-12 77 views
0

我在ImageJ中編寫了一個宏,在BMP圖像文件列表上運行批量「測量」。我使用headless.jar以無頭模式在遠程Linux機器上運行代碼。ImageJ - 即使遇到錯誤,如何繼續批處理

每當ImageJ在列表中讀取/加載圖像時遇到錯誤或異常,它都會退出該過程。因此,我必須不斷監視進程並手動強制ImageJ跳過文件。

有沒有一種方法可以強制ImageJ繼續執行該過程,即使遇到了錯誤/異常?並可能在日誌或其他文件中報告文件名?

+0

這聽起來像你應該考慮重寫你的宏作爲Java插件。這會讓您選擇執行所需的錯誤處理。 –

回答

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方法。

有關編寫ImageJ插件的更多詳細信息,請參閱斐濟wiki的Introduction into Developing Plugins

相關問題