def commitToDatabase(self, imgdata): # if a kept mask was created in a previous mask run and the # assess flag was used (basically combining the 2 runs) there is # nothing new to commit. if self.useAcceptedMask: return sessiondata = imgdata['session'] rundir = self.params['rundir'] maskname = self.params['runname'] assessname = self.params['assessname'] bin = self.params['bin'] maskdir = os.path.join(rundir, "masks") maskrundata, maskparamsdata = apMask.getMaskParamsByRunName( maskname, sessiondata) if not maskrundata: apMask.insertManualMaskRun(sessiondata, rundir, maskname, bin) maskrundata, maskparamsdata = apMask.getMaskParamsByRunName( maskname, sessiondata) try: apParam.createDirectory(maskdir) except: apDisplay.printWarning('can not create mask directory') massessrundata, exist = apMask.insertMaskAssessmentRun( sessiondata, maskrundata, assessname) mask = self.maskimg maskfilename = imgdata['filename'] + '_mask.png' image = self.image labeled_regions, clabels = nd.label(mask) testlog = [False, 0, ""] infos = {} infos, testlog = apCrud.getLabeledInfo(image, mask, labeled_regions, range(1, clabels + 1), False, infos, testlog) offset = 1 for l1 in range(0, len(infos)): l = l1 + offset info = infos[l] info.append(l) regiondata = apMask.insertMaskRegion(maskrundata, imgdata, info) print "Inserting mask region in database" # PIL alpha channel read does not work #apImage.arrayMaskToPngAlpha(mask, os.path.join(maskdir,maskfilename)) apImage.arrayMaskToPng(mask, os.path.join(maskdir, maskfilename)) allregiondata = apMask.getMaskRegions(maskrundata, imgdata) for regiondata in allregiondata: apMask.insertMaskAssessment(massessrundata, regiondata, 1) print "Inserting mask assessment in database." if self.assess != self.assessold and self.assess is not None: #imageaccessor run is always named run1 apDatabase.insertImgAssessmentStatus(imgdata, 'run1', self.assess) return
def processImage(self,imgdata): image = self.getImage(imgdata,self.params['bin']) results=self.function(self.rundata, imgdata, image) mask = results.pop('mask') pngpath = os.path.join(self.params['rundir'],"masks") apParam.createDirectory(pngpath,warning=False) filepathname = os.path.join(self.params['rundir'],"masks",imgdata['filename']+"_mask.png") if mask is not None: # PIL alpha channel read does not work #apImage.arrayMaskToPngAlpha(mask, filepathname) apImage.arrayMaskToPng(mask, filepathname) return results
def commitToDatabase(self,imgdata): # if a kept mask was created in a previous mask run and the # assess flag was used (basically combining the 2 runs) there is # nothing new to commit. if self.useAcceptedMask: return sessiondata = imgdata['session'] rundir = self.params['rundir'] maskname = self.params['runname'] assessname = self.params['assessname'] bin = self.params['bin'] maskdir=os.path.join(rundir,"masks") maskrundata,maskparamsdata = apMask.getMaskParamsByRunName(maskname,sessiondata) if not maskrundata: apMask.insertManualMaskRun(sessiondata,rundir,maskname,bin) maskrundata,maskparamsdata = apMask.getMaskParamsByRunName(maskname,sessiondata) try: apParam.createDirectory(maskdir) except: apDisplay.printWarning('can not create mask directory') massessrundata,exist = apMask.insertMaskAssessmentRun(sessiondata,maskrundata,assessname) mask = self.maskimg maskfilename = imgdata['filename']+'_mask.png' image = self.image labeled_regions,clabels=nd.label(mask) testlog = [False,0,""] infos={} infos,testlog=apCrud.getLabeledInfo(image,mask,labeled_regions,range(1,clabels+1),False,infos,testlog) offset=1 for l1 in range(0,len(infos)): l=l1+offset info=infos[l] info.append(l) regiondata= apMask.insertMaskRegion(maskrundata,imgdata,info) print "Inserting mask region in database" # PIL alpha channel read does not work #apImage.arrayMaskToPngAlpha(mask, os.path.join(maskdir,maskfilename)) apImage.arrayMaskToPng(mask, os.path.join(maskdir,maskfilename)) allregiondata = apMask.getMaskRegions(maskrundata,imgdata) for regiondata in allregiondata: apMask.insertMaskAssessment(massessrundata,regiondata,1) print "Inserting mask assessment in database." if self.assess != self.assessold and self.assess is not None: #imageaccessor run is always named run1 apDatabase.insertImgAssessmentStatus(imgdata, 'run1', self.assess) return
def processImage(self, imgdata): image = self.getImage(imgdata, self.params['bin']) results = self.function(self.rundata, imgdata, image) mask = results.pop('mask') pngpath = os.path.join(self.params['rundir'], "masks") apParam.createDirectory(pngpath, warning=False) filepathname = os.path.join(self.params['rundir'], "masks", imgdata['filename'] + "_mask.png") if mask is not None: # PIL alpha channel read does not work #apImage.arrayMaskToPngAlpha(mask, filepathname) apImage.arrayMaskToPng(mask, filepathname) return results
def commitToDatabase(self,imgdata): ''' Fake commitToDatabase for local file saving. In this case, the mask file is saved ''' rundir = self.params['rundir'] maskname = self.params['runname'] bin = self.params['bin'] maskdir=os.path.join(rundir,"masks") mask = self.maskimg maskfilename = imgdata['filename']+'_mask.png' labeled_regions,clabels=nd.label(mask) # PIL alpha channel read does not work #apImage.arrayMaskToPngAlpha(mask, os.path.join(maskdir,maskfilename)) apImage.arrayMaskToPng(mask, os.path.join(maskdir,maskfilename)) return
def commitToDatabase(self, imgdata): ''' Fake commitToDatabase for local file saving. In this case, the mask file is saved ''' rundir = self.params['rundir'] maskname = self.params['runname'] bin = self.params['bin'] maskdir = os.path.join(rundir, "masks") mask = self.maskimg maskfilename = imgdata['filename'] + '_mask.png' labeled_regions, clabels = nd.label(mask) # PIL alpha channel read does not work #apImage.arrayMaskToPngAlpha(mask, os.path.join(maskdir,maskfilename)) apImage.arrayMaskToPng(mask, os.path.join(maskdir, maskfilename)) return