Kinect

Kinect SDK + OpenCV2.2 サンプルプログラム作成

昨日公開されたKinect SDKですが、データをOpenCVに接続するサンプルを勉強がてら作ってみました。

 

やった事はKienct SDKのサンプルプログラム(SkeletalViewer)をベースに、画像表示部分のデータポインタをOpenCVのIplImageにコピーしています。

 

とりあえずこんな感じ↓

Kinect SDK + OpenCV2.2

あ~~ 部屋が狭い、汚い、ボロイ。

 

もともとのサンプルでは、Playerの部分はDepthデータに合わせてカラーで表示しているのですが、この部分は別ウィンドウに分けました。

 

ご興味があればサンプルプログラムはこちら↓よりダウンロードできます。

 

KinectSDK_OpenCV22.zip

 

上記ファイルをダウンロード、解凍し、解凍したフォルダ(OpenCV)をKinectSDKのサンプルフォルダ

 

C:\Users\Public\Documents\Microsoft Research KinectSDK Samples\NUI\SkeletalViewer

 

に入れて下さい。(インクルードディレクトリ設定の都合上)

 

プログラムの終了は Skeletal Viewer のウィンドウの×ボタンで。

 

動作環境は

  • Kinect SDKが動作する事。
  • OpenCV2.2がインストールされている事。

です。

 

もう少しサンプルをスッキリさせたい気もしますが、もうすぐしたら、OpenCV2.3が公開されるでしょうから、ちょっと様子見で...


(2011.06.21追記)
と思ったら、kaorun55さんが、シンプルなソースコードを公開していました。
Kinect for Windows SDK beta で遊んでみた・その2(C++でOpenCV対応、OpenNIっぽく)
さすがですね。


 

ソースコードを見ていて気になったのが、深度データは16bitのバッファに格納されているのですが、16bit中の上位13bitが実際の深度データで、下位3bitにPlayerの番号が各画素ごとに割り振られていました。

 

また、深度データの解像度(320×240)を変えようと思ったのですが、出来ないのか???

(2011.06.21追記)

80×60にはできるらしい。ってデカくはできない!

コメント

  1. 3D より:

    いつもサイト拝見させていただいてます。参考にしてます。
    kinectでの3D形状取得の情報があまりネットになくて困っているのですが、それに関してのエントリを書いていただけると助かります!!

    • akira より:

      コメント頂きありがとうございます。
      『Kinectでの3D形状取得の情報』というのは具体的にはどのような事を期待されていますか?
      例えば、このページ
      http://imagingsolution.blog107.fc2.com/blog-entry-273.html
      にあるような、深度データから立体に表示する方法なのか?
      それとも3Dデータをつなぎ合わせたい!とかでしょうか?
      上記ページに示しているのは、深度データを11bitで取得し、OpenGLで表示しています。
      OpenGLはそれなりに大変なので、簡単に記事にまとめるのは難しいのですが、ネタの候補にはしたいとは思っています。

タイトルとURLをコピーしました