首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kinect V2 UWP如何计算与用户的距离

Kinect V2 UWP如何计算与用户的距离
EN

Stack Overflow用户
提问于 2021-02-21 06:16:14
回答 1查看 42关注 0票数 0

我正在尝试计算一个人到UWP c#中的Kinect传感器v2的距离。

在WPF中,我是通过

代码语言:javascript
复制
double distanceMm = this.bodies[i].Joints[JointType.Head].Position.Z * 1000; // meters to millimetres

在使用深度帧的UWP中,我能够获得最小和最大可靠距离,但我不确定如何获得用户到Kinect传感器的距离。

代码语言:javascript
复制
var depthScaleInMeters = vidFrame.DepthMediaFrame.DepthFormat.DepthScaleInMeters;
var depthRangeMinimumInMeters = vidFrame.DepthMediaFrame.MinReliableDepth * depthScaleInMeters;
var depthRangeMaximumInMeters = vidFrame.DepthMediaFrame.MaxReliableDepth * depthScaleInMeters;

有人能帮帮忙吗?

编辑:

我在Depth Image中找到了人脸/对象的x和y线,并获得了它的深度值,但当我尝试将其转换为以米为单位的距离时,它似乎比现实世界中的值要小得多(应该是1.2米)。

代码语言:javascript
复制
int x = 235;//specify x value here
int y = 215;//specify y value here
int d = (ushort)output[x + y * PixelHeight] ; //PixelHeight  = 512
d = d >> 3;//this is distance in mm
double metersdistance = d  * 0.001; // meters
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 06:22:55

我使用人脸检测从彩色图像中获得人脸坐标。将这些坐标映射到IR和深度帧上。这样,我从深度帧中找到了脸部的x线和y线。

代码语言:javascript
复制
int x = 235;//specify x value here
int y = 215;//specify y value here
int d = (ushort)output[x + y * PixelHeight] ; //PixelHeight  = 512
double metersdistance = d  * 0.001; // meters

D给出了深度值,并将其乘以0.001,将其转换为米。我测试了这个在1米到3米之间的距离(在房间的不同位置),它似乎给我提供了与真实世界相同的读数。就目前而言,这似乎是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66297100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档