def main(): DEBUG = False CN = [c.strip() for c in channel_names.split(",")] if DEBUG: imp1, imp2, imp3 = open_test() else: imp1, imp2, imp3 = open_msr(str(msr_fn)) msr_fn_base = os.path.basename(str(msr_fn)) signed2unsigned16(imp1) signed2unsigned16(imp2) signed2unsigned16(imp3) imp1.updateAndDraw() imp2.updateAndDraw() imp3.updateAndDraw() IJ.run(imp1, "Enhance Contrast", "saturated=0.35") IJ.run(imp2, "Enhance Contrast", "saturated=0.35") IJ.run(imp3, "Enhance Contrast", "saturated=0.35") cal = imp1.getCalibration() IMAGE_AREA_UM = cal.pixelWidth * imp1.getWidth() * cal.pixelHeight * imp1.getHeight() t1 = apply_mask(imp1, sigma, CN[0], is_auto_thresh) t2 = apply_mask(imp2, sigma, CN[1], is_auto_thresh) t3 = apply_mask(imp3, sigma, CN[2], is_auto_thresh) results = ResultsTable() results.setHeading(0, "Channel") results.setHeading(1, "Count") results.setHeading(2, "Surface area (um)") results.setHeading(3, "Surface area (%)") results.setHeading(4, "Surface signal") #results.setHeading(5, "Threshold used") def add_to_table(channel, c, a, s): results.incrementCounter() results.setValue(0, results.getCounter()-1, channel) results.addValue(1, c) results.addValue(2, a) results.addValue(3, 100 * a /IMAGE_AREA_UM) results.addValue(4, s) #results.setLabel(msr_fn_base, results.getCounter()-1) imp1_mask, c,a,s = analyze(imp1, min_area) add_to_table(CN[0], c, a, s) #results.addValue(4, t1) imp2_mask, c,a,s = analyze(imp2, min_area) add_to_table(CN[1], c, a,s) #results.addValue(4, t2) imp3_mask, c,a,s = analyze(imp3, min_area) add_to_table(CN[2], c, a,s) #results.addValue(4, t3) # IJ.run(imp1, "Enhance Contrast", "saturated=0.35") # IJ.run(imp2, "Enhance Contrast", "saturated=0.35") # IJ.run(imp3, "Enhance Contrast", "saturated=0.35") imp_raw = RGBStackMerge.mergeChannels([imp1, imp2, imp3], True) luts = list(imp_raw.getLuts()) imp_raw.setLuts([luts[2], luts[0], luts[1]] ) imp_raw.setTitle(msr_fn_base ) imp_raw.show() if save_raw: save_base_fn = os.path.splitext(str(msr_fn))[0] IJ.save(imp_raw, save_base_fn + ".tif") IJ.run(imp1, "Convert to Mask", "") IJ.run(imp2, "Convert to Mask", "") IJ.run(imp3, "Convert to Mask", "") ic = ImageCalculator() imp12 = ic.run("Muliply create", imp1, imp2) imp13 = ic.run("Muliply create", imp1, imp3) imp23 = ic.run("Muliply create", imp2, imp3) imp123 = ic.run("Muliply create", imp12, imp3) imp12_mask, c,a,s = analyze(imp12, min_area) add_to_table("{}+{}".format(CN[0],CN[1]), c, a, -1) imp13_mask, c,a,s = analyze(imp13, min_area) add_to_table("{}+{}".format(CN[0],CN[2]), c, a, -1) imp23_mask,c,a,s = analyze(imp23, min_area) add_to_table("{}+{}".format(CN[1],CN[2]), c, a, -1) imp123_mask,c,a,s = analyze(imp123, min_area) add_to_table("{}+{}+{}".format(CN[0],CN[1], CN[2]), c, a, -1) title = "Coloco3surf {}".format(msr_fn_base) results.show(title) imp_merge = RGBStackMerge.mergeChannels([imp1_mask, imp2_mask, imp3_mask, imp12_mask, imp13_mask, imp23_mask, imp123_mask], False) luts = list(imp_merge.getLuts()) imp_merge.setLuts([luts[2], luts[0], luts[1]] + luts[3:]) imp_merge.setTitle(title) imp_merge.show() if save_surf: save_base_fn = os.path.splitext(str(msr_fn))[0] IJ.save(imp_merge, save_base_fn + "_surfaces.tif") IJ.log("Done")
## set pixel calibration based on the entry on top cal = imp.getCalibration() cal.pixelHeight = pixelsize cal.pixelWidth = pixelsize pixelWidth = imp.getCalibration().pixelWidth print pixelWidth coordinates = [] ### setting up the results tables #### ort = ResultsTable() ort.setPrecision(0) #print ort.getCounter ort.setHeading(0, "Cell") ort.setHeading(1, "Point_C1") ort.setHeading(2, "Point_C2") ort.setHeading(3, "Distance in um") ort.setHeading(4, "Distance in pixel") ort.setHeading(5, "Area in um") ort.setHeading(6, "Feret in um") #pixelWidth = imp.getCalibration().pixelWidth ort2 = ResultsTable() ort2.setPrecision(3) ort2.setHeading(0, "Cell") ort2.setHeading(1, "Channel") ort2.setHeading(2, "Point #") ort2.setHeading(3, "Coordinates")
Returns ------- the_sample double The random sample from the distribution """ my_gmd = Log().value(gmd_nm) my_gsd = Log().value(gsd) distn = LogNormalDistribution(my_gmd, my_gsd) the_sample = distn.sample() return(the_sample) tic = time.time() n_samples = 2500 rt = ResultsTable(n_samples) rt.setHeading(0, "num") rt.setHeading(1, "ECD nm") for x in range(0, n_samples): my_sample = gen_random_lognormal_particle(50.0, 1.2) rt.setValue(0, x, x+1) rt.setValue(1, x, my_sample) rt.show("Results") IJ.saveAs("Results", csv_out) toc = time.time() elapsed = toc - tic print("generated %g particles" % n_samples) print("completed in %g sec" % elapsed )