Domanda

Voglio usare ImageJ per fare qualche trattamento di diverse migliaia di immagini.

C'è un modo per prendere alcun plugin generale ImageJ e applicarlo a centinaia di immagini automaticamente?

Per esempio, dico che voglio prendere le mie mille immagini e applicare una trasformazione polare per ogni ---

Una trasformazione polare Plugin per ImageJ può essere trovato qui:

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

Grande! Lo si può usare. Da:

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

Trovo che posso applicare un plugin utilizzando la seguente:

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

Questo è un bene perché sopprime la finestra di dialogo che altrimenti pop-up per ogni immagine. Ma l'esecuzione di questo porta sempre una finestra contenente l'immagine trasformata, quando quello che voglio è semplicemente restituire l'immagine trasformata.

Il modo più stupido per fare quello che voglio è quello proprio vicino alla finestra che si apre e riportare l'immagine che si stava visualizzando.

Fa quello che voglio, ma è assolutamente ritardato:

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

Sono ovviamente manca qualcosa su come utilizzare i plugin ImageJ in un contesto di programmazione. Qualcuno sa il modo giusto per fare questo?

Grazie, --Robert McIntyre

È stato utile?

Soluzione

Purtroppo, è molto comune per i plugin di ImageJ da scrivere senza l'uso programmatico in mente, e non c'è davvero un modo elegante di muoversi che senza modificare il codice del plugin. (Hai già scoperto che ci sono modi insoddisfacenti intorno ad esso :)) Quindi, nella tua posizione che sarebbe solo modificare il codice Polar_Transformer.java nel seguente modo:

http://gist.github.com/452826

... che è vagamente lungo le linee suggerite nel Fiji PlugIn design Linee guida , mentre ancora cercando di fare solo modifiche minime al codice originale. Poi si può solo creare l'oggetto PlugIn e call exec(...) su di esso fornendo le opzioni desiderate. (Non ho davvero provato che patch, ma si ottiene l'idea.)

Spero che sia di qualche aiuto - Vedo che la tua domanda era qualche tempo fa, però, quindi credo che si puo 'trovare qualche altra soluzione alternativa nel frattempo

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top