Changeset 3464


Ignore:
Timestamp:
12/11/07 12:53:44 (12 years ago)
Author:
melissa
Message:

When constructing a CompositeImage, the source stack must be in XYCZT order.

Location:
trunk/loci/plugins
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/plugins/Colorizer.java

    r3463 r3464  
    166166          // in case ImageJ version is too old 
    167167          try { 
    168             r.setVar("imp", imp); 
     168            r.setVar("imp", Util.reorder(imp, stackOrder, "XYCZT")); 
    169169            newImp = (ImagePlus) 
    170170              r.exec("new CompositeImage(imp, CompositeImage.COMPOSITE)"); 
     
    217217                imp.setDimensions(n, imp.getNSlices()*num[n - 2], 
    218218                  imp.getNFrames()); 
    219                 r.setVar("imp", imp); 
     219                r.setVar("imp", Util.reorder(imp, stackOrder, "XYCZT")); 
    220220                r.exec("mode = CompositeImage.COMPOSITE"); 
    221221                r.exec("newImp = new CompositeImage(imp, mode)"); 
  • trunk/loci/plugins/Slicer.java

    r3463 r3464  
    157157          ReflectedUniverse r = new ReflectedUniverse(); 
    158158          r.exec("import ij.CompositeImage"); 
    159           r.setVar("p", p); 
     159          r.setVar("p", Util.reorder(p, stackOrder, "XYCZT")); 
    160160          r.exec("c = new CompositeImage(p, CompositeImage.COMPOSITE)"); 
    161161          r.exec("c.show()"); 
  • trunk/loci/plugins/Util.java

    r3463 r3464  
    416416  } 
    417417 
     418  /** Reorder the given ImagePlus' stack. */ 
     419  public static ImagePlus reorder(ImagePlus imp, String oldOrder, 
     420    String newOrder) 
     421  { 
     422    ImageStack s = imp.getStack(); 
     423    ImageStack newStack = new ImageStack(s.getWidth(), s.getHeight()); 
     424 
     425    int z = imp.getNSlices(); 
     426    int c = imp.getNChannels(); 
     427    int t = imp.getNFrames(); 
     428 
     429    for (int i=0; i<s.getSize(); i++) { 
     430      int[] target = 
     431        FormatTools.getZCTCoords(newOrder, z, c, t, s.getSize(), i); 
     432      int ndx = FormatTools.getIndex(oldOrder, z, c, t, s.getSize(), 
     433        target[0], target[1], target[2]); 
     434      newStack.addSlice(s.getSliceLabel(ndx + 1), s.getProcessor(ndx + 1)); 
     435    } 
     436    ImagePlus p = new ImagePlus(imp.getTitle(), newStack); 
     437    p.setDimensions(c, z, t); 
     438    p.setCalibration(imp.getCalibration()); 
     439    return p; 
     440  } 
     441 
    418442} 
Note: See TracChangeset for help on using the changeset viewer.