LoginSignup
0
0

More than 3 years have passed since last update.

Processing3 + SimpleOpen NI + kinectv1 で骨格検知

Posted at

Processing + kinect v1で顔の位置をとりたく、

SimpleOpenNIとやらが必要となり、
メニューのツールからインストールしようとしたら無くなっていたので、

同じ悩みを抱えてる方いましたらと思ったメモです。

この記事のおかげです感謝
https://qiita.com/kikpond15/items/6c8f8b192c7c21c59b41

import Libraryから入れ直してみたり,.jarファイルを入れ替えてみたりしたけどだめだった.
けど,totovrさんがProcessing3.3.6ようにライブラリを作ってくれていました
SimpleOpenniからダウンロードしてライブラリに入れれば動きました.

totovrさんのSimpleOpenni

↑このREADME.mdのとおりライブラリ設定やって

import SimpleOpenNI.*;

// SimpleOpenNI
SimpleOpenNI kinect;

void setup(){ 
  size(640, 480);

  kinect = new SimpleOpenNI(this);

  kinect.enableDepth(); 

  kinect.enableUser();
}


void draw(){

  kinect.update();


  // 深度画像取得して表示
  PImage depth = kinect.depthImage();
  image(depth, 0, 0);


  // 検出した人たちをuserListにいれる
  IntVector userList = new IntVector();
  kinect.getUsers(userList);

  // 一人以上検出してたら
  if(userList.size() > 0){

    // 一人目のID取得
    int userId = userList.get(0);

    //  一人目の骨格を見にいく
    if(kinect.isTrackingSkeleton(userId)) {

      //  頭の(x,y,z)座標取得 
      PVector headPos = new PVector();
      kinect.getJointPositionSkeleton( userId,SimpleOpenNI.SKEL_HEAD,headPos );



      顔の位置入れとくPVector用意
      PVector convertedHeadPos = new PVector();

        //丸書くために、現実世界の座標から、スクリーンの2次元のx,y座標に変換(多分)
        kinect.convertRealWorldToProjective( headPos, convertedHeadPos );

        // 青丸描画
        fill(255, 0, 0);
        ellipse(convertedHeadPos.x, convertedHeadPos.y,50,50 );
      }
    }
}



// 新しいuser検知した時
void onNewUser( SimpleOpenNI kinect, int userId ){
  println("Detection Start");
  kinect.startTrackingSkeleton(userId); 
}



0 SKEL_HEAD 顔の中心
1 SKEL_NECK 首の下
2 SKEL_LEFT_SHOULDER
3 SKEL_RIGHT_SHOULDER
4 SKEL_LEFT_ELBOW
5 SKEL_RIGHT_ELBOW
6 SKEL_LEFT_HAND
7 SKEL_RIGHT_HAND
8 SKEL_TORSO へそのあたり
9 SKEL_LEFT_HIP
10 SKEL_RIGHT_HIP
11 SKEL_LEFT_KNEE ひざ
12 SKEL_RIGHT_KNEE
13 SKEL_LEFT_FOOT
14 SKEL_RIGHT_FOOT

多分コメントあってると思いますが...以上。

色々参考

http://denki.nara-edu.ac.jp/~yabu/soft/processing.html#17

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0