Kinect2原始深度以米为单位的距离

时间:2015-11-25 09:13:00

标签: kinect

如何将Kinect2原始深度数据转换为以米为单位的距离。原始深度数据是由Windows Kinect2 SDK获得的。这是所有积分数据。 要点:它是kinect2而不是kinect1。 我已经得到了Kinect1的等式,但它不匹配。 所以任何人都可以帮助我。 Kinect1的等式:

if (depthValue < 2047) 
{
  depthM = 1.0 / (depthValue*-0.0030711016 + 3.3309495161);
}

1 个答案:

答案 0 :(得分:3)

Kinect API Overview (2)表示:

  

DepthFrame类表示一个帧,其中每个像素表示该像素看到的最近物体的距离。该帧的数据存储为16位无符号整数,其中每个值表示以毫米为单位的距离。尽管可靠性在4.5米左右开始降低,但最大深度距离为8米。在BodyFrame类不够的情况下,开发人员可以使用深度框架来构建自定义跟踪算法。

同样V. Pterneas在他的博客中评论价值以米为单位,他指的是this code。因此,您可以从C#中的DepthFrame检索它(部分从this code中提取):

>>> pipeline = [
...     {"$match": options},
...     {"$group": {"_id": groupby, "count": {"$sum":1}}},
...     {"$group": {"_id": None, "total": {"$sum": 1}, "details":{"$push":{"groupby": "$_id", "count": "$count"}}}}
... ]
>>> list(db.collection.aggregate(pipeline))

最小和最大深度由函数DepthMinReliableDistanceDepthMaxReliableDistance给出,也以毫米为单位。