Home > ソフトウエア | 技術 | 画像処理 > OpenKinectを使ってみる(VC++2005にて)

OpenKinectを使ってみる(VC++2005にて)

Windows用のOpenKinectのソースとデモが
http://openkinect.org/wiki/Main_Page (Installation→Windowsの先のリンクらへん)
からDLできるので,さっそく自分のプログラムでKinectを使う実験開始.

Code
こんな感じにOpenKinectのソースを自分のプロジェクトに追加し,
サンプルを参考にコードを書いて実行

……が,なにやら数フレーム後には固まる
→ヒープが破壊されたとかいうメッセージボックス
→ブルースクリーンに突入 Oh…

DLしてきたデモ(v14)もちょっとウィンドウ位置を動かしたりして負荷をかけるとそんな感じの現象を起こす
(コンソールに「データを取りこぼした」感じの文章が出始めたら危険信号).
“OpenKinect”とかで検索しても,デモを動かしてみた世間の方々はそんなことを言ってないので
私の環境だけの問題なのだろうか……?

どうにもKinectListenerのコールバック内で処理時間がかかると問題発生するように思えるので
コールバック内でできるだけ処理を行わないように組むと安定したようだ.
(プロジェクトの設定も速度優先な内容にした)

KinectTest
カラー画像とDepth値が取得できた.(OpenKinectのソースコードはv16のものをDLして使用)
怖くてデバッグ版では実行できないけど.

↑の画像は単純に得られたDepth値と色相を線形に対応づけて描画しただけ.
(v14のデモはコードを見るとガンマカーブ?使って色をもっとうまいこと割り当てているように見える)
黒い個所はDepth値が取得できない個所.(Depth値=0x7FFが取得される)
室内でテストした感じだと,オクルージョン領域以外に,
・光が反射したり透過したりするもの
・近すぎるもの(50cmくらいか?)
はDepthが取れないようだ.あと,右側数ピクセル幅の領域も取れない.

Depth値は 0~0x7FE(2046) くらいの幅でもらえるのかと期待したのだが,
データ取得してみた範囲内では,380~1050 程度の値しか入ってこない感じだ.

(by nakiusagi3)

Home > ソフトウエア | 技術 | 画像処理 > OpenKinectを使ってみる(VC++2005にて)

Search
Feeds
Authorized
奨学金支援制度
Meta

Return to page top