[kinect1.8]NuiImageGetColorPixelCoordinatesFromDepthPixelを用いた「深さ画像→カラー画像」のズレの修正

ここではカラー画像を640x480、深さ画像を320x240とする。

kinectでは深さ画像(depthImage)とカラー画像(colorImage)を撮影するカメラが異なるので、どうしても撮影した映像には物理的なずれが発生する。
ので、この関数を使う。
NuiImageGetColorPixelCoordinatesFromDepthPixel

http://msdn.microsoft.com/en-us/library/jj663859.aspxによると、

public:
HRESULT NuiImageGetColorPixelCoordinatesFromDepthPixel(
NUI_IMAGE_RESOLUTION eColorResolution,
const NUI_IMAGE_VIEW_AREA *pcViewArea,
LONG lDepthX,
LONG lDepthY,
USHORT usDepthValue,
LONG *plColorX,
LONG *plColorY
)


eColorResolutionではカラー画像をenum型のNUI_IMAGE_RESOLUTIONで指定するんですね。
深さ画像のサイズも指定したいなら「NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolution」を使えと。
pcViewAreaには構造体を指定するみたいです。オフセットやズームが格納されるのかな?不必要なのでNullでおkです。
lDepthX,Yに変換元の深さ画像を指定して、plColorX,Yに変換先の色画像の座標が放り込まれる変数のポインタを指定する。

一番引っかかったのがusDepthValueでした。ここには0を指定するそうです。むしろ下手に深さデータ突っ込んだら酷くズレました。おそらくpcViewAreaと併せて使う項目なんでしょうが、0でも十分な精度は得られますよー。


という部分が引っかかったのでメモ
スポンサーサイト

tag : Kinect

コメントの投稿

非公開コメント

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1467位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
265位
アクセスランキングを見る>>