キネクトv2は、512 x 424
ピクセルの解像度を持つ深度フレームを提供し、f0ovは70.6 x 60 degrees
となり、平均で約7 x 7
ピクセル/ピクセルとなります。 [Source]。Kinect V2奥行きフレームピクセルサイズ
しかし、私は深度フレームのピクセルサイズに関する情報を見つけることができませんでしたか、または与えられた情報からピクセルサイズを計算する方法はありますか?
キネクトv2は、512 x 424
ピクセルの解像度を持つ深度フレームを提供し、f0ovは70.6 x 60 degrees
となり、平均で約7 x 7
ピクセル/ピクセルとなります。 [Source]。Kinect V2奥行きフレームピクセルサイズ
しかし、私は深度フレームのピクセルサイズに関する情報を見つけることができませんでしたか、または与えられた情報からピクセルサイズを計算する方法はありますか?
奥行きデータのピクセルサイズをマップする方法をお尋ねしますか?
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
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;
あなたは多分少し説明することができ、あなたの答えのために本当にありがとうございましたあなたのコードやソースへのリンクは? – Kev1n91
本当にありがとうございました。私が正しく理解していれば、これはKinectの奥行き画像でのみ動作します。したがって、Zバッファ画像から奥行き画像をレンダリングした場合、ピクセルが中心からずれるほど、z値は高くなりますが、このメカニズムは機能しませんので、最初にピクセルをカメラの平面? – Kev1n91
はいこれは、私がリンクしているドキュメントページに記載されているように、「事前投影された」KINECT深度データです。 – zeFrenchy