Exemple #1
0
 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()
Exemple #2
0
 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)
Exemple #4
0
 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"
Exemple #5
0
        def update_img(self,img):
	    self.pwl.update_img(img)
            qapp.processEvents()
Exemple #6
0
            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):