2016年5月5日 星期四

160505_02160065劉劭玟_week11

今天的目標
先把 
SDK 1.8 
toolkit
meshlab
下載安裝好
但是檔案有點大
要下載有點久

期末作品的期望就是做

running man
跟胡佩君一組

再來就是今天的進度

再來就是腳的偵測

最後一個是踢足球的偵測
可是有點來不及
在此獻上程式碼的部分


主要用的就是
 if(confidence>0.6 && abs(pos1.y-pos2.y)>100)
來檢查

week11_02160092

足球遊戲

1.偵測到人頭
void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
openni.enableDepth();
openni.enableUser();
}
void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
  PVector pos = new PVector(0,0,0);
  float confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_HEAD,pos);
  ellipse(pos.x,pos.y,50,50);
  println(pos);
  }
}
void onNewUser(SimpleOpenNI openni, int userId){
openni.startTrackingSkeleton(userId);
}











2.偵測到頭與左腳
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
openni.enableDepth();
openni.enableUser();
}
float Xpos(PVector pos){
  return width/2+pos.x*500/pos.z;
}
float Ypos(PVector pos){
  return height/2-pos.y*500/pos.z;
}
void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
  PVector pos = new PVector(0,0,0);
  float confidence;
  confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos);
  ellipse(Xpos(pos),Ypos(pos),50,50);
  confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_HEAD,pos);
  ellipse(Xpos(pos),Ypos(pos),50,50);
  println(pos);
  }
}
void onNewUser(SimpleOpenNI openni, int userId){
openni.startTrackingSkeleton(userId);
}











3.偵測左右腳+頭
openni.enableDepth();
openni.enableUser();
}
float Xpos(PVector pos){
  return width/2+pos.x*500/pos.z;
}
float Ypos(PVector pos){
  return height/2-pos.y*500/pos.z;
}
void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
  PVector pos = new PVector(0,0,0),pos1=new PVector(0,0,0),pos2=new PVector(0,0,0);
  float confidence;
  confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos);
  ellipse(Xpos(pos1),Ypos(pos1),50,50);
  print(" Foot: "+confidence);
  confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_HEAD,pos);
  ellipse(Xpos(pos),Ypos(pos),50,50);
  confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_RIGHT_FOOT,pos);
  ellipse(Xpos(pos2),Ypos(pos2),50,50);
  println(abs(pos1.y-pos2.y));
  if(confidence>0.6&&abs(pos1.y-pos2.y)>100){fill(255,0,0,128);rect(0,0,600,400);}
  }
}
void onNewUser(SimpleOpenNI openni, int userId){
openni.startTrackingSkeleton(userId);
}

week11 02160120 黃冠中

import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
openni.enableDepth();
openni.enableUser();
}
void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
  PVector pos = new PVector(0,0,0);
  float confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_HEAD,pos);
  ellipse(pos.x,pos.y,50,50);
  println(pos);
  }
}
void onNewUser(SimpleOpenNI openni, int userId){
openni.startTrackingSkeleton(userId);
}


Week 11,02160261,鄧安倫

Week 11


2016/5/5

1.偵測人的頭部,然後會有一顆相對應的白色球
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
    PVector pos = new PVector(0,0,0);
    float confidence = openni.getJointPositionSkeleton(
      userId,SimpleOpenNI.SKEL_HEAD,pos);
     ellipse(pos.x,pos.y,50,50);
     println(pos);
    }
  }
  void onNewUser(SimpleOpenNI openni ,int userId){
    openni.startTrackingSkeleton(userId);
  }





2.修正白球的BUG,和頭上下移動變成一致
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
float Xpos(PVector pos){
  return height/2 + pos.x*500/pos.z;
}
float Ypos(PVector pos){
  return height/2 - pos.y*500/pos.z;
}

void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
    PVector pos = new PVector(0,0,0);
    float confidence = openni.getJointPositionSkeleton(
      userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos);
     ellipse(Xpos(pos),Ypos(pos),50,50);
     println(pos);
    }
  }
  void onNewUser(SimpleOpenNI openni ,int userId){
    openni.startTrackingSkeleton(userId);
  }




3.腳踢動作會出現紅色透明背景
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
float Xpos(PVector pos){
  return height/2 + pos.x*500/pos.z;
}
float Ypos(PVector pos){
  return height/2 - pos.y*500/pos.z;
}

void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId : openni.getUsers()){
    PVector pos = new PVector(0,0,0) , pos1=new PVector(0,0,0),pos2=new PVector(0,0,0);
   float confidence;
   confidence = openni.getJointPositionSkeleton(
      userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos1);
   ellipse(Xpos(pos1),Ypos(pos1),50,50);
   print("Foot:"+confidence);
   confidence = openni.getJointPositionSkeleton(
      userId,SimpleOpenNI.SKEL_HEAD,pos);
       ellipse(Xpos(pos),Ypos(pos),50,50);
   confidence = openni.getJointPositionSkeleton(
      userId,SimpleOpenNI.SKEL_LEFT_FOOT,pos1);
   ellipse(Xpos(pos2),Ypos(pos2),50,50);
   println(abs(pos1.y-pos2.y));
   if(confidence>0.6 && abs(pos1.y-pos2.y)>100) {fill(255,0,0,128); rect(0,0,600,400);}
    }
  }
  void onNewUser(SimpleOpenNI openni ,int userId){
    openni.startTrackingSkeleton(userId);
  }


week11


我們的期末作品要做切水果
想要做出這種效果


1.SDK 1.8,再裝Toolkit
1.1.下載MeshLab
1.2.讀KinectFusion模型
2.在blog寫你期末作品
3.User/User3D
4.畫骨架
5.踢足球
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup()
{
  size(600,400);
openni = new enableRGB();
openni.enableRGB();
openni.enableDepth();
openni.enableUser();
}
void draw(){
  openni.update();
  image(openni.userImage(),0,0,600,400);
  for(int userId:openni.getUsers()){
    PVector pos = new PVector(0,0,0);
    float confidence = openni.getJointPositionSkeleton(
    userId,SimpleOpenNI.SKEL_HEAD,pos);
    ellipse(pos.x,pos.y,50,50);
    println(pos);
  }
}
void onNewUser(SimpleOpenNI openni,int userId){
  openni.startTrackingSkeleton(userId);
}

Week11 金博鈞

import SimpleOpenNI.*;

SimpleOpenNI openni;

void setup(){
  size(600,400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}

void draw(){
  openni.update();
  image(openni.userImage(), 0,0 ,600,400);
  for(int userId : openni.getUsers()){
    PVector pos = new PVector(0,0,0);
    float confidence = openni.getJointPositionSkeleton(userId,SimpleOpenNI.SKEL_HEAD,pos);
      ellipse(pos.x, pos.y, 50,50);
      println(pos);
  }
}
void onNewUser(SimpleOpenNI openni,int userId)
{
  openni.startTrackingSkeleton(userId);
}

期末題目




WEEK11_02160136_陳威志