Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java或clojure中的ImageJ进行批处理?_Java_Image Processing_Clojure_Image Manipulation_Imagej - Fatal编程技术网

如何使用Java或clojure中的ImageJ进行批处理?

如何使用Java或clojure中的ImageJ进行批处理?,java,image-processing,clojure,image-manipulation,imagej,Java,Image Processing,Clojure,Image Manipulation,Imagej,我想用ImageJ对几千张图像进行一些处理 有没有一种方法可以将任何通用的imageJ插件自动应用于数百张图像 例如,假设我想拍摄上千张图像,并对每一张图像应用极坐标变换--- ImageJ的极坐标转换插件可在以下位置找到: 太好了!让我们使用它。发件人: 我发现我可以使用以下方法应用插件: (defn x-polar [imageP] (let [thread (Thread/currentThread) options ""] (.setName thr

我想用ImageJ对几千张图像进行一些处理

有没有一种方法可以将任何通用的imageJ插件自动应用于数百张图像

例如,假设我想拍摄上千张图像,并对每一张图像应用极坐标变换---

ImageJ的极坐标转换插件可在以下位置找到:

太好了!让我们使用它。发件人:

我发现我可以使用以下方法应用插件:

(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插件的内容。 有人知道这样做的正确方法吗

谢谢,
--罗伯特·麦金太尔(Robert McIntyre)

不幸的是,ImageJ插件在编写时通常不考虑编程用途,而且在不更改插件代码的情况下,也没有一种优雅的方法来解决这个问题。(您已经发现有一些不令人满意的方法:))因此,在您的位置上,我将以以下方式更改
Polar_Transformer.java
中的代码:

。。。这与中建议的思路大致相同,但仍试图对原始代码进行最小的更改。然后,您只需创建PlugIn对象并在其上调用
exec(…)
,提供所需的选项。(我还没有真正测试过这个补丁,但你知道了。)


我希望这能有所帮助——我知道你的问题是很久以前的事了,所以我猜你可能同时找到了其他解决办法。

这非常有用,也是一个很好的解释。我把这个项目搁置一边,并将很快返回,所以答案仍然是相关的。谢谢