//@ ImagePlus (label = "Labelmap") labelimp //@ Boolean (label = "process all slices") process_all_slices import ij.IJ import ij.ImagePlus import ij.ImageStack import net.haesleinhuepf.clij2.CLIJ2 import net.haesleinhuepf.clij2.plugins.StatisticsOfLabelledPixels import ij.plugin.frame.RoiManager CLIJ2 clij2 = CLIJ2.getInstance() clij2.clear() def labelmap_cl if (!labelimp.hasImageStack() || (labelimp.hasImageStack() && !process_all_slices)) { //print("process single image") labelmap_cl = clij2.push(labelimp.crop("whole-slice")) // Get largest bounding box for labels int maxW = 0 int maxH = 0 def stats = clij2.statisticsOfLabelledPixels(labelmap_cl, labelmap_cl) for (int j=0; jmaxW){maxW=(int)stats[j][StatisticsOfLabelledPixels.STATISTICS_ENTRY.BOUNDING_BOX_WIDTH.value]} if (stats[j][StatisticsOfLabelledPixels.STATISTICS_ENTRY.BOUNDING_BOX_HEIGHT.value]>maxH){maxH=(int)stats[j][StatisticsOfLabelledPixels.STATISTICS_ENTRY.BOUNDING_BOX_HEIGHT.value]} } def roi_label_cl = clij2.create([maxW, maxH]) def roi_mask_cl = clij2.create([maxW, maxH]) // reset RoiManager def rm = new RoiManager() rm = rm.getRoiManager() rm.reset() rm.setVisible(false) for (int j=0; jmaxW){maxW=(int)stats[j][StatisticsOfLabelledPixels.STATISTICS_ENTRY.BOUNDING_BOX_WIDTH.value]} if (stats[j][StatisticsOfLabelledPixels.STATISTICS_ENTRY.BOUNDING_BOX_HEIGHT.value]>maxH){maxH=(int)stats[j][StatisticsOfLabelledPixels.STATISTICS_ENTRY.BOUNDING_BOX_HEIGHT.value]} } def roi_label_cl = clij2.create([maxW, maxH]) def roi_mask_cl = clij2.create([maxW, maxH]) for (int j=0; j