Hula

CLICK THE FOLLOWING LINK

http://youtu.be/5vMWzscfK0w

 

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);
}

Comments are closed.