gpt4 book ai didi

javascript - Kinect V2 javascript 关节对象为空

转载 作者:行者123 更新时间:2023-11-30 12:27:24 25 4
gpt4 key购买 nike

在使用 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 ,但是当我尝试访问 body.joints 对象,并尝试列出键时,我得到一个空数组。

有人知道哪里出了问题吗?

最佳答案

这可能很奇怪,但我想回答我自己的问题,以防万一有人在寻找问题。

lookup 方法是关键:

至于现在对 kinect v2 javascript API 的引用和支持非常薄弱,但在对这里的 MS 样本进行一些挖掘之后就是答案,使用 body.joints 上的 lookup 方法来检索关节数据。

lookup方法的工作原理如下body.joints.lookup(joint_index),其中关节数不能超过25(max joint_index是24,从0开始),这个方法将返回一个包含详细关节数据的对象,例如 (x,y,z)。

您可以忽略未跟踪的关节,因为每个关节都具有以下属性:

typetrackingstate

跟踪状态:

推断 关节数据是通过从其他跟踪关节计算得出的。由于数据是计算出来的,所以对数据的信心很低。(属性值:0)

NotTracked 关节数据未被追踪;没有可用的联合数据。(属性值:1)

Tracked 联合数据被跟踪并且可用。由于跟踪数据,因此对数据的信心非常高。 (属性值:2)

关节类型

请引用表格找到here

关于javascript - Kinect V2 javascript 关节对象为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com