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
Пример #4
0
 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