2015年5月11日 星期一

Week12

-------------------------------↓↓抓取頭部↓↓-------------------------------




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(1366, 737); openni = new SimpleOpenNI(this); openni.enableRGB(); openni.enableDepth(); openni.enableUser(); imgBG=loadImage("cute.jpg"); imgMask=createImage(1366, 737,ARGB); imgMask.loadPixels(); for(int i=0;i<1366*737;i++) { imgMask.pixels[i]=color(0,0,255,80); } imgMask.updatePixels(); } void draw() { image(imgBG,0,0); println(frameCount); openni.update(); image(openni.userImage(), 0, 0, 128,96); 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); }

-------------------------------↓↓擦玻璃↓↓-------------------------------



import SimpleOpenNI.*;
SimpleOpenNI  openni;
PImage imgBG;
PGraphics imgMask;
void setup()
{
  size(1366, 737);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
  imgBG=loadImage("cute.jpg");
  imgBG.resize(1366,737);
  imgMask=createGraphics(1366, 737);
  imgMask.beginDraw();
  imgMask.background(0);
  imgMask.endDraw();
//imgMask.loadPixels();
/*for(int i=0;i<1366*737;i++)
{
  imgMask.pixels[i]=color(0,0,255,80);
}
imgMask.updatePixels();*/
}

void draw()
{
  imgBG.mask(imgMask);
  image(imgBG,0,0);
  println(frameCount);
  openni.update();
  image(openni.userImage(), 0, 0, 128,96);
  //image(imgMask,0,0);
  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);

}

沒有留言:

張貼留言