Exemplo n.º 1
0
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")
Exemplo n.º 2
0
## 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")
Exemplo n.º 3
0
	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 )