void addToRoiManager(int sliceNumber, Roi roi) { int x = roi.getBounds().x, y = roi.getBounds().y; int max = Math.max(sliceNumber, Math.max(x, y)); int digits = (int)Math.ceil(Math.log10(max)); digits = Math.max(4, digits); String format = "%0" + digits + "d"; String label = String.format(format + "-" + format + "-" + format, sliceNumber, x, y); roiManager.getList().add(label); roiManager.getROIs().put(label, roi); }
protected void addToRoiManager(int sliceNumber, Roi roi) { int x = roi.getBounds().x, y = roi.getBounds().y; int max = Math.max(sliceNumber, Math.max(x, y)); int digits = (int)Math.ceil(Math.log10(max)); digits = Math.max(4, digits); String format = "%0" + digits + "d"; String label = String.format(format + "-" + format + "-" + format, sliceNumber, x, y); roiManager.getList().add(label); roiManager.getROIs().put(label, roi); }
protected void importFromROIManager() { ImagePlus image = WindowManager.getCurrentImage(); if (image == null) return; Roi[] rois = getRois(image); RoiManager manager = RoiManager.getInstance(); if (manager == null) return; List labels = manager.getList(); @SuppressWarnings("unchecked") Hashtable<String, Roi> table = (Hashtable<String, Roi>)manager.getROIs(); for (int i = 0; i < labels.getItemCount(); i++) { String label = labels.getItem(i); int index = manager.getSliceNumber(label) - 1; if (index >= 0 && index < rois.length) rois[index] = table.get(label); } setRoi(image, rois[image.getCurrentSlice() - 1]); }
@Override protected void importFromROIManager() { ImagePlus image = WindowManager.getCurrentImage(); if (image == null) return; Roi[] rois = getRois(image); RoiManager manager = RoiManager.getInstance(); if (manager == null) return; List labels = manager.getList(); @SuppressWarnings("unchecked") Hashtable<String, Roi> table = (Hashtable<String, Roi>)manager.getROIs(); for (int i = 0; i < labels.getItemCount(); i++) { String label = labels.getItem(i); int index = manager.getSliceNumber(label) - 1; if (index >= 0 && index < rois.length) { Roi roi = table.get(label); if (roi instanceof PolygonRoiPublic) ; // ignore else if (roi instanceof PolygonRoi) roi = new PolygonRoiPublic((PolygonRoi)roi); else continue; ((PolygonRoiPublic)roi).specifiedByUser = true; rois[index] = roi; } } interpolateROIs(rois); setRoi(image, rois[image.getCurrentSlice() - 1]); }