This program uses the depth sensors to track the center of gravity of tracked users. It will display a circle on the user’s center of gravity and display each tracked user’s center of gravity vector position.
import SimpleOpenNI.*; // create kinect object SimpleOpenNI kinect; // current position of current user PVector position = new PVector(); // current kinect image storage PImage kinectImage; // create new user list IntVector userList; // size of dot to show center of mass position int dotSize = 10; // user colors color[] userColor = new color[]{ color(255,0,0), color(0,255,0), color(0,0,255), color(255,255,0), color(255,0,255), color(0,255,255) }; /*--------------------------------------------------------------- Setup method. enables kinect and tracking. Creates draw window ----------------------------------------------------------------*/ void setup() { // create new kinect object kinect = new SimpleOpenNI(this); // enable depth sensor kinect.enableDepth(); // enable rgb sensor kinect.enableRGB(); // enable tracking but with no joint tracking kinect.enableUser(); // start new user list userList = new IntVector(); // create window size of depth info size(kinect.rgbWidth(),kinect.rgbHeight()); } /*--------------------------------------------------------------- Draw method. Updates kinect and displays it. Draws red dots at tracked user's center of gravity ----------------------------------------------------------------*/ void draw() { // update kinect kinect.update(); // get current image from kinect kinectImage = kinect.rgbImage(); //draw current image at (0,0) image(kinectImage, 0, 0); //get list of tracked users kinect.getUsers(userList); //for each tracked user find center of gravity for (int i=0; i