Kinect V2 javascript joints 对象为空
Kinect V2 javascript joints object is empty
在使用 kinect v2 开发 win 8.1 应用商店应用程序时,我遇到了一些问题,这是我代码的一部分:
mysensor = WindowsPreview.Kinect.KinectSensor.getDefault();
mysensor.open();
console.log(mysensor);
var isopen_timer = setInterval(function () {
if (mysensor.isOpen) {
console.log("sensor is opened");
myreader = mysensor.bodyFrameSource.openReader();
myreader.addEventListener('framearrived', handleFrame);
clearInterval(isopen_timer);
}
}, 10);
//open reader and listen for update
//called on each frame updated
function handleFrame(e)
{
var frame = e.frameReference.acquireFrame();
if (frame) {
frame.getAndRefreshBodyData(bodies);
for (var i=0;i<6;i++) {
if (bodies[i].isTracked) {
var joints = bodies[i].joints
console.log(Object.keys(joints));
}
else {
}
}
frame.close();
}
}
我的传感器打开,一切正常,我得到了一个跟踪的身体,但是当我尝试访问body.joints
对象并尝试列出键时,我得到一个空数组。
任何人都知道可能出了什么问题?
这可能很奇怪,但我想回答我自己的问题,以防万一有人在寻找问题。
lookup
方法是关键:
至于现在对Kinect V2 JavaScript API的引用和支持非常薄弱,但是经过一些MS样本的挖掘,这里是答案,在body.joints上使用查找方法来检索联合数据。
lookup
方法的工作原理如下body.joints.lookup(joint_index)
,其中关节计数不能超过 25(最大joint_index从 0 开始为 24),此方法将返回一个带有详细关节数据的对象,如 (x,y,z)。
您可以忽略未跟踪的关节,因为每个关节都具有以下属性:
type
和trackingstate
跟踪状态:
推断的关节数据是通过从其他跟踪的关节计算来推断的。由于数据是计算的,因此数据的置信度非常低。(属性值 : 0)
不跟踪"未跟踪联合"数据;没有可用的联合数据。(属性值 : 1)
跟踪的关节数据被跟踪并可用。由于数据是跟踪的,因此对数据的置信度非常高。(属性值 : 2)
接头类型
请参考此处的表格
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- 如何为json对象中的段发送array[]
- Kinect V2 javascript joints 对象为空