class BeadsImage: def __init__(self, subDir, pathDir, flChannel=4, isNeg=False): self.subDir = subDir self.pathDir = pathDir self.isNeg = isNeg if not self.isNeg: negF = '/project/current/project/jagannath/projectfiles/EpiMicroscopy/rawFiles/2014-Oct/2014-10-17/rawImages/negShape.pkl' self.negShapeProfile = pickle.load(open(negF)) self.beadsImg = BeadExpt(self.subDir, self.pathDir) self.dicFname = self.beadsImg._getImageName(c=1) self.flFname = self.beadsImg._getImageName( c=flChannel) #Fluorescent channel def subDict(self, adict, negDict): tmpDict = dict() for k, v in adict.items(): tmpDict[k] = adict[k] - negDict[k] return tmpDict def makeHoughCircles(self): self.dicFname = self.beadsImg._getImageName(c=1) (dic_orig, dic_cimg) = self.beadsImg._openImages(self.dicFname) circles = self.beadsImg.findHoughCircles(dic_orig) if not circles is None: self.beadsImg.overLayHoughCircles_SVG(circles, dic_cimg) #SVG FILE MADE overLayFname, overCimg = self.beadsImg.overLayHoughCircles( circles, dic_cimg, idx=1, putNbr=True) self.beadsImg._saveImage(overLayFname + '.png', overCimg) return circles def makeAllLinePlots(self, allCircles, minRad=30): (fl_orig, fl_cimg) = self.beadsImg._openImages(self.flFname, flag=-1) allNormDeviation_dict = collections.defaultdict(list) for i, circle in enumerate(allCircles[0]): if circle[2] > minRad: oneBead = Bead(circle, fl_orig, fl_cimg) allNormLineProfiles_dict = oneBead.makeLineProfile() meanProfile, stdevProfile = combineVal_dict( allNormLineProfiles_dict) (med, factor ), devMedian, normDevMedian = calcDevMed_dict(meanProfile) shapeProfile = normDevMedian if not self.isNeg: diffShape = self.subDict(shapeProfile, self.negShapeProfile) reNorm = dict([(k, (v * factor) + med) for k, v in diffShape.items()]) allNormDeviation_dict = appendDict(allNormDeviation_dict, reNorm) else: allNormDeviation_dict = appendDict(allNormDeviation_dict, shapeProfile) imageLineProfile, stdevLineProfile = combineVal_dict( allNormDeviation_dict) return imageLineProfile, stdevLineProfile
def getCircles(subDir, maskSource='DIC'): expt = BeadExpt(subDir, pathDir) imageDir = expt.imageDir if maskSource is 'DIC': dyeImage = expt._getImageName(1) else: dyeImage = expt._getImageName(4) orig, cimg = expt._openImages(dyeImage) circles = expt.findHoughCircles(orig) orig, cimg = expt._openImages(expt._getImageName(4), -1) return circles, orig, cimg
def getCircles(subDir, maskSource="DIC"): expt = BeadExpt(subDir, pathDir) imageDir = expt.imageDir if maskSource is "DIC": dyeImage = expt._getImageName(1) else: dyeImage = expt._getImageName(4) orig, cimg = expt._openImages(dyeImage) circles = expt.findHoughCircles(orig) orig, cimg = expt._openImages(expt._getImageName(4), -1) return circles, orig, cimg
class BeadsImage: def __init__(self,subDir,pathDir,flChannel=4,isNeg=False): self.subDir = subDir self.pathDir = pathDir self.isNeg = isNeg if not self.isNeg: negF = '/project/current/project/jagannath/projectfiles/EpiMicroscopy/rawFiles/2014-Oct/2014-10-17/rawImages/negShape.pkl' self.negShapeProfile = pickle.load(open(negF)) self.beadsImg = BeadExpt(self.subDir,self.pathDir) self.dicFname = self.beadsImg._getImageName(c=1) self.flFname = self.beadsImg._getImageName(c=flChannel) #Fluorescent channel def subDict(self,adict,negDict): tmpDict = dict() for k,v in adict.items(): tmpDict[k] = adict[k] - negDict[k] return tmpDict def makeHoughCircles(self): self.dicFname = self.beadsImg._getImageName(c=1) (dic_orig, dic_cimg) = self.beadsImg._openImages(self.dicFname) circles = self.beadsImg.findHoughCircles(dic_orig) if not circles is None: self.beadsImg.overLayHoughCircles_SVG(circles,dic_cimg)#SVG FILE MADE overLayFname, overCimg = self.beadsImg.overLayHoughCircles(circles,dic_cimg,idx=1,putNbr= True) self.beadsImg._saveImage(overLayFname+'.png', overCimg) return circles def makeAllLinePlots(self,allCircles,minRad=30): (fl_orig,fl_cimg) = self.beadsImg._openImages(self.flFname,flag=-1) allNormDeviation_dict = collections.defaultdict(list) for i,circle in enumerate(allCircles[0]): if circle[2]>minRad: oneBead = Bead(circle,fl_orig,fl_cimg) allNormLineProfiles_dict = oneBead.makeLineProfile() meanProfile,stdevProfile = combineVal_dict(allNormLineProfiles_dict) (med,factor), devMedian, normDevMedian = calcDevMed_dict(meanProfile) shapeProfile = normDevMedian if not self.isNeg: diffShape = self.subDict(shapeProfile,self.negShapeProfile) reNorm = dict([(k,(v*factor)+med) for k, v in diffShape.items()]) allNormDeviation_dict = appendDict(allNormDeviation_dict,reNorm) else: allNormDeviation_dict = appendDict(allNormDeviation_dict,shapeProfile) imageLineProfile,stdevLineProfile = combineVal_dict(allNormDeviation_dict) return imageLineProfile,stdevLineProfile