Dies ist eine alte Version des Dokuments!
Die Kinect ist eine Hardware zur Steuerung der Xbox360. Mit ihr lassen sich besonders gut Tiefen-Informationen eines Raumes gewinnen und die Silhouette eines Menschen vom Raum trennen.
Wir wollen zunächst die Kinect unter Windows für Processing einrichten. Dazu müsst ihr folgende Installationen durchführen:
- Processing
- Kinect SDK
Es kann sein das ihr zusätzlich noch die .NET Frameworks installieren müsst, aber darauf macht euch der Kinect SDK installier aufmerksam. Nach erfolgreicher Installation sollte die Kinect im Gerätemanager auftauchen.
Auf der Website http://www.creativeapplications.net findet ihr ein spektakuläres Tutorial zur Kinect. Da seit erstellen des Tutorials neue Versionen der SimpleOpenNI und Processing erschienen sind, solltet ihr den SourceCode aus unserem Wiki verwenden. Der Code von „creativeApplications“ funktioniert leider nicht mehr. Außerdem benötigt ihr einige weiter Bibliotheken unter Processing um den Code ausführen zu können. Die Installation erfolgt analog zu der von SimpleOpenNI.
Geh in das Menü: Sketch → Import Library → Add Library
Zunächst schauen wir uns eine einfache Möglichkeit an, eine Person vom Rest der Umgebung zu isolieren:
// UserPixel Basic Example by Corvin Jaedicke (15.08.13) import processing.opengl.*; import SimpleOpenNI.*; SimpleOpenNI kinect; PImage userImage; int userID; int[] userMap; int[] user; PImage rgbImage; void setup() { size(640, 480, OPENGL); kinect = new SimpleOpenNI(this); kinect.enableDepth(); kinect.enableUser(); } void draw() { background(0); kinect.update(); // if we have detected any users if (kinect.getNumberOfUsers() > 0) { // find out which pixels have users in them user=kinect.userMap(); userMap = kinect.userImage().pixels; // populate the pixels array // from the sketch's current contents loadPixels(); for (int i = 0; i < userMap.length; i++) { // if the current pixel is on a user if (user[i] > 0) { // make it green pixels[i] = color(0,0,255); } } // display the changed pixel array updatePixels(); } } void onNewUser(int uID) { userID = uID; println("tracking"); }