ssL.append(im2) print "New dimensions:" nf = 0 for (j,i) in enumerate(ssL): nf+=i.getNFrames() print "%i/%i" % (j+1, len(ssL)), i.getNSlices(), i.getNChannels(), i.getNFrames(), i.getTitle() print "Concatenating everything" out = Concatenator().concatenate(ssL, False) if nff: out = ij.plugin.HyperStackConverter.toHyperStack(out,out.getNChannels(), maxZ, nf) if out is None: print "Concatenation failed" sys.exit(1) print out.getNChannels(), out.getNFrames(), out.getNSlices(), types[out.type] print out.getNChannels(), nf, maxZ print "Stacks concatenated, dimensions: (S=%i, C=%i, F=%i), adding overlay." % (out.getNSlices(), out.getNChannels(), out.getNFrames()) #IJ.saveAs(out, "Tiff", of+'.DEUX.ome.tif') ## DBG # === Identify & remove dark frames def extractFrame(imp, nFrame): """ Extract a stack for a specific color channel and time frame """ stack = imp.getImageStack() ch = ij.ImageStack(imp.width, imp.height) for i in range(1, imp.getNSlices() + 1): for j in range(1, imp.getNChannels()+1): index = imp.getStackIndex(j, i, nFrame) ch.addSlice(str(i)+"-"+str(j), stack.getProcessor(index)) return ij.ImagePlus("Frame " + str(nFrame), ch)
print("Loading data...") if len(imfilenames) > 2: fo = FolderOpener() imp = fo.open(p) imp.show() print("N_z = {}".format(imp.getNSlices())) print("N_c = {}".format(imp.getNChannels())) print("N_t = {}".format(imp.getNFrames())) else: ch1_imp = IJ.openImage(os.path.join(p, imfilenames[0])) ch2_imp = IJ.openImage(os.path.join(p, imfilenames[1])) imp = Concatenator().concatenate(ch1_imp, ch2_imp, False) imp2 = HyperStackConverter.toHyperStack(imp, 2, int(imp.getNSlices() / 2), 1, "xyzct", "Composite") imp2.show() imp.close() print("Saving data...") out_dir = os.path.dirname(os.path.dirname(p)) save_path = os.path.join(out_dir, fname + ".tif") FileSaver(imp2).saveAsTiffStack(save_path) print("Copying metadata...") shutil.copyfile(os.path.join(p, fname + ".txt"), os.path.join(out_dir, metadata_file)) imp2.close() except Exception as e: print(e) print("Problem with {}".format(p))