2015年5月11日 星期一

Week12

抓出骨架,在頭上畫圓


code:


import Sim;leOpenNI.*;
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);
}




photo:















擦玻璃


滑鼠click後拖曳擦玻璃版




code:

PImage imgBG;
PGraphics imgMask;

void setup(){
  size(640, 480);
  imgBG= loadImage("toystory3.jpg");
  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();
}



photo:




用手擦玻璃Kinect 版本

code:


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("123.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, 200,200); } }


imgMask.endDraw();  
} void onNewUser(SimpleOpenNI curContext, int userId) { curContext.startTrackingSkeleton(userId);

}





photo:












沒有留言:

張貼留言