/** Replaces the image with the specified stack and updates the display. */ public void setStack(ImageStack stack) { setStack(null, stack); }
/** Constructs an ImagePlus from a stack. */ public ImagePlus(String title, ImageStack stack) { setStack(title, stack); setID(); }
/** Constructs an ImagePlus from a stack. */ public ImagePlus(String title, ImageStack stack) { setStack(title, stack); setID(); }
public void setStack(ImageStack newStack, int channels, int slices, int frames) { if (newStack==null || channels*slices*frames!=newStack.getSize()) throw new IllegalArgumentException("channels*slices*frames!=stackSize"); if (IJ.debugMode) IJ.log("setStack: "+newStack.getSize()+" "+channels+" "+slices+" "+frames+" "+isComposite()); compositeChanges = channels!=this.nChannels; this.nChannels = channels; this.nSlices = slices; this.nFrames = frames; setStack(null, newStack); }
/** * Update the display image with the input image voxels. */ void updateDisplayImage() { int slice = displayImage.getCurrentSlice(); displayImage.setStack( inputStackCopy ); displayImage.setSlice( slice ); displayImage.updateAndDraw(); }
public void setStack(ImageStack newStack, int channels, int slices, int frames) { if (newStack==null || channels*slices*frames!=newStack.getSize()) throw new IllegalArgumentException("channels*slices*frames!=stackSize"); if (IJ.debugMode) IJ.log("setStack: "+newStack.getSize()+" "+channels+" "+slices+" "+frames+" "+isComposite()); compositeChanges = channels!=this.nChannels; this.nChannels = channels; this.nSlices = slices; this.nFrames = frames; setStack(null, newStack); }
private void run(ImagePlus imp, int filter, float radX, float radY, float radZ) { if (imp.isHyperStack()) { filterHyperstack(imp, filter, radX, radY, radZ); return; } ImageStack res = filter(imp.getStack(), filter, radX, radY, radZ); imp.setStack(res); }
private void run(ImagePlus imp, int filter, float radX, float radY, float radZ) { if (imp.isHyperStack()) { filterHyperstack(imp, filter, radX, radY, radZ); return; } ImageStack res = filter(imp.getStack(), filter, radX, radY, radZ); imp.setStack(res); }
public void deleteFrame() { int index = preview.getCurrentSlice(); stack.deleteSlice(index); preview.setStack(null, stack.getPreview()); preview.setSlice(index); }
void labelSlices(ImagePlus imp) { if (createOverlay) return; ImageStack stack = imp.getStack(); String units = getUnits(imp); for (int i=1; i<=stack.getSize(); i++) drawScaleBar(stack.getProcessor(i), units); imp.setStack(stack); }
void reverse(){ for(int iSlice = 1; iSlice < numSlices; iSlice++){ stack.addSlice(stack.getSliceLabel(1), stack.getProcessor(1),numSlices - iSlice + 1); stack.deleteSlice(1); } imp.setStack(null,stack); imp.updateAndDraw(); } void sortByLabel(){
void labelSlices(ImagePlus imp) { if (createOverlay) return; ImageStack stack = imp.getStack(); String units = getUnits(imp); for (int i=1; i<=stack.getSize(); i++) drawScaleBar(stack.getProcessor(i), units); imp.setStack(stack); }
void last(){ if(slice!=numSlices){ stack.addSlice(stack.getSliceLabel(slice), stack.getProcessor(slice),numSlices); stack.deleteSlice(slice); imp.setStack(null,stack); imp.setSlice(numSlices); imp.updateAndDraw(); } } void dup(){
void first(){ if(slice!=1){ stack.addSlice(stack.getSliceLabel(slice), stack.getProcessor(slice),0); stack.deleteSlice(slice+1); imp.setStack(null,stack); imp.setSlice(1); imp.updateAndDraw(); } } void bkwd(){
void bkwd(){ if(slice!=numSlices){ stack.addSlice(stack.getSliceLabel(slice), stack.getProcessor(slice),slice+1); stack.deleteSlice(slice); imp.setStack(null,stack); imp.setSlice(slice+1); imp.updateAndDraw(); } } void fwd(){
void fwd(){ if(slice!=1){ stack.addSlice(stack.getSliceLabel(slice), stack.getProcessor(slice),slice-2); stack.deleteSlice(slice+1); imp.setStack(null,stack); imp.setSlice(slice-1); imp.updateAndDraw(); } } void last(){
void dup(){ stack.addSlice(stack.getSliceLabel(slice), stack.getProcessor(slice).duplicate(),slice); imp.setStack(null,stack); imp.setSlice(slice+1); imp.updateAndDraw(); } void dupN(){
public static void duplicateFrames(ImagePlus imp, int slice, int num) { ImageStack stack = imp.getStack(); int w = imp.getWidth(), h = imp.getHeight(); ImageProcessor frame = stack.getProcessor(slice).duplicate(); for(int n = 0; n < num; n++) stack.addSlice("", frame, slice + n); // causes the change from image window to stack window imp.setStack(null, stack); } }
public static void addFrames(ImagePlus imp, int slice, int num) { ImageStack stack = imp.getStack(); int w = imp.getWidth(), h = imp.getHeight(); ImageProcessor frame = stack.getProcessor(slice). createProcessor(w, h); frame.setValue(0); frame.fill(); for(int n = 0; n < num; n++) stack.addSlice("", frame, slice + n); // causes the change from image window to stack window imp.setStack(null, stack); } }
public void setFrame() { int index = preview.getCurrentSlice(); if(!IJ.getImage().getTitle().equals( stack.getPreview().getSliceLabel(index))) return; ImageProcessor ip = IJ.getImage().getProcessor(); stack.setSlice(index, ip); IJ.getImage().changes = false; IJ.getImage().close(); preview.setStack(null, stack.getPreview()); preview.setSlice(index); }