一開始自己寫kinect程式
印出人(多人)
(1) 體感扭屁股
(2) 體感追蹤頭, (3) 體感擦玻璃
import SimpleOpenNI.*;
SimpleOpenNI openni;
PImage imgBG ,imgMask;
void setup(){
size(1024,640,P3D);
openni=new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
imgBG=loadImage("MIKEY.jpg");
imgMask=createImage(1024,640, ARGB);
/* imgMask.loadPixels();
for(int i=0;i<640*480;i++){
imgMask.pixels[i]=color(0,0,255,220);
}
imgMask.updatePixels();
*/
}
void draw(){
//background(255);
image(imgBG,0,0);
println(frameCount);
openni.update();
image(openni.userImage(),0,0,64,48);
int[] userList=openni.getUsers();
for(int i=0;i<userList.length;i++)
{
if(openni.isTrackingSkeleton(userList[i])){
PVector pos=new PVector();
openni.getJointPositionSkeleton( userList[i],SimpleOpenNI.SKEL_HEAD,pos);
println(pos); fill(255); ellipse(320+pos.x/3,240-pos.y,50,50);
openni.getJointPositionSkeleton( userList[i],SimpleOpenNI.SKEL_LEFT_HAND,pos);
println(pos); fill(255); ellipse(320+pos.x/3,240-pos.y,50,50);
openni.getJointPositionSkeleton( userList[i],SimpleOpenNI.SKEL_RIGHT_HAND,pos);
println(pos); fill(255); ellipse(320+pos.x/3,240-pos.y,50,50);
// println(userList[i]);
}
}
}
void onNewUser(SimpleOpenNI curContext, int userId)
{
curContext.startTrackingSkeleton(userId);
}
手動擦玻璃
SimpleOpenNI openni;
PImage imgBG;
PGraphics imgMask;
void setup(){
size(1024,640,P3D);
openni=new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
imgBG=loadImage("MIKEY.jpg");
imgBG.resize(640,480);
// imgMask=createImage(1024,640, ARGB);
imgMask=createGraphics(640,480);
imgMask.beginDraw();
imgMask.background(0);
imgMask.endDraw();
/* imgMask.loadPixels();
for(int i=0;i<640*480;i++){
imgMask.pixels[i]=color(0,0,255,220);
}
imgMask.updatePixels();
*/
}
void draw(){
//background(255);
imgBG.mask(imgMask);
image(imgBG,0,0);
println(frameCount);
openni.update();
image(openni.userImage(),0,0,64,48);
int[] userList=openni.getUsers();
imgMask.beginDraw();
imgMask.noStroke();
imgMask.fill(255);
for(int i=0;i<userList.length;i++)
{
if(openni.isTrackingSkeleton(userList[i])){
PVector pos=new PVector();
openni.getJointPositionSkeleton( userList[i],SimpleOpenNI.SKEL_LEFT_HAND,pos);
imgMask.ellipse(320+pos.x/3,240-pos.y,250,250);
// println(pos); fill(255); ellipse(320+pos.x/3,240-pos.y,50,50);
// println(userList[i]);
}
}
imgMask.endDraw();
}
void onNewUser(SimpleOpenNI curContext, int userId)
{
curContext.startTrackingSkeleton(userId);
}
沒有留言:
張貼留言