2015年12月23日 星期三

openFrameworks: Kinect For Windows V2

since: 2015/12/23
update: 2015/12/23
reference:
1. Setting up Kinect 2 for OpenFrameworks | rbarraza.com
2. elliotwoods/ofxKinectForWindows2 at 0.8.4


A. 系統需求:
     1. A Kinect for Windows v2 Device (K4W2)
     2. 64bit computer with a dedicated USB 3.0
     3. Windows 10, 8, 8.1
     4. Update your latest video card driver
     5. Install DirectX 11


     備註:
      a. How to Check Direct X Version in Windows:
      (1). Click “Start” > Run” or hold down the “Windows Key” and press “R“.
      (2). Type “dxdiag“, then click “OK“.
      (3). The version of DirectX you are currently running will be displayed on your screen.

       b.  check your system: run the Kinect Configuration Verifier tool


-----------------------------------------------------------------------------------------------

B. 安裝軟體:
     1. Kinect SDK v2
     2. Visual Studio Express 2012
     3. openframeworks v0.8.4
     4. ofxKinectForWindows2 addon


-----------------------------------------------------------------------------------------------

C. 執行範例專案:
     1. 開啟範例專案
         .... openFrameworks\of_v0.8.4\addons\ofxKinectForWindows2\
         example\example.sln

     2. 設定為啟始專案:

     3. 調整 example 與 ofxKinect4Windows2Lib 專案的 "平台工具組":
         分別對 example ofxKinect4Windows2Lib 專案作以下的調整:

         "點選該專案" > 屬性:
          所有組態 > 一般 > 平台工具組 > Visual Studio 2012 (v110)
  
   example:

   ofxKinect4Windows2Lib: 

     4. 建置方案與除錯:
         a. 建置 > 建置方案
             檢視 > 錯誤清單

         b. 將紅線框內的三行程式碼作註解

     5. 啟動程式:
         建置
> 建置方案 > (啟動)本機 Winows 偵錯工具

-----------------------------------------------------------------------------------------------

D. 建立新的 ofxKinect For Windows2 專案:
     1. 使用 OpenFrameworks  Project Generator 來產生新的專案:
         .... openFrameworks\of_v0.8.4\projectGenerator\projectGenerator.exe

     2. 設定專案名稱與要使用的 Addons:
         專案名稱: KinectTest
        
Addons: ofxKinectForWindows2
         > CREATE PROJECT


     2. 開啟剛剛建立的方案:
         .... openFrameworks\of_v0.8.4\apps\myApps\
         KinectTest\KinectTest.sln


     3. 加入 addons ofxKinectForWindows2 專案:
         a. 方案 > 加入 > 現有專案...

         b. 瀏覽選取 ....
             > ....openFrameworks\of_v0.8.4\addons\ofxKinectForWindows2
                \ofxKinectForWindows2Lib\ofxKinectForWindows2Lib.vcxproj


         c. 完成後, 可以看到多出了一個新的專案:
             ofxKinectForWindows2Lib

     4. 幫專案新增 ofxKinectForWindows2.props 屬性工作表:
         a. 檢視 > 屬性管理員

         b. 加入現有屬性工作表



         c. 瀏覽選取屬性工作表:
             .... openFrameworks\of_v0.8.4\addons\
             ofxKinectForWindows2\ofxKinectForWindows2.props


         d. 儲存:

-----------------------------------------------------------------------------------------------

E. 調整專案配置
     KinectTest 專案 > 屬性:

     1. 所有組態 > 組態屬性 > VC++ 目錄 > Include 目錄 >
         加入: $(KINECTSDK20_DIR)\inc

     2. 所有組態 > 組態屬性 > VC++ 目錄 > 程式庫目錄 >
         加入: $(KINECTSDK20_DIR)\lib\x86

     3. 所有組態 > 組態屬性 > 連結器 > 一般 > 其他程式庫目錄 >
         加入: $(KINECTSDK20_DIR)\Lib\x86

     4. 所有組態 > 組態屬性 > 連結器 > 輸入> 其他相依性 >
         加入: $(KINECTSDK20_DIR)\Lib\x86\Kinect20.lib

-----------------------------------------------------------------------------------------------

F. 撰寫程式:
    1. 開啟 ofApp.h 程式, 修改如下:
#pragma once

#include "ofMain.h"
#include "ofxKinectForWindows2.h"

class ofApp : public ofBaseApp{

    public:
        void setup();
        void update();
        void draw();

        void keyPressed(int key);
        void keyReleased(int key);
        void mouseMoved(int x, int y );
        void mouseDragged(int x, int y, int button);
        void mousePressed(int x, int y, int button);
        void mouseReleased(int x, int y, int button);
        void windowResized(int w, int h);
        void dragEvent(ofDragInfo dragInfo);
        void gotMessage(ofMessage msg);

        ofxKFW2::Device kinect;
};


    2. 開啟 ofApp.cpp 程式, 修改如下:
#include "ofApp.h"

//--------------------------------------------------------------
void ofApp::setup(){
    kinect.open();

    kinect.initBodyIndexSource();
    kinect.initColorSource();
}

//--------------------------------------------------------------
void ofApp::update(){
    this->kinect.update();
}

//--------------------------------------------------------------
void ofApp::draw(){
    this->kinect.getBodyIndexSource()->draw(0,0,512,424)

  this->kinect.getColorSource()->draw(532,0,640,360);
}
....

-----------------------------------------------------------------------------------------------

G. 建置與執行: (只取部份畫面)

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。