CLICK THE FOLLOWING LINK
import SimpleOpenNI.*;
SimpleOpenNI kinect;
void setup() {
size(640,480);
kinect = new SimpleOpenNI(this);
kinect.enableDepth();
kinect.enableUser(SimpleOpenNI.SKEL_PROFILE_ALL);
}
void draw() {
kinect.update();
//vector of ints to store users
IntVector userList = new IntVector();
//list of detected users
kinect.getUsers(userList);
if (userList.size()>0) {
int userId = userList.get(0);
if(kinect.isTrackingSkeleton(userId)){
PVector torso = new PVector();
float confidence = kinect.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_TORSO,torso);
PVector convertedTorso = new PVector();
kinect.convertRealWorldToProjective(torso, convertedTorso);
float backgroundc = map(convertedTorso.z,700, 2500,50,1);
if(confidence>0.5){
background(convertedTorso.x,convertedTorso.y,backgroundc);
}
PVector rightHip = new PVector();
PVector leftHip = new PVector();
kinect.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_LEFT_HIP,
rightHip);
kinect.getJointPositionSkeleton(userId,
SimpleOpenNI.SKEL_RIGHT_HIP,
leftHip);
PVector differenceVector = PVector.sub(leftHip, rightHip);
float magnitude = differenceVector.mag();
differenceVector.normalize();
kinect.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP,
SimpleOpenNI.SKEL_RIGHT_HIP);
pushMatrix();
fill(abs(differenceVector.x) *255,abs(differenceVector.y) *255,abs(differenceVector.z) *255);
popMatrix();
//PVector convertedRightHip = new PVector();
//kinect.convertRealWorldToProjective(rightHip, convertedRightHip);
//ellipse(convertedRightHip.x,convertedRightHip.y,10,20);
//PVector convertedLefttHip = new PVector();
//kinect.convertRealWorldToProjective(leftHip, convertedLefttHip);
// ellipse(convertedLefttHip.x,convertedLefttHip.y,20,10);
}
}
}
// user-tracking callbacks!
void onNewUser(int userId) {
println(“start pose detection”);
kinect.startPoseDetection(“Psi”, userId);
}
void onEndCalibration(int userId, boolean successful) {
if (successful) {
println(” User calibrated !!!”);
kinect.startTrackingSkeleton(userId);
} else {
println(” Failed to calibrate user !!!”);
kinect.startPoseDetection(“Psi”, userId);
}
}
void onStartPose(String pose, int userId) {
println(“Started pose for user”);
kinect.stopPoseDetection(userId);
kinect.requestCalibrationSkeleton(userId, true);
}