赤外線ビューと深度ビューを使用して Kinect プロジェクトに取り組んでいます。赤外線ビューでは、CVBlob ライブラリを使用して、関心のある 2D ポイントをいくつか抽出できます。これらの2Dポイントの深さを見つけたいです。だから私は、次のような深度ビューを直接使用できると考えました:
coordinates3D[0] = coordinates2D[0];
coordinates3D[1] = coordinates2D[1];
coordinates3D[2] = (USHORT*)(LockedRect.pBits)
[(int)coordinates2D[1] * Width + (int)coordinates2D[0]] >> 3;
これは深さを得る正しい式ではないと思います。深度ビューで 2D の関心点を視覚化できます。赤外線ビューで点 (x, y) を取得した場合、(x, y) の深度ビューで赤い点として描画します。
赤い点が、(オブジェクト上で) 期待する場所にないことに気付きました。 )。それらの位置には体系的なエラーがあります。
カラービューと深度ビューの対応とは異なり、深度ビューと赤外線ビューは 1 対 1 で対応しているという意見でした。
これは本当に本当ですか、それとも赤外線ビューと深度ビューの間にずれがありますか? オフセットがある場合、どうにかして正しい深度値を取得できますか?