void labelSlices(){ for(int iSlice = 1; iSlice <= numSlices; iSlice++){ String title = ""+iSlice; if(iSlice < 10){ title = "00000"+title; }else if(iSlice < 100){ title = "0000"+title; }else if(iSlice < 1000){ title = "000"+title; }else if(iSlice < 10000){ title = "00"+title; }else if(iSlice < 100000){ title = "0"+title; } stack.setSliceLabel(title,iSlice); } imp.setStack(null,stack); imp.updateAndDraw(); } void reverse(){
/** * Merge input channels if they are more than 1 * @param channels results channels * @return result image */ ArrayList< ImagePlus > mergeResultChannels(final ArrayList<ImagePlus>[] channels) { if(channels.length > 1) { ArrayList< ImagePlus > mergedList = new ArrayList<ImagePlus> (); for(int i=0; i<channels[0].size(); i++) { ImageStack mergedColorStack = mergeStacks(channels[0].get(i).getImageStack(), channels[1].get(i).getImageStack(), channels[2].get(i).getImageStack()); ImagePlus merged = new ImagePlus(channels[0].get(i).getTitle(), mergedColorStack); for(int n = 1; n <= merged.getImageStackSize(); n++) merged.getImageStack().setSliceLabel(channels[0].get(i).getImageStack().getSliceLabel(n), n); mergedList.add( merged ); } return mergedList; } else return channels[0]; }
/** * Merge input channels if they are more than 1 * @param channels results channels * @return result image */ ArrayList< ImagePlus > mergeResultChannels(final ArrayList<ImagePlus>[] channels) { if(channels.length > 1) { ArrayList< ImagePlus > mergedList = new ArrayList<ImagePlus> (); for(int i=0; i<channels[0].size(); i++) { ImageStack mergedColorStack = mergeStacks(channels[0].get(i).getImageStack(), channels[1].get(i).getImageStack(), channels[2].get(i).getImageStack()); ImagePlus merged = new ImagePlus(channels[0].get(i).getTitle(), mergedColorStack); for(int n = 1; n <= merged.getImageStackSize(); n++) merged.getImageStack().setSliceLabel(channels[0].get(i).getImageStack().getSliceLabel(n), n); mergedList.add( merged ); } return mergedList; } else return channels[0]; }
private static void setSliceLabels( ImagePlus imp, FileInfo fileInfo ) { if (fileInfo.sliceLabels != null) { if (imp.getStackSize() < 2) { if (fileInfo.sliceLabels.length > 0) { imp.setProperty("Label", fileInfo.sliceLabels[0]); } } else { ImageStack stack = imp.getStack(); for (int i = 0; i < fileInfo.sliceLabels.length && i < stack.getSize(); i++) { stack.setSliceLabel(fileInfo.sliceLabels[i], i + 1); } } } }
private void removeStackLabels() { ImagePlus imp = IJ.getImage(); int size = imp.getStackSize(); if (size==1) IJ.error("Stack required"); else { ImageStack stack = imp.getStack(); for (int i=1; i<=size; i++) stack.setSliceLabel(null, i); imp.repaintWindow(); } }
private void removeStackLabels() { ImagePlus imp = IJ.getImage(); int size = imp.getStackSize(); if (size==1) IJ.error("Stack required"); else { ImageStack stack = imp.getStack(); for (int i=1; i<=size; i++) stack.setSliceLabel(null, i); imp.repaintWindow(); } }
void setMetadata() { String metadata = null; String arg1 = getFirstString(); if (interp.nextToken()==',') metadata = getLastString(); else interp.getRightParen(); ImagePlus imp = getImage(); boolean isInfo = false; if (metadata==null) { // one argument metadata = arg1; if (imp.getStackSize()==1) isInfo = true; if (metadata.startsWith("Info:")) { metadata = metadata.substring(5); isInfo = true; } } else isInfo = arg1.startsWith("info") || arg1.startsWith("Info"); if (metadata!=null && metadata.length()==0) metadata = null; if (isInfo) imp.setProperty("Info", metadata); else { imp.getStack().setSliceLabel(metadata, imp.getCurrentSlice()); if (imp.getStackSize()==1) imp.setProperty("Label", metadata); if (!Interpreter.isBatchMode()) imp.repaintWindow(); } }
slices.deleteSlice(1); // delete original image for(int i = 1; i <= slices.getSize() ; i++) slices.setSliceLabel(availableFeatures[ANISOTROPIC_DIFFUSION] + "_" + (saveSteps * i) + "_" + nb_smoothings + "_" + a1 + "_" + a2 +"_" + edgeThreshold, i);
void addSlice() { if (imp.isHyperStack() || imp.isComposite()) { addHyperstackChannelSliceOrFrame(); return; } if (!imp.lock()) return; int id = 0; ImageStack stack = imp.getStack(); if (stack.getSize()==1) { String label = stack.getSliceLabel(1); if (label!=null && label.indexOf("\n")!=-1) stack.setSliceLabel(null, 1); Object obj = imp.getProperty("Label"); if (obj!=null && (obj instanceof String)) stack.setSliceLabel((String)obj, 1); id = imp.getID(); } ImageProcessor ip = imp.getProcessor(); int n = imp.getCurrentSlice(); if (IJ.altKeyDown()) n--; // insert in front of current slice stack.addSlice(null, ip.createProcessor(width, height), n); imp.setStack(null, stack); imp.setSlice(n+1); imp.unlock(); imp.changes = true; if (id!=0) IJ.selectWindow(id); // prevents macros from failing }
private void showOutput() { if (interrupted) return; if (outStack!=null) { outImp = new ImagePlus(TITLE_PREFIX[processType]+imp.getShortTitle(), outStack); int[] d = imp.getDimensions(); outImp.setDimensions(d[2], d[3], d[4]); for (int i=1; i<=imp.getStackSize(); i++) outStack.setSliceLabel(imp.getStack().getSliceLabel(i), i); } if (outImageType != BYTE_OVERWRITE) { ImageProcessor ip = outImp.getProcessor(); if (!Prefs.blackBackground) ip.invertLut(); ip.resetMinAndMax(); outImp.show(); } }
/** * Merge input channels if they are more than 1 * @param channels results channels * @return result image */ ImagePlus mergeResultChannels(final ImagePlus[] channels) { if(channels.length > 1) { ImageStack mergedColorStack = mergeStacks(channels[0].getImageStack(), channels[1].getImageStack(), channels[2].getImageStack()); ImagePlus merged = new ImagePlus(channels[0].getTitle(), mergedColorStack); for(int n = 1; n <= merged.getImageStackSize(); n++) merged.getImageStack().setSliceLabel(channels[0].getImageStack().getSliceLabel(n), n); return merged; } else return channels[0]; }
void swapStackImages(ImagePlus imp) { int n1 = (int)getFirstArg(); int n2 = (int)getLastArg(); ImageStack stack = imp.getStack(); int size = stack.getSize(); if (n1<1||n1>size||n2<1||n2>size) interp.error("Argument out of range"); Object pixels = stack.getPixels(n1); String label = stack.getSliceLabel(n1); stack.setPixels(stack.getPixels(n2), n1); stack.setSliceLabel(stack.getSliceLabel(n2), n1); stack.setPixels(pixels, n2); stack.setSliceLabel(label, n2); int current = imp.getCurrentSlice(); if (imp.isComposite()) { CompositeImage ci = (CompositeImage)imp; if (ci.getMode()==IJ.COMPOSITE) { ci.reset(); imp.updateAndDraw(); imp.repaintWindow(); return; } } if (n1==current || n2==current) imp.setStack(null, stack); }
/** * Merge input channels if they are more than 1 * @param channels results channels * @return result image */ ImagePlus mergeResultChannels(final ImagePlus[] channels) { if(channels.length > 1) { ImageStack mergedColorStack = mergeStacks(channels[0].getImageStack(), channels[1].getImageStack(), channels[2].getImageStack()); ImagePlus merged = new ImagePlus(channels[0].getTitle(), mergedColorStack); for(int n = 1; n <= merged.getImageStackSize(); n++) merged.getImageStack().setSliceLabel(channels[0].getImageStack().getSliceLabel(n), n); return merged; } else return channels[0]; }
private void showOutput() { if (interrupted) return; if (outStack!=null) { outImp = new ImagePlus(TITLE_PREFIX[processType]+imp.getShortTitle(), outStack); int[] d = imp.getDimensions(); outImp.setDimensions(d[2], d[3], d[4]); for (int i=1; i<=imp.getStackSize(); i++) outStack.setSliceLabel(imp.getStack().getSliceLabel(i), i); } if (outImageType != BYTE_OVERWRITE) { ImageProcessor ip = outImp.getProcessor(); if (!Prefs.blackBackground) ip.invertLut(); ip.resetMinAndMax(); outImp.show(); } }
void swapStackImages(ImagePlus imp) { int n1 = (int)getFirstArg(); int n2 = (int)getLastArg(); ImageStack stack = imp.getStack(); int size = stack.getSize(); if (n1<1||n1>size||n2<1||n2>size) interp.error("Argument out of range"); Object pixels = stack.getPixels(n1); String label = stack.getSliceLabel(n1); stack.setPixels(stack.getPixels(n2), n1); stack.setSliceLabel(stack.getSliceLabel(n2), n1); stack.setPixels(pixels, n2); stack.setSliceLabel(label, n2); int current = imp.getCurrentSlice(); if (imp.isComposite()) { CompositeImage ci = (CompositeImage)imp; if (ci.getMode()==IJ.COMPOSITE) { ci.reset(); imp.updateAndDraw(); imp.repaintWindow(); return; } } if (n1==current || n2==current) imp.setStack(null, stack); }
private void showOutput() { if (interrupted) return; if (outStack!=null) { outImp = new ImagePlus(TITLE_PREFIX[processType]+imp.getShortTitle(), outStack); int[] d = imp.getDimensions(); outImp.setDimensions(d[2], d[3], d[4]); for (int i=1; i<=imp.getStackSize(); i++) outStack.setSliceLabel(imp.getStack().getSliceLabel(i), i); } if (outImageType != BYTE_OVERWRITE) { ImageProcessor ip = outImp.getProcessor(); if (!Prefs.blackBackground) ip.invertLut(); ip.resetMinAndMax(); outImp.show(); } }
private void setSliceLabel() { ImagePlus imp = IJ.getImage(); int size = imp.getStackSize(); if (size==1) { IJ.error("Stack required"); return; } ImageStack stack = imp.getStack(); int n = imp.getCurrentSlice(); String label = stack.getSliceLabel(n); String label2 = label; if (label2==null) label2 = ""; GenericDialog gd = new GenericDialog("Set Slice Label ("+n+")"); gd.addStringField("Label:", label2, 30); gd.showDialog(); if (gd.wasCanceled()) return; label2 = gd.getNextString(); if (label2!=label) { stack.setSliceLabel(label2, n); imp.repaintWindow(); } }
private void setSliceLabel() { ImagePlus imp = IJ.getImage(); int size = imp.getStackSize(); if (size==1) { IJ.error("Stack required"); return; } ImageStack stack = imp.getStack(); int n = imp.getCurrentSlice(); String label = stack.getSliceLabel(n); String label2 = label; if (label2==null) label2 = ""; GenericDialog gd = new GenericDialog("Set Slice Label ("+n+")"); gd.addStringField("Label:", label2, 30); gd.showDialog(); if (gd.wasCanceled()) return; label2 = gd.getNextString(); if (label2!=label) { stack.setSliceLabel(label2, n); imp.repaintWindow(); } }
public void flipStack(ImagePlus imp) { ImageStack stack = imp.getStack(); int n = stack.getSize(); if (n==1) return; Calibration cal = imp.getCalibration(); double min = cal.getCValue(imp.getDisplayRangeMin()); double max = cal.getCValue(imp.getDisplayRangeMax()); ImageStack stack2 = new ImageStack(imp.getWidth(), imp.getHeight(), n); for (int i=1; i<=n; i++) { stack2.setPixels(stack.getPixels(i), n-i+1); stack2.setSliceLabel(stack.getSliceLabel(i), n-i+1); } stack2.setColorModel(stack.getColorModel()); imp.setStack(stack2); if (imp.isComposite()) { ((CompositeImage)imp).reset(); imp.updateAndDraw(); } IJ.setMinAndMax(imp, min, max); }
public void flipStack(ImagePlus imp) { ImageStack stack = imp.getStack(); int n = stack.getSize(); if (n==1) return; Calibration cal = imp.getCalibration(); double min = cal.getCValue(imp.getDisplayRangeMin()); double max = cal.getCValue(imp.getDisplayRangeMax()); ImageStack stack2 = new ImageStack(imp.getWidth(), imp.getHeight(), n); for (int i=1; i<=n; i++) { stack2.setPixels(stack.getPixels(i), n-i+1); stack2.setSliceLabel(stack.getSliceLabel(i), n-i+1); } stack2.setColorModel(stack.getColorModel()); imp.setStack(stack2); if (imp.isComposite()) { ((CompositeImage)imp).reset(); imp.updateAndDraw(); } IJ.setMinAndMax(imp, min, max); }