如何将Kinect2原始深度数据转换为以米为单位的距离。原始深度数据是由Windows Kinect2 SDK获得的。这是所有积分数据。 要点:它是kinect2而不是kinect1。 我已经得到了Kinect1的等式,但它不匹配。 所以任何人都可以帮助我。 Kinect1的等式:
if (depthValue < 2047)
{
depthM = 1.0 / (depthValue*-0.0030711016 + 3.3309495161);
}
答案 0 :(得分:3)
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))
最小和最大深度由函数DepthMinReliableDistance
和DepthMaxReliableDistance
给出,也以毫米为单位。