2017-07-19 2 views
0

キネクトv2は、512 x 424ピクセルの解像度を持つ深度フレームを提供し、f0ovは70.6 x 60 degreesとなり、平均で約7 x 7ピクセル/ピクセルとなります。 [Source]。Kinect V2奥行きフレームピクセルサイズ

しかし、私は深度フレームのピクセルサイズに関する情報を見つけることができませんでしたか、または与えられた情報からピクセルサイズを計算する方法はありますか?

答えて

1

奥行きデータのピクセルサイズをマップする方法をお尋ねしますか?

depth coordinate systemは、KINECTセンサーの原点と向きに直交しています。 基本trigonometryは、直角三角形の反対側と隣接する辺の関係がTan A = a/bであることを示しているので、水平方向にはtan(FOV/2) = (FrameWidth/2)/depth、したがってFrameWidth = 2*depth*tan(35.3)となるので、同様にheight of 1px = depth*2*tan(30)/414となる。width of 1px = depth*2*tan(35.3)/512

各深さのピクセルのための

KINECT field of view geometry

const int FRAME_WIDTH = 512; 
const int FRAME_HEIGHT = 424; 
const float FOV_HORIZONTAL = 70.6 * PI/180.0; // convert to radians 
const float FOV_VERTICAL = 60.0 * PI/180.0; // convert to radians 
const float HORIZONTAL_SCALING = 2 * std::tan(FOV_HORIZONTAL/2.0)/(float)FRAME_WIDTH; 
const float VERTICAL_SCALING = 2 * std::tan(FOV_VERTICAL/2.0)/(float)FRAME_HEIGHT; 

あなたは、単純なスケーリングを行うことによって、その幅と高さを計算することができます。

width = HORIZONTAL_SCALING * (float)depth; 
height = VERTICAL_SCALING * (float)depth; 
+0

あなたは多分少し説明することができ、あなたの答えのために本当にありがとうございましたあなたのコードやソースへのリンクは? – Kev1n91

+0

本当にありがとうございました。私が正しく理解していれば、これはKinectの奥行き画像でのみ動作します。したがって、Zバッファ画像から奥行き画像をレンダリングした場合、ピクセルが中心からずれるほど、z値は高くなりますが、このメカニズムは機能しませんので、最初にピクセルをカメラの平面? – Kev1n91

+1

はいこれは、私がリンクしているドキュメントページに記載されているように、「事前投影された」KINECT深度データです。 – zeFrenchy

関連する問題