Question

Je veux utiliser ImageJ pour faire un peu de traitement de plusieurs milliers d'images.

Est-il possible de prendre un plugin ImageJ général et l'appliquer à des centaines d'images automatiquement?

Par exemple, dire que je veux prendre mes mille images et appliquer une transformation polaire à chaque ---

Un plugin transformation polaire pour ImageJ se trouve ici:

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

Great! Utilisons. De:

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

Je trouve que je peux appliquer un plug-in en utilisant ce qui suit:

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

Ce qui est bon, car il supprime la boîte de dialogue qui autrement apparaître pour chaque image. Mais l'exécution de ce fait toujours une fenêtre contenant l'image transformée, quand ce que je veux est de retourner simplement l'image transformée.

La plus stupide façon de faire ce que je veux est juste près de la fenêtre qui apparaît et retourner l'image qu'il déployait.

Est-ce que je veux, mais est absolument retardé:

(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)))

Je manque évidemment quelque chose sur la façon d'utiliser des plugins imagej dans un contexte de programmation. Est-ce que quelqu'un sait la bonne façon de le faire?

Merci, --Robert McIntyre

Était-ce utile?

La solution

Malheureusement, il est très fréquent que les plug-ins ImageJ à écrire sans utiliser de programmation à l'esprit, et il n'y a pas vraiment une façon élégante de se déplacer que sans changer le code du plug-in. (Vous avez déjà découvert qu'il existe des moyens peu satisfaisants autour d'elle :)) Donc, dans votre position que je voudrais simplement changer le code Polar_Transformer.java de la manière suivante:

http://gist.github.com/452826

... qui est vaguement le long des lignes proposées dans le Fidji PlugIn Conception directives , tout en essayant de simplement faire des changements minimes au code d'origine. Ensuite, vous pouvez juste créer l'objet et PlugIn exec(...) d'appel à ce sujet fournissant les options souhaitées. (Je ne l'ai pas vraiment testé ce patch, mais vous voyez l'idée.)

J'espère que ce de l'aide - Je vois que votre question était il y a quelque temps, cependant, donc je suppose que vous avez trouvé une autre solution de contournement dans le même temps

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top