Parameters Kinect:将深度数据从2D取消投影到3D
我回顾了其他讨论,但我不清楚,我为我的无知道歉,并提前向您表示感谢 我正在使用kinect处理深度流和骨骼关节。我想将Kinect提供的深度图像从2D取消投影到3D,以便在空间中构建曲面 这个过程很简单,我从Daniel Herrera Toolkit获得了Kinect的内在参数,并制定了一个转换公式:Parameters Kinect:将深度数据从2D取消投影到3D,parameters,camera,kinect,Parameters,Camera,Kinect,我回顾了其他讨论,但我不清楚,我为我的无知道歉,并提前向您表示感谢 我正在使用kinect处理深度流和骨骼关节。我想将Kinect提供的深度图像从2D取消投影到3D,以便在空间中构建曲面 这个过程很简单,我从Daniel Herrera Toolkit获得了Kinect的内在参数,并制定了一个转换公式: % Set 1000 to convert the raw depth value to meters. zw = z_w / 1000; xw = (xv - cx) * zw / fx
% Set 1000 to convert the raw depth value to meters.
zw = z_w / 1000;
xw = (xv - cx) * zw / fx;
yw = (yv - cy) * zw / fy;
深度相机焦距,由Daniel Herrera从Kinect工具箱中获取
fx = 579.83; % in axis x
fy = 586.73; % in axix y
cx = 321.55; % optical center x
cy = 235.01; % optical center y
zw = depth by kinect (mm)
和xv
和yv
对应于二维图像坐标,xw
,yw
,zw
对应于以米为单位的对象坐标,原点位于传感器位置(0,0,0)
但并非所有的结果都是好的
我评估一个点,将我的结果与Kinect在我的应用程序中提供的头部3D坐标进行比较:
根据3D骨骼跟踪器头部=[-0.0047,0.3932,1.4592]
(三维坐标,单位为米)
根据我的职能:
xv = 313
yv = 115
zw = 1360
unproject(xv, yv, zw)
POS3D=[-0.4809 0.1794 1.3500]
(以米为单位的三维坐标)
正如您可以观察到的,这两个结果是不同的,主要是在x分量上
因为z坐标也不同,这不仅仅是因为你的公式。你没有告诉任何框架(NITE?Kinect SDK?…),因此很难猜测到底发生了什么。嗨,Simson,很抱歉,我忘了说我使用MS Kinet SDK,而且颜色和深度图像之前已注册。谢谢