问题标签 [kinect-v2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
3d - 如何在没有来自 Kinect Window SDK 的 Coordinatemapper 的情况下将 3D 骨骼关节映射回 2D 彩色图像
我想在不使用坐标映射器的情况下将 CameraSpace 中的 3D 骨架映射回 Kinect 中的 2D 彩色图像。我需要从深度相机转换为彩色相机吗?
在我看来,骨骼关节是从深度图像中获得的。因此,为了获得彩色图像中的关节位置,我应该通过以下 3 个步骤:
1)3D关节在深度相机3D空间,我需要转换到彩色相机3D空间(旋转/平移)。我不知道如何得到这个变换矩阵!
2)找到彩色相机内在参数(使用matlab校准工具箱)将3D映射回2D
3) 与失真系数相乘。
我在这里发现了一个类似的问题:How to convert points in depth space to color space in Kinect without using Kinect SDK functions? 然而,关于如何找出将深度相机映射到彩色相机的变换矩阵的问题没有得到解答。
编辑: 实施后,我认为 Color 2D 和 depth 2D 共享相同的 3D 相机空间(在某些方面,实际上深度和颜色是两个不同的相机——>它们应该有不同的 3D 相机空间)。因此,在没有坐标映射功能的情况下,我成功地将 3D 点映射为 2D 颜色(我使用了从 Matlab 工具箱中找到的投影矩阵)。3D 相机空间 -> 投影回 2D 像素颜色
一开始,我认为 3D 点在 3D 深度空间中,3D 深度和 3D 色彩空间是不同的。(输入:3D 深度空间中的 3D 点,输出:2D 彩色像素),我需要将 3D depthcamera ->3D colorcamera -> 投影回 2D 像素颜色)。但是,步骤3D depthcamera ->3D colorcamera不需要实现。
c# - Kinect V2 - 存储点位置时重复值
这是我用来记录包含一些计算的点的代码。所以是的,我得到了点的值位置,做一些数学运算,然后将它们保存到一个列表中。
出于某种原因,我得到了很多重复的值,重复了 20 次。我注意到如果我只保存一个值,我会得到重要的值并且没有更多的重复,加上值的差异更接近于彼此,比如 0.05513 然后 0.05413 与那些重复的值相比,一旦我得到 20 个 0.05513 然后下一个是 20 0.05013。
编辑如果我将多个值存储到列表中,这是我得到的示例值。
0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.399695181 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401078759 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401423597 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625 0.401669625
如您所见,这些数字重复了二十次。
扩展代码
c# - Kinect v2 手到鼠标位置在手关闭时下降
我正在开发一个使用 Kinect v2 的 WPF 应用程序,并且我使用手来模拟鼠标。它可以工作,但我有一个小问题 - 当我关闭手时,我模拟了一次点击,但光标相对于手张开时的位置稍微下降了一点,有时它会以点击错误的按钮或位置结束。
关于如何解决这个问题的任何想法?
我已经尝试跟踪手腕和拇指而不是手,但问题仍然存在。
谢谢!
java - 灰度图像未使用 BufferedImage.TYPE_USHORT_GRAY 保存
我正在尝试从 Kinect v2 保存深度图,它应该以灰度显示,但每次我尝试使用该类型将其保存为 JPG 文件时,BufferedImage.TYPE_USHORT_GRAY
都没有任何反应(屏幕或控制台上没有警告)。
如果我使用类型,我会设法保存它,BufferedImage.TYPE_USHORT_555_RGB
或者BufferedImage.TYPE_USHORT_565_RGB
不是灰度,而是显示为蓝色或绿色的深度图。
在下面的代码示例中找到:
有什么我做错了以将其保存为灰度吗?提前致谢
java - 使用java对齐Kinect V2 RGB图片和深度图
我想知道是否有一种方法可以使用 Java 以颜色数据作为起点来对齐 RGB 图片和 Kinect V2 的深度数据,我实际上是使用 Java for Kinect作为包装器,它似乎没有给我这个可能性。有没有办法做到这一点?
python - 动态手势识别和 Kinect 与 Python?
我正在使用 Windows 10 和 64 位操作系统的 HP 笔记本电脑上开发“Kinect for XBox One”。我以前在 python 上工作过,并且只想使用 jupyter notebok 或 python 命令行来处理它。我项目的主题是动态手语识别,到目前为止我只处理静态图像。我找到了许多使用 kinect 相机的教程,但每个教程都是使用 Processing 3 中的 C++、C# 或 Sketch 完成的。我已经下载了 Processing 3 并通过以下链接在 Sketch 中尝试了一些程序:https: //www.youtube。 com/watch?v=XKatPT3HlqA 但即使 2 天后,我也无法在其中运行一个简单的程序,并且只有一张黑色图片作为输出,但检测到 kinect。
我还从这个链接尝试了 Pykinect 和 python 示例:https ://github.com/Kinect/PyKinect2
这很好,我能够追踪身体的骨架。我想学习 Pykinect 和更多这样的例子,但我没有得到任何可以学习所有这些的资源。我的目标是在我的工作中使用所有三个线索:RGB、深度和骨架。
即使是动态手势识别,也有 C++ 和 Python 以外的其他语言的项目。
如果您对 kinect with python 和动态手势识别有任何建议,欢迎您。
c# - 如何使用 kinect 和 unity 在 C# 中控制 Cloth 的骨骼
我正在开发类似于虚拟更衣室的应用程序。我想用模型的骨头映射布料的骨头。我有模型的骨骼,但无法从布料(游戏对象)中获取骨骼。我尝试过以下事情:
我正在使用 Unity3D 2017 版本。和 C# 用于编程。我也在使用 kinect 来捕捉运动。我使用 Blender 创建了 3D 布料,并以 .fbx 格式与骨骼一起导出。任何人都请帮忙。提前致谢。
c# - 如何水平翻转 Kinect v2 颜色流?
我最近在我的 win 10 PC 上设置了我的 Kinect v2。打算将它用于一些 VR 混合现实流媒体,我发现视频源是镜像的,无法翻转它。
我试图将 SDK 中的 Coordinate Mapping Basics 程序修改为绿屏并翻转图像。我已经完成了绿色,但我无法让颜色流翻转!
我尝试将 WriteableBitmap 转换为位图,将其导出为数组,然后翻转数组并将其写回 WritableBitmap,但这不起作用。
我尝试安装 WriteableBitmapEx 库并使用翻转功能,但程序只是冻结。
有什么建议么?
从长远来看,我还希望该程序充当虚拟网络摄像头,将视频源直接传递给合成器,但一次一步。
更新:我已经让图像翻转但它的性能受到了巨大的影响。写这个是为了将 WriteableBitmap 转换为字节数组,然后颠倒顺序。做一些测试它的循环正在扼杀性能。优化循环的任何替代方案或方法?
更新 2:我现在让它以 30fps 的速度运行。只需要让性能更好!我将变量取出,所以它不会一直创建新数组,只是回收旧数组。现在考虑运行并行 for 循环,一个从数组的开头开始,另一个从结尾。不知道这是否会加快速度或使用更多/更少的处理能力。现在这个程序使用了我 40-50% 的 cpu,这太疯狂了,而且比我能做的和 VR 一样多。如果有人拥有它们,仍然对更快/更有效的方式来翻转图像感兴趣。
更新 3:通过对旧实验进行更多的修补和清理,性能有所提高,但它仍然使用非翻转版本使用的两倍 cpu。