X-Git-Url: https://scm.cri.mines-paristech.fr/git/minwii.git/blobdiff_plain/7f861db051bcbbaed3f47e3a90e60a3b9781f5e4..29dfa14e4419fb6ceb9350223f410e967e8cc4f6:/src/kinect/pygamedisplay.py diff --git a/src/kinect/pygamedisplay.py b/src/kinect/pygamedisplay.py index 6a4f834..82621ea 100755 --- a/src/kinect/pygamedisplay.py +++ b/src/kinect/pygamedisplay.py @@ -15,31 +15,36 @@ SCREEN_SIZE = 640, 480 SCREEN_TITLE = "Kinect debug" FPS = 30 -def capture_rgb(imgGene): - rgb_frame = numpy.fromstring(imgGene.get_raw_image_map_bgr(), dtype=numpy.uint8).reshape(480, 640, 3) - image = cv.fromarray(rgb_frame) - cv.CvtColor(cv.fromarray(rgb_frame), image, cv.CV_BGR2RGB) - pyimage = pygame.image.frombuffer(image.tostring(), cv.GetSize(image), 'RGB') - return pyimage +class RGB : + def __init__(self) : + self.context = Context() + self.context.init() + self.imgGene = ImageGenerator() + self.imgGene.create(self.context) + self.imgGene.set_resolution_preset(RES_VGA) + self.imgGene.fps = FPS + self.context.start_generating_all() + + def capture(self) : + rgb_frame = numpy.fromstring(self.imgGene.get_raw_image_map_bgr(), dtype=numpy.uint8).reshape(480, 640, 3) + image = cv.fromarray(rgb_frame) + cv.CvtColor(cv.fromarray(rgb_frame), image, cv.CV_BGR2RGB) + pyimage = pygame.image.frombuffer(image.tostring(), cv.GetSize(image), 'RGB') -def main() : - # init openni - context = Context() - context.init() + return pyimage + + def update(self) : + return self.context.wait_one_update_all(self.imgGene) - #init pygame + + +def main() : pygame.init() screen = pygame.display.set_mode(SCREEN_SIZE) pygame.display.set_caption(SCREEN_TITLE) - imgGene = ImageGenerator() - imgGene.create(context) - imgGene.set_resolution_preset(RES_VGA) - imgGene.fps = FPS - - context.start_generating_all() - + rgb = RGB() sur = pygame.Surface((640, 480)) sur.fill((255, 255, 255)) @@ -48,13 +53,13 @@ def main() : for event in pygame.event.get(): pass - context.wait_one_update_all(imgGene) - cv.WaitKey(10) - - rgbImg = capture_rgb(imgGene) + rgb.update() + + rgbImg = rgb.capture() sur.blit(rgbImg, (0, 0)) - screen.blit(sur, (0, 0)) + screen.blit(pygame.transform.flip(sur, True, False), (0, 0)) pygame.display.flip() + if __name__ == "__main__" : main()