步驟一:
先到120.125.70.53下載需要的檔案打老鼠
一、偵測手的部分有一顆球
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
void draw(){
openni.update();
background(255);
image(openni.userImage(),0,0,300,200);
int [] userList = openni.getUsers();
PVector pos = new PVector(0,0,0);
for(int userID : userList){
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_LEFT_HAND,pos);
}
ellipse(pos.x,pos.y,50,50);
println(pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
openni.startTrackingSkeleton(userId);
}
二、偵測雙手跟頭都有球
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
void draw(){
openni.update();
background(255);
image(openni.userImage(),0,0,640,480);
PVector pos = new PVector(0,0,0);
int [] userList = openni.getUsers();
for(int userID : userList){
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_LEFT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(0,0,255);ellipse(pos.x,pos.y,50,50);
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_RIGHT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(255,0,0);ellipse(pos.x,pos.y,50,50);
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_HEAD,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(255,255,0);ellipse(pos.x,pos.y,50,50);
}
ellipse(pos.x,pos.y,50,50);
println(pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
openni.startTrackingSkeleton(userId);
}
三、成功做出打地鼠了
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
imgBG=loadImage("bg.png");
}
PImage imgBG;
void draw(){
openni.update();
background(255);
image(imgBG,0,0,640,480);
image(openni.userImage(),0,0,64,48);
PVector pos = new PVector(0,0,0), hand1 =new PVector(0,0,0), hand2 = new PVector(0,0,0);
int [] userList = openni.getUsers();
for(int userID : userList){
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_LEFT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(0,0,255);ellipse(pos.x,pos.y,50,50); hand1.set(pos);hand1.z=0;
fill(0,0,255);ellipse(pos.x/10,pos.y/10,5,5);
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_RIGHT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(255,0,0);ellipse(pos.x/10,pos.y/10,5,5);
fill(255,0,0);ellipse(pos.x,pos.y,50,50); hand2.set(pos); hand2.z=0;
//openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_HEAD,pos);
//openni.convertRealWorldToProjective(pos,pos);
//fill(255,255,0);ellipse(pos.x,pos.y,50,50);
}
PVector mouse1=new PVector(mouseX,mouseY,0);
if(PVector.dist(mouse1,hand1)<100|| PVector.dist(mouse1,hand2)<100){
ellipse(pos.x,pos.y,200,200);
}
//println(pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
openni.startTrackingSkeleton(userId);
}
二、偵測雙手跟頭都有球
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
void draw(){
openni.update();
background(255);
image(openni.userImage(),0,0,640,480);
PVector pos = new PVector(0,0,0);
int [] userList = openni.getUsers();
for(int userID : userList){
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_LEFT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(0,0,255);ellipse(pos.x,pos.y,50,50);
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_RIGHT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(255,0,0);ellipse(pos.x,pos.y,50,50);
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_HEAD,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(255,255,0);ellipse(pos.x,pos.y,50,50);
}
ellipse(pos.x,pos.y,50,50);
println(pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
openni.startTrackingSkeleton(userId);
}
三、成功做出打地鼠了
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
size(600,400);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
imgBG=loadImage("bg.png");
}
PImage imgBG;
void draw(){
openni.update();
background(255);
image(imgBG,0,0,640,480);
image(openni.userImage(),0,0,64,48);
PVector pos = new PVector(0,0,0), hand1 =new PVector(0,0,0), hand2 = new PVector(0,0,0);
int [] userList = openni.getUsers();
for(int userID : userList){
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_LEFT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(0,0,255);ellipse(pos.x,pos.y,50,50); hand1.set(pos);hand1.z=0;
fill(0,0,255);ellipse(pos.x/10,pos.y/10,5,5);
openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_RIGHT_HAND,pos);
openni.convertRealWorldToProjective(pos,pos);
fill(255,0,0);ellipse(pos.x/10,pos.y/10,5,5);
fill(255,0,0);ellipse(pos.x,pos.y,50,50); hand2.set(pos); hand2.z=0;
//openni.getJointPositionSkeleton(userID,SimpleOpenNI.SKEL_HEAD,pos);
//openni.convertRealWorldToProjective(pos,pos);
//fill(255,255,0);ellipse(pos.x,pos.y,50,50);
}
PVector mouse1=new PVector(mouseX,mouseY,0);
if(PVector.dist(mouse1,hand1)<100|| PVector.dist(mouse1,hand2)<100){
ellipse(pos.x,pos.y,200,200);
}
//println(pos);
}
void onNewUser(SimpleOpenNI curContext,int userId){
openni.startTrackingSkeleton(userId);
}
沒有留言:
張貼留言