def main(): imp = WindowManager.getCurrentImage() width, height, nChannels, nSlices, nFrames = imp.getDimensions() canny_stack = ImageStack() for i in range(nFrames): slice = Duplicator().run( imp, 1, # firstC 1, # lastC 1, # firstZ 1, # lastZ i, # firstT i) # lastT proc = i / nFrames IJ.log("Processing slice {}/{}...".format(i, nFrames)) canny_slice = _singleCanny(slice) ip = canny_slice.getProcessor() canny_stack.addSlice(ip) canny_stack = ImagePlus("canny_stack", canny_stack) canny_stack.show() IJ.log("Canny edge detection finished.") return