Login  Register

Re: Auto-ROI selection on XY point

Posted by Jan Eglinger on May 14, 2018; 3:43pm
URL: http://imagej.273.s1.nabble.com/Auto-ROI-selection-on-XY-point-tp5020658p5020664.html

Dear Santiago,

the doWand() method is a *static* method of the ij.IJ utility class [1].
The following call should work:

     IJ.doWand(imp, x, y, 5.0, "Legacy")


A few other comments:

- For questions like this, I warmly recommend using the ImageJ forum
[2], as it permits to use code formatting and syntax highlighting.


 > //@ ImagePlus imp

- When converting from Python to Groovy, there's no need to convert the
comment syntax for script parameters. The new hash-at (#@) syntax [3] is
*language-agnostic* and therefore works in both Python and Groovy.


Cheers
Jan

[1]: http://javadoc.scijava.org/ImageJ1/ij/IJ.html
[2]: http://forum.imagej.net/
[3]: https://imagej.net/Script_Parameters



On 12.05.2018 22:07, tisalon wrote:

> Hi everyone,
>
> I am currently writing a script to measure the fluorescence of moving
> objects. For that purpose, I segment images using the WEKA library and then
> track the particles with TrackMate. I am aware that I can get the mean and
> median fluorescence, but I will need to do some sub-pixel localisation.
> Therefore, what I am doing is to extract the XY centres of each track and
> now I would like to generate some kind of ROI that cover the whole binary
> section. I thought I could make this by calling the magic wand at the point
> XY, but seems doWand(imp, x,y,...) does not work. Below the code I am using
> for the TrackMate section, which it is indeed a translation to groovy of the
> python example from the internet:
>
> //@ ImagePlus imp
> //@ File (style = "directory", label = "Output folder") outputFolder
> //@ String (label = "Output file name") filename
> //@ double (label = "Spot radius", stepSize=0.1) radius
> //@ double (label = "Quality threshold") threshold
> //@ int (label = "Max frame gap") frameGap
> //@ double (label = "Linking max distance") linkingMax
> //@ double (label = "Gap-closing max distance") closingMax
>
> import fiji.plugin.trackmate.Model
> import fiji.plugin.trackmate.Settings
> import fiji.plugin.trackmate.TrackMate
>
> import fiji.plugin.trackmate.detection.LogDetectorFactory
>
> import fiji.plugin.trackmate.tracking.LAPUtils
> import fiji.plugin.trackmate.tracking.sparselap.SparseLAPTrackerFactory
>
> import fiji.plugin.trackmate.action.ExportTracksToXML
> import ij.*
> import ij.*
> import ij.ImagePlus
> import ij.WindowManager
> import ij.plugin.*
>
>
> imp = IJ.openImage('http://fiji.sc/samples/FakeTracks.tif')
>
> // Swap Z and T dimensions if T=1
> dims = imp.getDimensions() // default order: XYCZT
> if (dims[4] == 1) {
> imp.setDimensions( dims[2,4,3] )
> }
>
> // Setup settings for TrackMate
> settings = new Settings()
> settings.setFrom(imp)
> settings.dt = 0.05
>
> settings.detectorFactory = new LogDetectorFactory()
> settings.detectorSettings = settings.detectorFactory.getDefaultSettings()
> println settings.detectorSettings
>
> settings.detectorSettings['RADIUS'] = radius
> settings.detectorSettings['THRESHOLD'] = threshold
> println settings.detectorSettings
>
> settings.trackerFactory = new SparseLAPTrackerFactory()
> settings.trackerSettings = LAPUtils.getDefaultLAPSettingsMap()
>
> settings.trackerSettings['MAX_FRAME_GAP']  = frameGap
> settings.trackerSettings['LINKING_MAX_DISTANCE']  = linkingMax
> settings.trackerSettings['GAP_CLOSING_MAX_DISTANCE']  = closingMax
>
> // Run TrackMate and store data into Model
> model = new Model()
> trackmate = new TrackMate(model, settings)
>
> println trackmate.checkInput()
> println trackmate.process()
> println trackmate.getErrorMessage()
>
> println model.getSpots().getNSpots(true)
> println model.getTrackModel().nTracks(true)
>
>
> for (id in model.getTrackModel().trackIDs( true )) { // loop over tracks
>
> track = model.getTrackModel().trackSpots(1) // get ith-track
>
> for (spot in track) { // extrack coordinates
> x=spot.getFeature('POSITION_X')
>      y=spot.getFeature('POSITION_Y')
>      println x
>      ij.gui.doWand(imp, x, y, 5.0, "Legacy") // do magic wand on X image
>      //IJ.run(imp, "Measure", "") // Measure in original image
>
> }
>    }
>
>
>
>
> --
> Sent from: http://imagej.1557.x6.nabble.com/
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html