Esempio n. 1
0
class ModelDNFCamFlow(Model,Renderable):

    def initMaps(self,size):
        self.size = size
        dt = 0.5
        #Create maps
        self.webcam = WebcamMap("Webcam",size,dt=dt,numDevice=0)
        self.flow = OpticalFlowMap("OpticalFlow",size,dt=dt)
        self.channel = ChannelSelect("OFNorm",size,dt=dt,channel=0)
        self.abs = FuncMap2D(utils.abs,"OFIntensity",size,dt=dt)
        self.field = MapDNF("DNF",size,model='spike',dt=dt)
        self.test = OpticalFlowToBGR("test",size=size,dt=dt)
        #Link maps
        self.flow.addChildren(img=self.webcam)
        self.channel.addChildren(map=self.flow)
        self.abs.addChildren(x=self.channel)

        self.field.addChildren(aff=self.abs)

        self.test.addChildren(opticalFlow=self.flow)
        #return the root
        return [self.field,self.test]

    def getArrays(self):
        ret =  [
                self.webcam,
                self.abs,
                self.field,
                self.test,
        ]
        ret.extend(self.field.getArrays())
        return ret

    def onClick(self,mapName,x,y):
            pass
Esempio n. 2
0
class ModelDNFdual(Model,Renderable):
    def initMaps(self,size):
        """We initiate the map and link them"""
        #Create maps
        self.aff = InputMap("Inputs",size)
        self.fieldCNFT = MapDNF("CNFT",size,model='cnft')
        self.fieldSpike = MapDNF("SpikingDNF",size,model='spike')
        self.fieldCNFT.addChildren(aff=self.aff)
        self.fieldSpike.addChildren(aff=self.aff)
        self.field =  [self.fieldCNFT,self.fieldSpike]
        #return the root
        return self.field
    #override Renderable
    def getArrays(self):
        ret =  [self.aff,self.fieldCNFT,self.fieldSpike]
        ret.extend(self.fieldCNFT.getArrays())
        ret.extend(self.fieldSpike.getArrays())
        return ret
Esempio n. 3
0
class ModelDNFdual(Model, Renderable):
    def initMaps(self, size):
        """We initiate the map and link them"""
        #Create maps
        self.aff = InputMap("Inputs", size)
        self.fieldCNFT = MapDNF("CNFT", size, model='cnft')
        self.fieldSpike = MapDNF("SpikingDNF", size, model='spike')
        self.fieldCNFT.addChildren(aff=self.aff)
        self.fieldSpike.addChildren(aff=self.aff)
        self.field = [self.fieldCNFT, self.fieldSpike]
        #return the root
        return self.field

    #override Renderable
    def getArrays(self):
        ret = [self.aff, self.fieldCNFT, self.fieldSpike]
        ret.extend(self.fieldCNFT.getArrays())
        ret.extend(self.fieldSpike.getArrays())
        return ret
Esempio n. 4
0
class ModelDNF(Model,Renderable):
    def initMaps(self,size):
        """We initiate the map and link them"""
        #Create maps
        self.aff = InputMap("Inputs",size)
        self.field = MapDNF("DNF",size)
        self.field.addChildren(aff=self.aff)
        #return the root
        return self.field
    #override Renderable
    def getArrays(self):
        ret =  [self.aff,self.field]
        ret.extend(self.field.getArrays())
        return ret

    def onClick(self,mapName,x,y):
        print("clicked on %s, at coord %s,%s"%(unicode(mapName),x,y))
Esempio n. 5
0
class ModelDNFCam(Model,Renderable):

    def initMaps(self,size):
        self.size = size
        dt = 0.6
        #Create maps
        self.webcam = WebcamMap("Webcam",size,dt=dt,numDevice=0)
        self.webcam.compute()
        self.playcam = PlayCamMap("PlayCam",size)
        self.playcam.addChildren(image=self.webcam)
        self.color_select = ImageColorSelection("ColorSelect",size,dt=dt)
        self.field = MapDNF("DNF",size,model='spike',dt=dt)
        #Link maps
        self.color_select.addChildren(image=self.playcam)
        self.aff = self.color_select
        self.field.addChildren(aff=self.aff)
        #return the root
        return self.field

    def getArrays(self):
        ret =  [
                self.playcam,
                self.aff,
                self.field
        ]
        ret.extend(self.field.getArrays())
        return ret

    def onClick(self,mapName,x,y):
        print("clicked on %s, at coord %s,%s"%(unicode(mapName),x,y))
        if mapName == "PlayCam":
            bgr = self.playcam.getData()
            
            sizeROI = 1 #self.size/10.
            s2 = int(round(sizeROI/2.))
            roi = bgr[y-s2:y+s2,x-s2:x+s2,:] # In BGR order
            hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV)
            colorVal = np.median(hsv[:,:,0])
            satHigh = np.max(hsv[:,:,1])
            satLow = np.min(hsv[:,:,1])
            valHigh = np.max(hsv[:,:,2])
            valLow = np.min(hsv[:,:,2])

            self.color_select.setArg(colorVal=colorVal,satLow=satLow,satHigh=satHigh)
            print("ColorVal = ",colorVal, "SatHigh", satHigh, "SatLow", satLow, "ValHigh", valHigh, "ValLow", valLow)
            return "ColorSelect"
Esempio n. 6
0
class ModelDNFCam(Model,Renderable):

    def initMaps(self,size):
        self.size = size
        dt = 0.6
        #Create maps
        self.webcam = WebcamMap("Webcam",size,dt=dt,numDevice=0)
        self.webcam.compute()
        self.playcam = PlayCamMap("PlayCam",size)
        self.playcam.addChildren(self.webcam)
        self.color_select = ImageColorSelection("ColorSelect",size,dt=dt)
        self.field = MapDNF("DNF",size,model='spike',dt=dt)
        #Link maps
        self.color_select.addChildren(image=self.playcam)
        self.aff = self.color_select
        self.field.addChildren(aff=self.aff)
        #return the root
        return self.field

    def getArrays(self):
        ret =  [
                self.playcam,
                self.aff,
                self.field
        ]
        ret.extend(self.field.getArrays())
        return ret

    def onClick(self,mapName,x,y):
        print("clicked on %s, at coord %s,%s"%(unicode(mapName),x,y))
        if mapName == "PlayCam":
            bgr = self.playcam.getData()

            sizeROI = self.size/10.
            s2 = int(round(sizeROI/2.))
            roi = bgr[y-s2:y+s2,x-s2:x+s2,:]
            hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV)
            colorVal = np.median(hsv[:,:,0])
            satHigh = np.max(hsv[:,:,1])
            satLow = np.min(hsv[:,:,1])
            valHigh = np.max(hsv[:,:,2])
            valLow = np.min(hsv[:,:,2])

            self.color_select.setArg(colorVal=colorVal,satLow=satLow,satHigh=satHigh)
            return "ColorSelect"
Esempio n. 7
0
class ModelDNF(Model, Renderable):
    def initMaps(self, size):
        """We initiate the map and link them"""
        #Create maps
        self.aff = InputMap("Inputs", size)
        self.field = MapDNF("DNF", size, model='spike')
        self.field.addChildren(aff=self.aff)
        #return the root
        return self.field

    #override Renderable
    def getArrays(self):
        ret = [self.aff, self.field]
        ret.extend(self.field.getArrays())
        return ret

    def onClick(self, mapName, x, y):
        print("clicked on %s, at coord %s,%s" % (unicode(mapName), x, y))
Esempio n. 8
0
class ModelHPP(Model,Renderable):
    def initMaps(self,size=49,model="spike",nbStep=0,
                 iExc=1.25,iInh=0.7,wExc=0.1,wInh=10.,alpha=10.,
                 ):
        """We initiate the map and link them"""
        # print("iExc : %s, iInh: %s, wExc %s, wInh %s"%(iExc,iInh,wExc,wInh))
        dt = 0.1
        self.aff = InputMap("Inputs",size)
                            #iStim1 = 0, iStim2 = 0,noiseI=1.,noise_dt=1e10)
        self.field = MapDNF("DNF",size,model=model,nbStep=nbStep, \
                        iExc=iExc,iInh=iInh,wExc=wExc,wInh=wInh)
        self.field.addChildren(aff=self.aff)

        dt2 = 0.01
        self.lat = Lateral("Lateral",size,dt=dt2,delta=0.02)  
        self.exc = HppMap("exc",size,dt=dt2)
        self.inh = HppMap("inh",size,dt=dt2)
        self.lat.addChildren(exc=self.exc,inh=self.inh)


        self.field.lat = self.lat
        self.field.addChildren(lat=self.field.lat)
        self.exc.addChildren(source=self.field.act)
        self.inh.addChildren(source=self.field.act)

        #stats
        #self.stats = StatsList(size,self.aff,self.field.getActivation(),
        #                       self.field,shapeType='gauss')
        #return the roots
        roots =  [self.field]
        #roots.extend(self.stats.getRoots())
        return roots

    #override Renderable
    def getArrays(self):
        ret =  [self.aff,self.field,self.exc,self.inh]
        ret.extend(self.field.getArrays())
        #ret.extend(self.stats.getArrays())
        return ret

    def onClick(self,mapName,x,y):
        print("clicked on %s, at coord %s,%s"%(unicode(mapName),x,y))