Début d'intégration de la Kinect.
authorpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Thu, 28 Feb 2013 12:12:44 +0000 (12:12 +0000)
committerpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Thu, 28 Feb 2013 12:12:44 +0000 (12:12 +0000)
Ajout d'un script qui affiche la vidéo dans une fenêtre pygame.

git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@412 fe552daf-6dbe-4428-90eb-1537e0879342

src/kinect/__init__.py [new file with mode: 0755]
src/kinect/pygamedisplay.py [new file with mode: 0755]

diff --git a/src/kinect/__init__.py b/src/kinect/__init__.py
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/src/kinect/pygamedisplay.py b/src/kinect/pygamedisplay.py
new file mode 100755 (executable)
index 0000000..6a4f834
--- /dev/null
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+"""
+Affichage vidéo (et autres) de la kinect pour expérimentations / debug.
+
+$Id$
+$URL$
+"""
+
+from openni import *
+import numpy
+import cv
+import pygame
+
+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
+
+def main() :
+    # init openni
+    context = Context()
+    context.init()
+
+    #init pygame
+    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()
+    
+    
+    sur = pygame.Surface((640, 480))
+    sur.fill((255, 255, 255))
+    
+    while True :
+        for event in pygame.event.get():
+            pass
+        
+        context.wait_one_update_all(imgGene)
+        cv.WaitKey(10)
+        
+        rgbImg = capture_rgb(imgGene)
+        sur.blit(rgbImg, (0, 0))
+        screen.blit(sur, (0, 0))
+        pygame.display.flip()
+
+if __name__ == "__main__" :
+    main()