Week 11
2016/5/5
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
void draw(){
openni.update();
image(openni.userImage(),0,0,600,400);
for(int userId : openni.getUsers()){
PVector pos = new PVector(0,0,0);
float confidence = openni.getJointPositionSkeleton(
userId,SimpleOpenNI.SKEL_HEAD,pos);
ellipse(pos.x,pos.y,50,50);
println(pos);
}
}
void onNewUser(SimpleOpenNI openni ,int userId){
openni.startTrackingSkeleton(userId);
}

2.修正白球的BUG,和頭上下移動變成一致
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
float Xpos(PVector pos){
return height/2 + pos.x*500/pos.z;
}
float Ypos(PVector pos){
return height/2 - pos.y*500/pos.z;
}
void draw(){
openni.update();
image(openni.userImage(),0,0,600,400);
for(int userId : openni.getUsers()){
PVector pos = new PVector(0,0,0);
float confidence = openni.getJointPositionSkeleton(
userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos);
ellipse(Xpos(pos),Ypos(pos),50,50);
println(pos);
}
}
void onNewUser(SimpleOpenNI openni ,int userId){
openni.startTrackingSkeleton(userId);
}
3.腳踢動作會出現紅色透明背景
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
float Xpos(PVector pos){
return height/2 + pos.x*500/pos.z;
}
float Ypos(PVector pos){
return height/2 - pos.y*500/pos.z;
}
void draw(){
openni.update();
image(openni.userImage(),0,0,600,400);
for(int userId : openni.getUsers()){
PVector pos = new PVector(0,0,0) , pos1=new PVector(0,0,0),pos2=new PVector(0,0,0);
float confidence;
confidence = openni.getJointPositionSkeleton(
userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos1);
ellipse(Xpos(pos1),Ypos(pos1),50,50);
print("Foot:"+confidence);
confidence = openni.getJointPositionSkeleton(
userId,SimpleOpenNI.SKEL_HEAD,pos);
ellipse(Xpos(pos),Ypos(pos),50,50);
confidence = openni.getJointPositionSkeleton(
userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos1);
ellipse(Xpos(pos2),Ypos(pos2),50,50);
println(abs(pos1.y-pos2.y));
if(confidence>0.6 && abs(pos1.y-pos2.y)>100) {fill(255,0,0,128); rect(0,0,600,400);}
}
}
void onNewUser(SimpleOpenNI openni ,int userId){
openni.startTrackingSkeleton(userId);
}
沒有留言:
張貼留言