簡體   English   中英

如何在Java或clojure中使用ImageJ進行批量圖像處理?

[英]How can I do batch image processing with ImageJ in Java or clojure?

我想使用ImageJ來處理幾千個圖像。

有沒有辦法采取任何一般的imageJ插件並自動應用於數百個圖像?

例如,假設我想拍攝我的一千張圖像並對每個圖像應用極化變換---

可以在此處找到ImageJ的極性轉換插件:

http://rsbweb.nih.gov/ij/plugins/polar-transformer.html

大! 我們來使用吧。 從:

http://albert.rierol.net/imagej_programming_tutorials.html#How%20to%20automate%20an%20ImageJ%20dialog

我發現我可以使用以下方法應用插件:

(defn x-polar 
  [imageP]
  (let [thread (Thread/currentThread)
        options ""]
    (.setName thread "Run$_polar-transform")
    (Macro/setOptions thread options)
    (IJ/runPlugIn imageP "Polar_Transformer" "")))

這很好,因為它會抑制對話框,否則會彈出每個圖像。 但是運行它總是會顯示一個包含轉換后圖像的窗口,當我想要的只是返回轉換后的圖像時。

做我想做的最愚蠢的方法是關閉出現的窗口並返回它正在顯示的圖像。

我想要的是絕對遲鈍的:

(defn x-polar 
  [imageP]
  (let [thread (Thread/currentThread)
        options ""]
    (.setName thread "Run$_polar-transform")
    (Macro/setOptions thread options)
    (IJ/runPlugIn imageP "Polar_Transformer" "")
    (let [return-image (IJ/getImage)]
      (.hide return-image)
      return-image)))

我顯然缺少一些關於如何在編程上下文中使用imageJ插件的東西。 有誰知道這樣做的正確方法?

謝謝, - 羅伯特麥金太爾

不幸的是,ImageJ插件在沒有編程使用的情況下編寫是很常見的,並且在沒有更改插件代碼的情況下,實際上沒有一種優雅的方法可以解決這個問題。 (你已經發現它周圍的方法不盡如人意:))因此,在你的位置我只Polar_Transformer.java通過以下方式更改Polar_Transformer.java中的代碼:

http://gist.github.com/452826

......這在斐濟插件設計指南中的含義上是模糊的,同時仍試圖對原始代碼進行微小的更改。 然后你可以創建PlugIn對象並在其上調用exec(...) ,提供你想要的選項。 (我還沒有真正測試過這個補丁,但你明白了。)

我希望有一些幫助 - 我看到你的問題是不久前的,所以我想你可能在同一時間找到了其他一些解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM