2015年5月11日 星期一

WEEK12

https://www.youtube.com/watch?v=06o7402ZScs
----------------------------------------------------------------------------------------------------------------------------------------------
0. 下載今天上課要用到的軟體
0.1. Kinect SDK 1.8
0.2. Processing 2.2.1 32bit
0.3. SimpleOpenNI
0.4. FAAST
0.5. 老師雲端硬碟的下載網址
https://drive.google.com/folderview?id=0ByYbu0zjxrp1flNibGlDMldkWlBqWWtGeGhlQVU4dzBORmNXblBJeWFjWXVWbVVFUTF0Nmc&usp=sharing
----------------------------------------------------------------------------------------------------------------------------------------------


 SimpleOpenNI 資料夾匯入 processing 的 library 裡


執行範例程式



範例user




----------------------------------------------------------------------------------------------------------------------------------------------
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);
}






----------------------------------------------------------------------------------------------------------------------------------------------
滑鼠擦玻璃:
PImage imgBG;
PGraphics imgMask;
void setup(){
  size(900,506);
  imgBG = loadImage("arafes.jpg");
  imgBG.resize(900,506);
  imgMask = createGraphics(900,506);
  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;
PGraphics imgMask;
PImage imgBG;
void setup()
openni = new SimpleOpenNI(this);
{
size(900, 506);
openni.enableRGB();
imgBG=loadImage("arafes.jpg");
openni.enableDepth();
openni.enableUser();
imgMask.beginDraw();
imgBG.resize(900,506);
imgMask=createGraphics(900, 506);
/*for(int i=0;i<900*506;i++)
imgMask.background(0);
imgMask.endDraw();
{
//imgMask.loadPixels();
imgBG.mask(imgMask);
imgMask.pixels[i]=color(0,0,255,80);
}
imgMask.updatePixels();*/
}
int[] userList = openni.getUsers();
void draw()
{
image(imgBG,0,0);
println(frameCount);
image(openni.userImage(), 0, 0, 128,96);
openni.update();
if(openni.isTrackingSkeleton(userList[i])){
//image(imgMask,0,0);
imgMask.beginDraw();
imgMask.fill(255);
imgMask.noStroke();
imgMask.ellipse(320+pos.x/3, 240-pos.y/3, 200,200);
for(int i = 0;i<userList.length;i++)
{
PVector pos = new PVector();
openni.getJointPositionSkeleton(userList[i],SimpleOpenNI.SKEL_RIGHT_HAND, pos);
}
}
}
imgMask.endDraw();
}
void onNewUser(SimpleOpenNI curContext, int userId)
{
curContext.startTrackingSkeleton(userId);








沒有留言:

張貼留言