import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup()
{
size(640, 480);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
void draw()
{
background(255);
openni.update();
image(openni.userImage(), 0, 0, 640,480);
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/3, 50,50);
}
}
}
void onNewUser(SimpleOpenNI curContext, int userId)
{
curContext.startTrackingSkeleton(userId);
}
遮罩
import SimpleOpenNI.*;
SimpleOpenNI openni;
PImage imgBG,imgMask;
void setup()
{
size(1024,640);
openni= new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
imgBG=loadImage("1.gif");
imgMask=createImage(1024,640,ARGB);
imgMask.loadPixels();
for(int i=0;i<1024*640;i++)
{
imgMask.pixels[i]=color(0,255,255,220);
}
imgMask.updatePixels();
}
void draw()
{
//background(255);
image(imgBG,0,0);
println(frameCount);
openni.update();
image(openni.userImage(),0,0,64,48);
image(imgMask,0,0);
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/3,50,50);
}
}
}
void onNewUser(SimpleOpenNI curContext,int userId)
{
curContext.startTrackingSkeleton(userId);
}
擦玻璃
PImage imgBG;
PGraphics imgMask;
void setup(){
size(640,480);
imgBG=loadImage("1.gif");
imgBG.resize(640,480);
imgMask = createGraphics(640,480);
imgMask.beginDraw();
imgMask.background(0);
imgMask.endDraw();
}
void draw(){
imgBG.mask(imgMask);
image(imgBG,0,0);
}
void mouseDragged(){
imgMask.beginDraw();
imgMask.fill(255);
imgMask.ellipse(mouseX,mouseY,100,100);
imgMask.endDraw();
}
import SimpleOpenNI.*;
SimpleOpenNI openni;
PImage imgBG;
PGraphics imgMask;
void setup()
{
size(640, 480);
openni = new SimpleOpenNI(this);
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
imgBG=loadImage("1.gif");
imgBG.resize(640,480);
imgMask=createGraphics(640, 480);
imgMask.beginDraw();
imgMask.background(0);
imgMask.endDraw();
}
void draw()
{
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_RIGHT_HAND, pos);
imgMask.ellipse(320+pos.x/3, 240-pos.y/3, 50,50);
}
}
imgMask.endDraw();
}
void onNewUser(SimpleOpenNI curContext, int userId)
{
curContext.startTrackingSkeleton(userId);
}
沒有留言:
張貼留言