def ReturnColorThresholdedPicture(PICPATH, L_min, L_max, a_min, a_max, b_min, b_max): imp = IJ.openImage(PICPATH) imp.show() ImageTitle = imp.getTitle() LabThresold_List = [[L_min, L_max], [a_min, a_max], [b_min, b_max]] Filt_List = ["pass", "pass", "pass"] ColorThresholder.RGBtoLab() IJ.run(imp, "RGB Stack", "") IJ.run("Stack to Images", "") IJ.selectWindow("Red") IJ.run('Rename...', 'title=0') #title=hoge =(equal)の間にスペースを入れてならない。 imp0 = IJ.getImage() IJ.selectWindow("Green") IJ.run('Rename...', 'title=1') imp1 = IJ.getImage() IJ.selectWindow("Blue") IJ.run('Rename...', 'title=2') imp2 = IJ.getImage() for i in range(3): WindowTitle = str(i) MinValue = float(LabThresold_List[i][0]) MaxValue = float(LabThresold_List[i][1]) IJ.selectWindow(WindowTitle) IJ.setThreshold(MinValue, MaxValue) IJ.run(IJ.getImage(), "Convert to Mask", "") if Filt_List[i] == "stop": ImageProcessor.invert() #コメントアウトした、imgculcは動かなくなくなった,謎 #imp3 = ImageCalculator.run(imp0, imp1, "and create") #imp4 = ImageCalculator.run(imp3,imp2, "and create") imp3 = ImageCalculator().run("and create", imp0, imp1) imp4 = ImageCalculator().run("and create", imp3, imp2) imp3.show() imp4.show() ResultTitle = imp4.getTitle() IJ.selectWindow(ResultTitle) imp4.setTitle(ImageTitle) #Saveした時点で画像の情報が失われる. imp.close() imp0.close() imp1.close() imp2.close() imp3.close() return imp4
def process_pi_signal(path, position, unsynchronized=True): if unsynchronized: path_signal = path + "\\pi" path_signal_before = path_signal + "\\before" path_signal_after = path_signal + "\\after" path_signal_merged = path_signal + "\\merged" path_imp_before = path_signal_before + "\\pi_in-focusxy%sc1.tif" % position path_imp_after = path_signal_after + "\\pixy%sc1.tif" % position path_imp_merged = path_signal_merged + "\\merged.tif" path_imp_merged_sub = path_signal_merged + "\\merged_sub.tif" imp1 = IJ.openImage(path_imp_before) imp1.show() imp2 = IJ.openImage(path_imp_after) imp2.show() zp1 = ZProjector(imp1) zp1.setMethod(ZProjector.AVG_METHOD) zp1.doProjection() zpimp1 = zp1.getProjection() zp2 = ZProjector(imp2) zp2.setMethod(ZProjector.AVG_METHOD) zp2.doProjection() zpimp2 = zp2.getProjection() imp_sub1 = ImageCalculator().run("Subtract create stack", imp1, zpimp1) imp_sub1.show() imp_sub2 = ImageCalculator().run("Subtract create stack", imp2, zpimp2) imp_sub2.show() concatenate_files(imp1, imp2, path_imp_merged) concatenate_files(imp_sub1, imp_sub2, path_imp_merged_sub) else: path_signal = path + "\\pi\\seq0002xy%sc1.tif" % position path_sub = path + "\\pi\\sub.tif" imp = IJ.openImage(path_signal) imp.show() zp = ZProjector(imp) zp.setMethod(ZProjector.AVG_METHOD) zp.doProjection() zpimp = zp.getProjection() imp_sub = ImageCalculator().run("Subtract create stack", imp, zpimp) imp_sub.show() IJ.saveAs(imp_sub, "Tiff", path_sub) imp.changes = False imp.close() zpimp.changes = False zpimp.close() imp_sub.changes = False imp_sub.close()
def process_caspase_signal(path_signal, path_imp, path_imp_out): path_imp = path_signal + path_imp imp = IJ.openImage(path_imp) imp.show() zp = ZProjector(imp) zp.setMethod(ZProjector.AVG_METHOD) zp.doProjection() zpimp = zp.getProjection() imp_sub = ImageCalculator().run("Subtract create stack", imp, zpimp) imp_sub.show() IJ.saveAs(imp_sub, "Tiff", path_signal + path_imp_out) imp.changes = False imp.close() imp_sub.changes = False imp_sub.close()
IJ.run(imp, "Duplicate...", "title=wy") #create wy by rotating wx by 90 degrees IJ.run("Rotate 90 Degrees Left") imp2 = IJ.getImage() imp2.changes = False #integration in the phase domain by shifting Pi/2, see equation 21 in Frankot-Chellapa A = ImageCalculator().run("Multiply create 32-bit stack", DZDX, imp) B = ImageCalculator().run("Multiply create 32-bit stack", DZDY, imp2) # numerator of C = ImageCalculator().run("Add create 32-bit stack", A, B) # eq 21 D = ImageCalculator().run("Multiply create 32-bit", imp, imp) # square wx E = ImageCalculator().run("Multiply create 32-bit", imp2, imp2) # square wy F = ImageCalculator().run("Add create 32-bit", D, E) # demnominator of eq 21 Z = ImageCalculator().run("Divide create 32-bit stack", C, F) # solve eq 21 Z.show() IJ.run("Inverse FFT") #results of integration IJ.run( "Stack to Images" ) #separate real and imaginary... why does imaginary produce result? more reading needed. #clean-up by closing un-necessary images imp2.close() DZDX.close() DZDY.close() imp.changes = False imp.close() A.changes = False A.close() Z.close()