orig = ImagePlus(fi) strName = os.path.basename(fi) strName = strName.split('.')[0] lStr = strName.split('-') l = len(lStr) strNum = lStr[l-1] iNum = int(strNum) orig.setTitle(strNum) if i == 1: # a hack to get the scale bars to work reliably foo = orig.duplicate() IJ.run(foo, "RGB Color", "") IJ.run(foo, "Add Scale Bar", strBar) iZero = jmg.findI0(orig, maxSearchFrac=0.5, chAvg=5) # print(iZero) rt = jmg.anaParticlesWatershed(orig, minPx=30) nMeas = rt.getCounter() nCols = rt.getLastColumn() lArea = rt.getColumn(rt.getColumnIndex("Area")) lMode = rt.getColumn(rt.getColumnIndex("Mode")) # lPeri = rt.getColumn(rt.getColumnIndex("Perim.")) # lMaj = rt.getColumn(rt.getColumnIndex("Major")) # lMin = rt.getColumn(rt.getColumnIndex("Minor")) lCirc = rt.getColumn(rt.getColumnIndex("Circ.")) # lFeretX = rt.getColumn(rt.getColumnIndex("FeretX")) # lFeretY = rt.getColumn(rt.getColumnIndex("FeretY")) lAspRat = rt.getColumn(rt.getColumnIndex("AR")) lRound = rt.getColumn(rt.getColumnIndex("Round")) lSolid = rt.getColumn(rt.getColumnIndex("Solidity")) for j in range(len(lArea)):
jmg.ensureDir(sRptPath) sRptCsvPath = sRptPath + sampID + ".csv" sRptImgPath = sRptPath + "png/" jmg.ensureDir(sRptImgPath) orig = ImagePlus(sImgPath) strName = os.path.basename(sImgPath) strName = strName.split('.')[0] orig.setTitle(strName) # orig.show() iZero = jmg.findI0(orig, maxSearchFrac=0.5, chAvg=5) print(iZero) # [ana, rt] = anaParticles(orig, minSize, maxSize, minCirc, bHeadless=bHeadless) rt = jmg.anaParticlesWatershed(orig) orig.show() nMeas = rt.getCounter() print("%d particles detected in image %d" % (nMeas,1) ) nCols = rt.getLastColumn() if bVerbose == True: for j in range(nCols+1): print(rt.getColumnHeading(j)) print("Area = %d" % rt.getColumnIndex("Area")) print("Mean = %d" % rt.getColumnIndex("Mean")) print("Mode = %d" % rt.getColumnIndex("Mode")) print("Perim. = %d" % rt.getColumnIndex("Perim.")) print("Major = %d" % rt.getColumnIndex("Major"))
i += 1 orig = ImagePlus(fi) orig = jmg.calibImageDirect(orig, umPerPx, units=-6) strName = orig.getShortTitle() strNum = strName.split('IMAGE')[1] iNum = int(strNum) strName = "%s-%02d" % (sampID, iNum ) orig.setTitle(strName) orig.show() if i == 1: # a hack to get the scale bars to work reliably foo = orig.duplicate() IJ.run(foo, "RGB Color", "") IJ.run(foo, "Add Scale Bar", strBar) rt = jmg.anaParticlesWatershed(orig, strThrMeth="method=Otsu white", bFillHoles=True, minPx=minArea, maxPx=maxArea, minCirc=minCirc, maxAR=maxAR) nMeas = rt.getCounter() nCols = rt.getLastColumn() lArea = rt.getColumn(rt.getColumnIndex("Area")) lMode = rt.getColumn(rt.getColumnIndex("Mode")) # lPeri = rt.getColumn(rt.getColumnIndex("Perim.")) # lMaj = rt.getColumn(rt.getColumnIndex("Major")) # lMin = rt.getColumn(rt.getColumnIndex("Minor")) lCirc = rt.getColumn(rt.getColumnIndex("Circ.")) # lFeretX = rt.getColumn(rt.getColumnIndex("FeretX")) # lFeretY = rt.getColumn(rt.getColumnIndex("FeretY")) lAspRat = rt.getColumn(rt.getColumnIndex("AR")) lRound = rt.getColumn(rt.getColumnIndex("Round")) lSolid = rt.getColumn(rt.getColumnIndex("Solidity")) k = 0
for r in ra: i += 1 rLab = "%d" % i r.setName(rLab) imp = addRoiToOverlay(imp, r, labCol=labCol, linCol=linCol) # let's put a PointRoi outside the image to get the overlays all the same color r = PointRoi(-10, -10) imp = addRoiToOverlay(imp, r, labCol=labCol, linCol=linCol) # clear the roi manager and return the results table rm.reset() rm.close() if bDebug == False: wrk.changes = False wrk.close() imp.setTitle(title) return rt closeRW = False IJ.run("Blobs (25K)") ori = IJ.getImage() myRT = jmg.anaParticlesWatershed(ori) myRT.show("Results") if closeRW: myRT.getResultsWindow().close(False) else: myRT.show("Results")
from org.python.core import codecs codecs.setDefaultEncoding('utf-8') import os import glob import time from math import sqrt from ij import IJ from ij import ImagePlus import jmFijiGen as jmg orig = IJ.getImage() orig.setTitle("orig") print(orig.getShortTitle()) iZero = jmg.findI0(orig, maxSearchFrac=0.5, chAvg=5) print(iZero) rt = jmg.anaParticlesWatershed(orig, strThrMeth="method=Otsu white", bFillHoles=True, minPx=7, maxPx=150) nMeas = rt.getCounter() print(nMeas)