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()
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()
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()
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()