private void setROIposition(final Roi roi, final int c, final double z, final int t, final boolean hyperStack) { if (hyperStack) // NB: ROI position uses 1-based indices roi.setPosition(c, (int) z + 1, t); else roi.setPosition((int) z + 1); }
private void setPosition(Roi roi, String pos1, String pos2) { if (pos1.equals(pos2)) return; if (pos2.equals("none") || pos2.equals("0")) { roi.setPosition(0); return; } String[] positions = Tools.split(pos2, " ,"); if (positions.length==1) { double stackPos = Tools.parseDouble(positions[0]); if (!Double.isNaN(stackPos)) roi.setPosition((int)stackPos); return; } if (positions.length==3) { int[] pos = new int[3]; for (int i=0; i<3; i++) { double dpos = Tools.parseDouble(positions[i]); if (Double.isNaN(dpos)) return; else pos[i] = (int)dpos; } roi.setPosition(pos[0], pos[1], pos[2]); return; } }
/** Sets the position of this ROI based on the stack position of the specified image. */ public void setPosition(ImagePlus imp ) { if (imp==null) return; if (imp.isHyperStack()) { int channel = imp.getDisplayMode()==IJ.COMPOSITE?0:imp.getChannel(); setPosition(channel, imp.getSlice(), imp.getFrame()); } else if (imp.getStackSize()>1) setPosition(imp.getCurrentSlice()); else setPosition(0); }
/** Sets the position of this ROI based on the stack position of the specified image. */ public void setPosition(ImagePlus imp ) { if (imp==null) return; if (imp.isHyperStack()) { int channel = imp.getDisplayMode()==IJ.COMPOSITE?0:imp.getChannel(); setPosition(channel, imp.getSlice(), imp.getFrame()); } else if (imp.getStackSize()>1) setPosition(imp.getCurrentSlice()); else setPosition(0); }
/** Removes ROIs having positions outside of the * interval defined by firstSlice and lastSlice. * Marcel Boeglin, September 2013 */ public void crop(int firstSlice, int lastSlice) { for (int i=size()-1; i>=0; i--) { Roi roi = get(i); int position = roi.getPosition(); if (position>0) { if (position<firstSlice || position>lastSlice) remove(i); else roi.setPosition(position-firstSlice+1); } } }
/** Removes ROIs having positions outside of the * interval defined by firstSlice and lastSlice. * Marcel Boeglin, September 2013 */ public void crop(int firstSlice, int lastSlice) { for (int i=size()-1; i>=0; i--) { Roi roi = get(i); int position = roi.getPosition(); if (position>0) { if (position<firstSlice || position>lastSlice) remove(i); else roi.setPosition(position-firstSlice+1); } } }
private void setPosition(ImagePlus imp, Roi roi) { boolean setPos = defaultRoi.getPosition()!=0; int stackSize = imp.getStackSize(); if (setPos && stackSize>1) { if (imp.isHyperStack()||imp.isComposite()) { boolean compositeMode = imp.isComposite() && ((CompositeImage)imp).getMode()==IJ.COMPOSITE; int channel = !compositeMode||imp.getNChannels()==stackSize?imp.getChannel():0; if (imp.getNSlices()>1) roi.setPosition(channel, imp.getSlice(), 0); else if (imp.getNFrames()>1) roi.setPosition(channel, 0, imp.getFrame()); } else roi.setPosition(imp.getCurrentSlice()); } }
private void setPosition(ImagePlus imp, Roi roi) { boolean setPos = defaultRoi.getPosition()!=0; int stackSize = imp.getStackSize(); if (setPos && stackSize>1) { if (imp.isHyperStack()||imp.isComposite()) { boolean compositeMode = imp.isComposite() && ((CompositeImage)imp).getMode()==IJ.COMPOSITE; int channel = !compositeMode||imp.getNChannels()==stackSize?imp.getChannel():0; if (imp.getNSlices()>1) roi.setPosition(channel, imp.getSlice(), 0); else if (imp.getNFrames()>1) roi.setPosition(channel, 0, imp.getFrame()); } else roi.setPosition(imp.getCurrentSlice()); } }
private Overlay projectStackRois(Overlay overlay) { if (overlay==null) return null; Overlay overlay2 = overlay.create(); Roi roi; int s; for (Roi r : overlay.toArray()) { s = r.getPosition(); roi = (Roi)r.clone(); if (s>=startSlice && s<=stopSlice || s==0) { roi.setPosition(s); overlay2.add(roi); } } return overlay2; }
private Overlay projectStackRois(Overlay overlay) { if (overlay==null) return null; Overlay overlay2 = overlay.create(); Roi roi; int s; for (Roi r : overlay.toArray()) { s = r.getPosition(); roi = (Roi)r.clone(); if (s>=startSlice && s<=stopSlice || s==0) { roi.setPosition(s); overlay2.add(roi); } } return overlay2; }
boolean rename(String name2) { int index = list.getSelectedIndex(); if (index<0) return error("Exactly one item in the list must be selected."); String name = (String)listModel.getElementAt(index); if (name2==null) name2 = promptForName(name); if (name2==null) return false; if (name2.equals(name)) return false; Roi roi = (Roi)rois.get(index); roi.setName(name2); int position = getSliceNumber(name2); if (position>0 && !roi.hasHyperStackPosition()) roi.setPosition(position); rois.set(index, roi); listModel.setElementAt(name2, index); list.setSelectedIndex(index); if (Prefs.useNamesAsLabels && labelsCheckbox.getState()) { ImagePlus imp = WindowManager.getCurrentImage(); if (imp!=null) imp.draw(); } if (record()) Recorder.record("roiManager", "Rename", name2); return true; }
double overlaySetPosition(Overlay overlay) { int c=0, z=0, t=0; int nargs = 1; int n = (int)getFirstArg(); if (interp.nextToken()==',') { nargs = 3; c = n; z = (int)getNextArg(); t = (int)getLastArg(); } else interp.getRightParen(); if (overlay==null) overlay = offscreenOverlay; if (overlay==null) interp.error("No overlay"); int size = overlay.size(); if (size==0) return Double.NaN; if (nargs==1) overlay.get(size-1).setPosition(n); else if (nargs==3) overlay.get(size-1).setPosition(c, z, t); return Double.NaN; }
double overlaySetPosition(Overlay overlay) { int c=0, z=0, t=0; int nargs = 1; int n = (int)getFirstArg(); if (interp.nextToken()==',') { nargs = 3; c = n; z = (int)getNextArg(); t = (int)getLastArg(); } else interp.getRightParen(); if (overlay==null) overlay = offscreenOverlay; if (overlay==null) interp.error("No overlay"); int size = overlay.size(); if (size==0) return Double.NaN; if (nargs==1) overlay.get(size-1).setPosition(n); else if (nargs==3) overlay.get(size-1).setPosition(c, z, t); return Double.NaN; }
private Overlay projectRGBHyperStackRois(Overlay overlay) { if (overlay==null) return null; int frames = projImage.getNFrames(); int t1 = imp.getFrame(); Overlay overlay2 = overlay.create(); Roi roi; int c, z, t; for (Roi r : overlay.toArray()) { c = r.getCPosition(); z = r.hasHyperStackPosition()?r.getZPosition():0; t = r.getTPosition(); roi = (Roi)r.clone(); if (z>=startSlice && z<=stopSlice || z==0 || c==0 || t==0) { if (frames==1 && t!=t1 && t!=0)//current time frame continue; roi.setPosition(t); overlay2.add(roi); } } return overlay2; }
private Overlay projectRGBHyperStackRois(Overlay overlay) { if (overlay==null) return null; int frames = projImage.getNFrames(); int t1 = imp.getFrame(); Overlay overlay2 = overlay.create(); Roi roi; int c, z, t; for (Roi r : overlay.toArray()) { c = r.getCPosition(); z = r.hasHyperStackPosition()?r.getZPosition():0; t = r.getTPosition(); roi = (Roi)r.clone(); if (z>=startSlice && z<=stopSlice || z==0 || c==0 || t==0) { if (frames==1 && t!=t1 && t!=0)//current time frame continue; roi.setPosition(t); overlay2.add(roi); } } return overlay2; }
/** Moves all the ROIs to the specified image's overlay. */ public void moveRoisToOverlay(ImagePlus imp) { if (imp==null) return; Roi[] rois = getRoisAsArray(); int n = rois.length; Overlay overlay = imp.getOverlay(); if (overlay==null) overlay = newOverlay(); for (int i=0; i<n; i++) { Roi roi = (Roi)rois[i].clone(); if (!Prefs.showAllSliceOnly && !IJ.isMacro()) roi.setPosition(0); //if (roi.getStrokeWidth()==1) // roi.setStrokeWidth(0); overlay.add(roi); } if (overlayTemplate!=null) overlay.drawLabels(overlayTemplate.getDrawLabels()); imp.setOverlay(overlay); if (imp.getCanvas()!=null) setOverlay(imp, null); }
/** Moves all the ROIs to the specified image's overlay. */ public void moveRoisToOverlay(ImagePlus imp) { if (imp==null) return; Roi[] rois = getRoisAsArray(); int n = rois.length; Overlay overlay = imp.getOverlay(); if (overlay==null) overlay = newOverlay(); for (int i=0; i<n; i++) { Roi roi = (Roi)rois[i].clone(); if (!Prefs.showAllSliceOnly && !IJ.isMacro()) roi.setPosition(0); //if (roi.getStrokeWidth()==1) // roi.setStrokeWidth(0); overlay.add(roi); } if (overlayTemplate!=null) overlay.drawLabels(overlayTemplate.getDrawLabels()); imp.setOverlay(overlay); if (imp.getCanvas()!=null) setOverlay(imp, null); }
private void addRoiToOverlay() { Roi roi = imp.getRoi(); if (roi==null) return; roi = (Roi)roi.clone(); if (imp.getStackSize()>1) { if (imp.isHyperStack()||imp.isComposite()) roi.setPosition(0, imp.getSlice(), imp.getFrame()); else roi.setPosition(imp.getCurrentSlice()); } if (roi.getName()==null) roi.setName(""+rt.size()); //roi.setName(IJ.getString("Label:", "m"+rt.size())); roi.setIgnoreClipRect(true); Overlay overlay = imp.getOverlay(); if (overlay==null) overlay = new Overlay(); if (drawLabels) overlay.drawLabels(true); if (!overlay.getDrawNames()) overlay.drawNames(true); overlay.setLabelColor(Color.white); overlay.drawBackgrounds(true); overlay.add(roi); imp.setOverlay(overlay); if (roi.getType()==Roi.COMPOSITE && Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0) imp.deleteRoi(); // delete ROIs created with the selection brush tool }
roi.setPosition(defaultRoi.getPosition()); RoiProperties rp = new RoiProperties("Overlay Options", roi); if (!rp.showDialog()) return;
roi.setPosition(defaultRoi.getPosition()); RoiProperties rp = new RoiProperties("Overlay Options", roi); if (!rp.showDialog()) return;