首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Kinect深度读数映射到Unity

将Kinect深度读数映射到Unity
EN

Stack Overflow用户
提问于 2015-11-17 10:07:47
回答 1查看 2.5K关注 0票数 2

我们对使用Microsoft Kinect非常陌生,并且正在尝试将其与我们的Unity 2D游戏相关联,以实现一个班级项目。我们的类项目的一部分要求我们将游戏投影到面料上,并让用户按下面料以便与游戏交互。玩家将轻拍织物以收集坠落的物体。我们正在尝试使用Kinect的深度图,以便看到用户在屏幕上点击的位置,然后我们可以看到他们正在与什么对象交互。

我们很难找到一种方法来将Kinect深度坐标转换为适合我们游戏的坐标。由于我们的设置,我们无法使用骨骼跟踪。有没有人有在不使用骨架函数的情况下将Kinect深度坐标数据转换为2D Unity游戏的经验?下面是我们的设置示意图,以便于澄清。

EN

回答 1

Stack Overflow用户

发布于 2017-04-04 21:27:10

您的问题似乎源于kinect深度和颜色流不对齐的事实。这意味着对于你得到的每个深度像素,都有一定的偏移量需要考虑。因此,您必须:

在获取第一个深度帧之前,获取坐标映射器。

代码语言:javascript
运行
复制
KinectSensor Sensor = KinectSensor.GetDefault();
CoordinateMapper mapper = Sensor.CoordinateMapper;

在这些人准备好之后。获取您的第一个深度帧。在映射器中使用它来填充ColorSpacePoint数组,如下所示:

代码语言:javascript
运行
复制
ColorSpacePoint[] _colorPoints;
mapper.MapDepthFrameToColorSpace(DepthData, _colorPoints);

这个新填充的数组将包含映射到kinect相机颜色空间的深度数据。您将开始获得有关色框内部深度定位的准确和可靠的数据,并使用提供的图像实际校准您的应用程序。

从那里,我想你可以使用ColorSpacePoint来确定图像中应用触摸的位置,并使用常规颜色流对其进行可视调试。

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

https://stackoverflow.com/questions/33747961

复制
相关文章

相似问题

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