导航:首页 > 器材知识 > 如何获取kinect设备

如何获取kinect设备

发布时间:2021-02-10 14:48:44

1. 怎样用轮询模式获取kinect骨骼数据

我的Kinect开发平台是:

Win7x86 + VS2010 + Kinect for Windows SDK v1.6 + OpenCV2.3.0

开发环境的搭建见上一文:

http://blog.csdn.net/zouxy09/article/details/8146055

本学习笔记以下面的方式组织:编程前期分析、代码与注释和重要代码解析三部分。

要实现目标:通过微软的SDK提取骨骼数据并用OpenCV显示

一、编程前期分析

Kinect产生的深度数据作用有限,要利用Kinect创建真正意义上交互,还需要除了深度数据之外的其他数据。这就是骨骼追踪技术的初衷,也是Kinect最神奇,最有作为的地方。骨骼追踪技术通过处理深度数据来建立人体各个关节的坐标,骨骼追踪能够确定人体的各个部分,如那部分是手,头部,以及身体,还能确定他们所在的位置。

1.1、骨架空间

先看看啥叫骨架?应该地球人都知道吧。呵呵。在Kinect里面,是通过20个关节点来表示一个骨架的,具体由下图可以看到。当你走进Kinect的视野范围的时候,Kinect就可以把你的20个关节点的位置找到(当然你得站着),位置通过(x, y, z)坐标来表示。这样,你在Kinect前面做很多复杂的动作的时候,因为人的动作和这些关节点的位置的变化关系还是很大的,那么电脑拿到这些数据后,对于理解你做什么动作就很有帮助了。

玩家的各关节点位置用(x, y, z)坐标表示。与深度图像空间坐标不同的是,这些坐标单位是米。坐标轴x,y, z是深度感应器实体的空间x, y, z坐标轴。这个坐标系是右手螺旋的,Kinect感应器处于原点上,z坐标轴则与Kinect感应的朝向一致。y轴正半轴向上延伸,x轴正半轴(从Kinect感应器的视角来看)向左延伸,如下图所示。为了方便讨论,我们称这些坐标的表述为骨架空间(坐标)

2. 如何在Windows端获取 Kinect中的深度传感器的信息

创建加速度计应用在 Visual Studio 中创建新的 Windows Phone 应用 项目。此模板在“Windows Phone”类别中。
该应用需要引用包含传感器 API 和 XNA Framework 的程序集,因为加速度计数据采用 XNA Framework Vector3 对象的形式传递。 从“项目”菜单中,单击“添加引用”,选择“Microsoft.Devices.Sensors”和“Microsoft.Xna.Framework”,然后单击“确定”。
在 MainPage.xaml 文件中,将以下 XAML 代码放置在名为“ContentPanel”的 Grid 元素中。该代码创建两个按钮,一个用于开始从加速度计获取数据,一个用于停止从加速度计获取数据。还创建三个将用于显示数字读数的 TextBlock 元素以及三个将用于采用图形表示读数数据的 Line 元素。最后,该代码添加一个状态 TextBlock 元素,该元素将用于显示应用的当前状态。
现在,打开 MainPage.xaml.cs 代码隐藏页面并向该页面顶部的其他 using 指令添加传感器和 XNA Framework 命名空间的 using 指令。
在 MainPage 类定义的顶部声明一个类型为 Accelerometer 的变量。
在页面的构造函数中,查看其上运行应用的设备是否支持加速度计传感器。并非所有设备都支持所有传感器,因此使用传感器之前您应该始终进行检查。用下面的代码替换现有的页面构造函数。
为“开始”按钮添加单击事件的处理程序。根据上面添加 XAML 代码的方式,Visual Studio 可能已为您添加此处理程序。如果是这样,则删除该处理程序中的任何代码。如果未自动添加该处理程序,请将下面的空函数复制并粘贴到 MainPage 类定义中。
在“开始”按钮单击处理程序中,查看加速度计对象是否为 null,在初始化该对象之前该对象应该为 null。如果加速度计为 null,则使用构造函数初始化该对象。接下来,通过设置 TimeBetweenUpdates 属性设置您希望从加速度计接收数据的速度。默认值为 2 毫秒。 接下来,为 CurrentValueChanged 事件设置处理程序。将以下代码粘贴到空的“开始”按钮单击处理程序中。
现在,使用 Start() 方法启动加速度计。调用 Start 有可能会失败,因此您应该将此调用放置在一个 try 块中。在 catch 块中,您可以警告用户加速度计可能无法启动。将该代码粘贴到“开始”按钮单击处理程序中,放置在之前的代码部分之后。
现在,实现 CurrentValueChanged 事件处理程序。具有新加速度计数据的系统会以使用 TimeBetweenUpdates 指定的频率调用该方法。该处理程序接收包含加速度计数据的 AccelerometerReading 对象。在对 UI 没有访问权限的后台线程上调用该处理程序。因此,该事件处理程序使用 Dispatcher.Invoke 方法,该方法在 UI 线程上调用指定的代码。Dispatcher.Invoke 用于调用将在下一步中定义的 UpdateUI 并传递 AccelerometerReading 对象。
实现将向用户显示加速度计数据的 UpdateUI 方法。此方法首先更新状态 TextBlock 以指示正在接收数据。接下来,更新三个 TextBlock 对象以显示传感器每个轴上的加速度数值。最后,更新 Line 对象以采用图形的形式演示加速度。
最后一步是实现将允许用户停止从加速度计获取数据的“停止”按钮单击处理程序。再次,如果编辑器自动添加了该处理程序,则将此处理程序的内容替换为以下内容。

3. kinect设备 哪些图形算法

Kinect深度图像滤波算法
由于RGB图像数据与深度图像数据的空间坐标系是不同的,前内者的原点是RGB摄像容头,后者的原点是红外摄像头,因此两者会有相应的误差。若要修正这些误差,可以调用Kinect for windows SDK提供的映射函数, MapDepthToColorImagePoint.

4. 如何利用Kinect获取骨骼节点的三维坐标

标|从kinect里读数据是一帧一帧的,如果只取一个骨骼的数据,excel表格可以是这专样:
1
2
3
4
5
帧号|X坐标属|Y坐标|Z坐标
1...|2.356|3.172|5.265
2...|2.356|3.172|5.265
3...
4...
如果取多个骨骼节点的坐标,excel表格可以是这样:

帧号|骨骼与坐标
1...|RightHand{X:1.235;Y:3.127;Z:5.265}LeftHand{...}LeftShoulder{...}...
2...|RightHand{X:1.235;Y:3.127;Z:5.265}LeftHand{...}LeftShoulder{...}...
3...
Kinect取骨骼的函数我也建议你自己网上找,核心逻辑写在SkeletonFrameReady函数里。
Excel写入程序也可以在网上找到。

5. kinect怎样自动获取玩家和设备的距离

short类型。16位。低3位是playindex。高13位是depthindex。调用方法直接int depth=depthImagePixel.depth就OK了

6. 如何从KINECT中获取点云

用OPENNI 获得深度图 然后 有一个函数转换成世界坐标系下的真实坐标 也就是回点云数据 然后可以存答成.PCD格式的文件 或者直接用例子进行处理。 不知道有没有别的方法 这只是我的想法。 仅供参考

7. 如何提取由kinect获得的图像数据(深度+彩色)

在用opencv ?
是有例子程序的嘛。

8. 请问,xbox360的kinect体感设备需要破解吗

对机器没有复要求的,通常情况制下刷了就能玩了
不过KINECT对家里的环境是有要求的,就是KINECT到你人找之间的1.8米的环境内不能有异物,否则不行,我是为此大扫除的。
反正KINECT本身是没有系统的,所以要破解的是机器,和其他硬件无关,机器刷过的就可以用的

9. kinect 体感外设怎样实现功能的

xbox的?貌似是利用设备上的摄像头、红外、距离什么的。

10. 如何在matlab中实用kinect获取数据

虽然都是将数转成字符串,但大有区别的,两个的作用根本就不一样:
num2str是将数转成文字,举例子 num2str(43)得到的将是'43',有两个字符
char是按照ascii码表将数字映射成字符,char(43)得到的将是‘+’,(加号的ascii码就是43)

Num2str函数是一个相当有用的函数,一般配合[]连接符使用
1 用于求导数的表达式,函数X^2 – y^p + y^t,pt为数值,可以跟随程序的不同被赋予不同的值。 Diff([‘x^2 – y^’ num2str(p) ‘+y^’ num2str(t), x])

2 用于求解积分用法同上,把被积函数表示出来就可以了。 int([‘x^2 – y^’ num2str(p) ‘+y^’ num2str(t), x, a,b])

3 用于求解方程或微分方程 Solve([‘x^2 – x^’ num2str(p) ‘+x^’ num2str(t)],x) Dsolve([‘Dx^2 – x^’ num2str(p) ‘+x^’ num2str(t)], x)

4 如果你要运行一些大的算法,涉及到了循环,你不防试试下面的方法,提示程序的进度。这个是我在做Monte Carlo时的一个收获。 Plot(...)任意的绘图, Text(x, y , ['Monte Carlo Number=' num2str(mc) '/' num2str(NMc)])将这个语句写在循环体的内部。

5 在保存图像的时候用到动态的给文件起名的时候,也可以用这个语句。文件名[‘file’ num2str(i) ‘.bmp’]i为循环计数名。

MATLAB char
使用方法
S = char(X)
把表示字符的非负整数数组X转化为字符串数组S,实际的字符显示和给定的字符编码有关。X的范围为从0到65535,任何在此范围外的数据都没有定义。使用double函数把字符串转化为对应整数。
S = char(C)
如C是一个元胞字符数组,C中的每个元素放置在字符数组s中的行中。用cellstr函数可以转化回来。
S = char(t1, t2, t3, ...)
生成字符型数组S把t1,t2,t3,...作为行,为了生成有效的矩阵自动在每个字符型数组加倍添加空格。每个字符参数,ti,本身是字符型数组。这允许任意大的字符数组的创建。空字符串是重要的。

阅读全文

与如何获取kinect设备相关的资料

热点内容
便携式录音设备怎么连接调音台 浏览:860
缤智是否有自动上锁装置 浏览:343
太阳之城全集免费观看 浏览:604
法国《亲密》电影如如 浏览:341
蛇名叫莫斯拉的影片 浏览:207
低压自动无功功率补偿装置 浏览:6
带点色的电影 浏览:565
免费看片软件群号 浏览:598
502312轴承是什么 浏览:436
怎么根据情节找影片 浏览:907
仪表盘一个off是什么意思 浏览:342
飞行员爱情电影 浏览:134
韩国电影静华 浏览:275
曹查理和陈宝莲的电影 浏览:446
镇江制冷空调机械油漆多少钱 浏览:773
手机 电影 你懂 浏览:642
老毛桃pe工具箱u盘版下载 浏览:670
日本动作视频在线观看 浏览:162
数学天才电影英文一个女孩 浏览:885
苹果免费网站app 浏览:751