示例#1
0
  def video_frame_ready(self,frame):
    #print "video_display: ",self.video_display
    if not self.video_display:
      return
    #print "Adding......."
    vid_surface = pygame.Surface(self.VIDEO_WINSIZE);

    with self.screen_lock:
      if self.show_depth:
        address = self.surface_to_array(self.camera_surf)
        frame.image.copy_bits(address)
        del address
        self.screen.blit(self.camera_surf,self.camera_feed_pos);
      if self.skeletons is not None and self.draw_skeleton:
        self.draw_skeletons(self.skeletons)
        if self.state==self.RECORDING:
          self.collect(self.skeletons);
      disp(self)
      pygame.display.update()
示例#2
0
    def depth_frame_ready(self, frame):
        if self.video_display:
            return
        #print "Adding depth........"
        depth_surface = pygame.Surface(self.DEPTH_WINSIZE)

        with self.screen_lock:
            if self.show_depth:
                address = self.surface_to_array(depth_surface)
                frame.image.copy_bits(address)
                del address
                self.screen.blit(depth_surface, self.camera_feed_pos)
            if self.skeletons is not None and self.draw_skeleton:
                self.draw_skeletons(self.skeletons)
                if self.state == self.RECORDING:
                    self.collect(self.skeletons)

            disp(self)
            pygame.display.update()
示例#3
0
  def loop(self):
    pygame.display.set_caption('Louder than words')
    self.screen.fill(THECOLORS["black"])
    if self.use_speech:
      self.listen = True;
      self.speech_thread.start()


    kinect = nui.Runtime()
    kinect.skeleton_engine.enabled = True
    def post_frame(frame):
        try:
          pygame.event.post(pygame.event.Event(KINECTEVENT, skeletons = frame.SkeletonData))
        except:
          pass
    kinect.skeleton_frame_ready += post_frame
    
    kinect.depth_frame_ready += self.depth_frame_ready    
    kinect.video_frame_ready += self.video_frame_ready    
    
    kinect.video_stream.open(nui.ImageStreamType.Video, 2, nui.ImageResolution.Resolution640x480, nui.ImageType.Color)
    kinect.depth_stream.open(nui.ImageStreamType.Depth, 2, nui.ImageResolution.Resolution320x240, nui.ImageType.Depth)

    print('Controls: ')
    print('     d - Switch to depth view')
    print('     v - Switch to video view')
    print('     s - Toggle displaing of the skeleton')
    print('     u - Increase elevation angle')
    print('     j - Decrease elevation angle')

    pygame.time.set_timer(RECORDEVENT, 1000);
    done = False
    skeleton_counter = 0
    clock  = pygame.time.Clock()
    while not done:
      #r = random.randint(0,34);
      #g = random.randint(0,34);
      #b = random.randint(0,34);
      #background_color = (r,g,b);
      background_color = (1, 0, 79)
      e = pygame.event.wait()
      self.dispInfo = pygame.display.Info()
      if e.type == pygame.QUIT:
        self.listen = False
        done = True
        break
      elif e.type == RECORDEVENT:
        transition_handle(self,background_color,skeleton_counter)
      elif e.type == KINECTEVENT:
          skeletons = e.skeletons
          #print "recieving skeletons"
          ###COLLECTING DATA
          if self.state==self.RECORDING:
            if not self.paused:
              skeleton_counter+=1;
              self.collect(skeletons);
          if self.draw_skeleton:
            #print "sending skeletons"
            
            self.draw_skeletons(skeletons)
            pygame.display.update()
      elif e.type == KEYDOWN:
        if e.key == K_ESCAPE:
          done = True
          break
        elif e.key == K_d:
          with self.screen_lock:
            self.video_display = False
        elif e.key == K_v:
          with self.screen_lock:
            self.screen = pygame.display.set_mode(self.VIDEO_WINSIZE,0,16)
            self.video_display = True
        elif e.key == K_s:
          self.draw_skeleton = not self.draw_skeleton
        elif e.key == K_u:
          kinect.camera.elevation_angle = kinect.camera.elevation_angle + 2
        elif e.key == K_j:
          kinect.camera.elevation_angle = kinect.camera.elevation_angle - 2
        elif e.key == K_x:
          kinect.camera.elevation_angle = 2

      ######
      ##Click response
      ###
      if e.type ==MOUSEBUTTONDOWN:
        done=mouse_handle(self,done);
      if e.type==SPEECHEVENT:
        while len(e.words)!=0:
          speech_word = e.words.pop(0)
          done = word_handle(self,speech_word,done)
        
      disp(self);
      pygame.display.update();
      clock.tick();
    
    self.backend['save_data']()
    pygame.quit()
示例#4
0
    def loop(self):
        pygame.display.set_caption('Louder than words')
        self.screen.fill(THECOLORS["black"])
        if self.use_speech:
            self.listen = True
            self.speech_thread.start()

        # kinect = nui.Runtime()
        # kinect.skeleton_engine.enabled = True
        def post_frame(frame):
            try:
                pygame.event.post(
                    pygame.event.Event(KINECTEVENT,
                                       skeletons=frame.SkeletonData))
            except:
                pass

        # kinect.skeleton_frame_ready += post_frame

        # kinect.depth_frame_ready += self.depth_frame_ready
        # kinect.video_frame_ready += self.video_frame_ready

        # kinect.video_stream.open(nui.ImageStreamType.Video, 2, nui.ImageResolution.Resolution640x480, nui.ImageType.Color)
        # kinect.depth_stream.open(nui.ImageStreamType.Depth, 2, nui.ImageResolution.Resolution320x240, nui.ImageType.Depth)

        print('Controls: ')
        print('     d - Switch to depth view')
        print('     v - Switch to video view')
        print('     s - Toggle displaing of the skeleton')
        print('     u - Increase elevation angle')
        print('     j - Decrease elevation angle')

        pygame.time.set_timer(RECORDEVENT, 1000)
        done = False
        skeleton_counter = 0
        clock = pygame.time.Clock()
        while not done:
            r = random.randint(0, 34)
            g = random.randint(0, 34)
            b = random.randint(0, 34)
            background_color = (r, g, b)
            e = pygame.event.wait()
            self.text_input.handle_event(e)
            # self.text_input.update()
            self.text_input.draw(self.screen)
            self.dispInfo = pygame.display.Info()
            if e.type == pygame.QUIT:
                self.listen = False
                done = True
                break
            elif e.type == RECORDEVENT:
                ##recording
                transition_handle(self, background_color, skeleton_counter)
            elif e.type == KINECTEVENT:
                skeletons = e.skeletons
                ###COLLECTING DATA
                if self.state == self.RECORDING:
                    if not self.paused:
                        skeleton_counter += 1
                        self.collect(skeletons)
                if self.draw_skeleton:

                    self.draw_skeletons(skeletons)
                    pygame.display.update()

            ######
            ##Click response
            ###
            if e.type == MOUSEBUTTONDOWN:
                done = mouse_handle(self, done)
            if e.type == SPEECHEVENT:
                while len(e.words) != 0:
                    speech_word = e.words.pop(0)
                    done = word_handle(self, speech_word, done)

            disp(self)
            pygame.display.update()
            clock.tick()

        pygame.quit()