2015年5月11日 星期一

Week12

一開始自己寫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);
}



手動擦玻璃

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

沒有留言:

張貼留言