Pregunta

Quiero usar ImageJ a hacer algo de procesamiento de varios miles de imágenes.

¿Hay una manera de tomar cualquier conector general ImageJ y aplicarlo a cientos de imágenes de forma automática?

Por ejemplo, digo que quiero llevar a mis miles de imágenes y aplicar una transformación polar para cada uno ---

Una transformación polar plug-in para ImageJ se puede encontrar aquí:

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

Gran! Usémoslo. De:

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

Me parece que puedo aplicar un plugin usando la siguiente:

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

Esto es bueno ya que suprime el cuadro de diálogo que de otro modo pop-up para cada imagen. Sin embargo, la ejecución de este siempre aparece una ventana que contiene la imagen transformada, cuando lo que quiero es simplemente devuelve la imagen transformada.

La forma más estúpida de hacer lo que yo quiero es simplemente cierre la ventana que aparece y vuelva a la imagen que se estaba mostrando.

¿Lo que yo quiero, pero es absolutamente retraso:

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

Obviamente estoy perdiendo algo acerca de cómo usar plugins ImageJ en un contexto de programación. ¿Alguien sabe la manera correcta de hacer esto?

Gracias, --Robert McIntyre

¿Fue útil?

Solución

Por desgracia, es muy común que los plugins ImageJ a escribir sin uso programático en mente, y no hay realmente una manera elegante de moverse que sin cambiar el código del plugin. (Ya hemos descubierto que hay formas insatisfactorias alrededor de ella :)) Por lo tanto, en su posición acabo cambiaría el código en Polar_Transformer.java de la siguiente manera:

http://gist.github.com/452826

... que es vagamente a lo largo de las líneas sugeridas en el Fiji PlugIn Diseño directrices , mientras que todavía está tratando de hacer sólo cambios mínimos en el código original. A continuación, sólo puede crear el objeto plugin y exec(...) llamada en que el suministro de las opciones que desee. (En realidad no he probado ese parche, pero usted consigue la idea.)

Espero que sea de alguna ayuda - Veo que su pregunta fue hace algún tiempo, sin embargo, así que supongo que puede haber encontrado alguna otra solución en la media hora

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top