我想使用imagej对数千张图像进行一些处理。

有没有办法使用任何一般的ImageJ插件并将其应用于数百个图像?

例如,说我想拍摄我的千张图像,并将极地转换应用到每个----

可以在此处找到用于ImageJ的极性转换插件:

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

伟大的!让我们使用它。从:

http://albert.rierol.net/imagej_programming_tutorials.html#how%20to%20automate%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 以下面的方式:

http://gist.github.com/452826

...沿着建议的线模糊 斐济插件设计指南, ,同时仍只是尝试对原始代码进行最小的更改。然后,您可以创建插件对象并调用 exec(...) 在它提供您想要的选项上。 (我还没有真正测试过该补丁,但是您明白了。)

我希望这有所帮助 - 不过,我看到您的问题已经前一段时间了,所以我想您可能在此期间发现了其他一些解决方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top