def f(self,thearray): self._i=thearray.astype(numpy.uint8).copy('C') self.i=QtGui.QImage(self._i.data,self._i.shape[1],self._i.shape[0],self.imgconvarray[self._i.shape[2]]) if (self._i.shape[2]==1): self.i.setColorTable(self.colortable) self.update() qapp.processEvents()
def process(cls,nrels=1,*args,**kwargs): annfile=cls.annfilename.value annfile=annfile.replace("$database",cls.database.value) annfile=annfile.replace("$session",cls.session.value) qapp.processEvents() try: vdbval=pickle.load(file(annfile,"rb")) except: vdbval=None d=qtdbevaluator.QtDBEvaluatorDialog(cls.vdb,cls.vdbval) qapp.processEvents() if d.exec_(): pickle.dump(d.pwl.vdbval,file(annfile,"wb"),protocol=2)
def process(cls,nrels=1,*args,**kwargs): all=int(cls.alle.value) if int(cls.frameworkv.value) not in [1,2]: print cls.mmeta d=[ ([mm[0]],mm[1]['data_out']) for mm in cls.mmeta.items() ] else: d=[ ([mm[0]],mm[1]) for mm in cls.mmeta ] print "D=",d if (not all): names=reduce(lambda b,n:b+[n[0][0]],d,[]) nd=filter(lambda x: len(filter(lambda t:is_prefix(x[0][0][0], t),names ))==1 ,zip(d,range(len(d)))) print "ND=",nd else: nd=zip(d,range(len(d))) delay=float(cls.delay.value) qmw=QtGui.QMainWindow() qv=QtFeaturesViewerDialog(map(lambda x:x[0],nd),qmw) subex=map(lambda x:x[1],nd) qv.show() qapp.processEvents() for e in cls.vdb: cls.mdl.metainfo_curaddr=e[1] cls.mdl.process(e[0],processf=lambda x:qv.push(reduce(lambda b,i:b+[x[i]],subex,[]),cls.vdb.datatype(),e[1]),addr=e[1]) #mdl.process(e[0],processf=lambda x:sys.stdout.write(str(x)+"\n")) qapp.processEvents() if (delay): for i in range(int(delay*50)): qapp.processEvents() time.sleep(0.02)
def __init__(self,db,session="std",threshold=0.8,annfile=os.environ["HOME"]+"/"+"weights/$database-$session.pcl",reevaluate=False): self.vdb=database_builder(db) self.threshold=threshold sekf.dtp=self.vdb.datatype() # for f in dir(dtp): # if (not hasattr(self,f)): # exec("self."+f+"=dtp."+f) self.annfile=annfile self.annfile=self.annfile.replace("$database",db) self.annfile=self.annfile.replace("$session",session) print self.annfile try: if (reevaluate): raise Exception self.vdbval=pickle.load(file(self.annfile,"rb")) self.vdbaddr=pickle.load(file(self.annfile+".keys","rb")) except: pycvf_debug(10, "Evaluating db") self.vdbval=None self.vdbaddr=None try: self.vdbval=pickle.load(file(self.annfile,"rb")) self.vdbaddr=pickle.load(file(self.annfile+".keys","rb")) except: pycvf_debug(10,"no load") pass print "Go QT.." from pycvf.lib.ui import qtdbevaluator d=qtdbevaluator.QtDBEvaluatorDialog(self.vdb,self.vdbval,self.vdbaddr) qapp.processEvents() pycvf_debug(10,"Run dialog") if d.exec_(): pickle.dump(d.pwl.vdbval,file(self.annfile,"wb"),protocol=2) pickle.dump(d.pwl.addr,file(self.annfile+".keys","wb"),protocol=2) self.vdbval=d.pwl.vdbval self.vdbaddr=d.pwl.addr else: if (self.vdbval==None): raise Exception, "No user evaluation for database"
def update_img(self,img): self.pwl.update_img(img) qapp.processEvents()
else: ans[start:end] = [f(*x) for x in L[start:end]] except Exception, e: if (hasattr(sys,"last_traceback")): traceback.print_tb(sys.last_traceback) else: traceback.print_tb(sys.exc_traceback) q.put(e) else: q.put(None) if (with_dialog): qp=QProgressDialog() qp.setRange(0,n) qp.show() qapp.processEvents() qp.setValue(0) qapp.processEvents() r=[] for i in range(n): r.append(thread.start_new_thread(handle, (i*len(L)//n, (i+1)*len(L)//n)) ) if with_dialog: qp.setValue(i+1) qapp.processEvents() if (with_dialog): qp.setValue(0) qapp.processEvents() for i in range(n):