This program will track a user and take their outline and paste it onto any background you want. The setup method includes where you need to add the name of the picture you want to use as the background. This picture needs to be stored in the same parent folder as the program itself.
import SimpleOpenNI.*; // create kinect object SimpleOpenNI kinect; // boolean if kinect is tracking boolean tracking = false; // current userid of tracked user int userID; // mapping of users int[] userMapping; // background image PImage backgroundImage; // image from rgb camera PImage rgbImage; /*--------------------------------------------------------------- Setup method. Enables kinect and draw window ----------------------------------------------------------------*/ void setup() { // start new kinect object kinect = new SimpleOpenNI(this); //enable depth camera kinect.enableDepth(); // enable color camera kinect.enableRGB(); // enable tracking kinect.enableUser(); // turn on depth-color alignment kinect.alternativeViewPointDepthToImage(); // load the background image backgroundImage = loadImage("wef.png"); // create window width/height of rgb camera size(kinect.rgbWidth(),kinect.rgbHeight()); } /*--------------------------------------------------------------- Draw method. ----------------------------------------------------------------*/ void draw() { // display the background image first at (0,0) image(backgroundImage, 0, 0); //update kinect image kinect.update(); // get the Kinect color image rgbImage = kinect.rgbImage(); // prepare the color pixels loadPixels(); // get pixels for the user tracked userMapping = kinect.userMap(); // for the length of the pixels tracked, color them // in with the rgb camera for (int i =0; i < userMapping.length; i++) { // if the pixel is part of the user if (userMapping[i] != 0) { // set the sketch pixel to the rgb camera pixel pixels[i] = rgbImage.pixels[i]; } } // update any changed pixels updatePixels(); } /*--------------------------------------------------------------- When a new user is found, print new user detected along with userID and start pose detection. Input is userID ----------------------------------------------------------------*/ void onNewUser(SimpleOpenNI curContext, int userId){ println("New User Detected - userId: " + userId); // start tracking of user id curContext.startTrackingSkeleton(userId); } /*--------------------------------------------------------------- Print when user is lost. Input is int userId of user lost ----------------------------------------------------------------*/ void onLostUser(SimpleOpenNI curContext, int userId){ // print user lost and user id println("User Lost - userId: " + userId); }