Kinect V2 深度帧像素大小
Kinect V2 Depth Frame Pixel Size
kinect v2 提供分辨率为 512 x 424
像素的深度帧,视野为 70.6 x 60 degrees
,平均每度约 7 x 7
像素。 [Source].
但是我找不到任何关于深度帧像素大小的信息,或者是否有任何方法可以根据给定信息计算像素大小?
你是问如何映射深度数据中的像素大小?
depth coordinate system 与其在 KINECT 传感器上的原点和方向正交。
基本 trigonometry 告诉我们直角三角形的对边和邻边之间的关系是 Tan A = a/b
,所以水平方向我们有 tan(FOV/2) = (FrameWidth/2)/depth
,因此 FrameWidth = 2*depth*tan(35.3)
,所以 width of 1px = depth*2*tan(35.3)/512
,类似 height of 1px = depth*2*tan(30)/414
.
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;
kinect v2 提供分辨率为 512 x 424
像素的深度帧,视野为 70.6 x 60 degrees
,平均每度约 7 x 7
像素。 [Source].
但是我找不到任何关于深度帧像素大小的信息,或者是否有任何方法可以根据给定信息计算像素大小?
你是问如何映射深度数据中的像素大小?
depth coordinate system 与其在 KINECT 传感器上的原点和方向正交。
基本 trigonometry 告诉我们直角三角形的对边和邻边之间的关系是 Tan A = a/b
,所以水平方向我们有 tan(FOV/2) = (FrameWidth/2)/depth
,因此 FrameWidth = 2*depth*tan(35.3)
,所以 width of 1px = depth*2*tan(35.3)/512
,类似 height of 1px = depth*2*tan(30)/414
.
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;