SoftKinetic の基本API群である DepthSenseSDK を触ってみました。OpenNI や Kinect SDK の Color,Depth,Audio の各ストリームに相当する部分のようです。
SoftKineticのDS325はハードウェアとして、カラーカメラ、距離カメラ、マイクを持っているので、KinectやXtionと同じような構成ですね。
始めに添付のサンプルを動かしてみます。
サンプルアプリケーションを動かしてみる
インストールしているSDKは32bit版です。
1. バイナリへのパスが通ってないので、環境変数に追加します。既定では「C:\Program Files (x86)\SoftKinetic\DepthSenseSDK\bin」を設定します。
2. サンプルは規定では「C:\Program Files (x86)\SoftKinetic\DepthSenseSDK\samples\ConsoleDemo」にあるので、ConsoleDemoフォルダごとデスクトップなどにコピーします。
3. ConsoleDemo.sln を開き、パスの設定を行います
- 追加のインクルード ディレクトリ:C:\Program Files (x86)\SoftKinetic\DepthSenseSDK\include
- 追加のライブラリ ディレクトリ:C:\Program Files (x86)\SoftKinetic\DepthSenseSDK\lib
4. 実行してみます。コンソール画面に数字がでればOKです。AはAudio、CはColor、ZはDepthのストリームのデータサイズが表示されます
カラーカメラの画像を表示してみる
OpenCVを使ってカラーカメラの画像を表示してみます。OpenCVの環境設定は割愛します。
カラーカメラのコールバックに書きコードを追加して実行します(そのた必要なヘッダなどは入れてください)。
/*----------------------------------------------------------------------------*/// New color sample event handler
void onNewColorSample(ColorNode node, ColorNode::NewSampleReceivedData data)
{
printf("C#%u: %d\n",g_cFrames,data.colorMap.size());
g_cFrames++;
cv::Mat mat( 480, 640, CV_8UC3, (void*)(const uint8_t*)data.colorMap );
cv::imshow( "SoftKinetic Color Camera", mat );
cv::waitKey( 1 );
}
カラーカメラの画像が表示されればOKです。
Kinectのカラーカメラと比べるとDS325のほうがキレイかもしれませんね。