将Zigfu关节位置从真实世界转换为投影,就像在OpenNI中一样

时间:2012-09-04 22:10:14

标签: javascript kinect openni

OpenNI提供函数ConvertRealWorldToProjective,可让您轻松地将实际世界(x,y,z)关节位置(mm)转换为给定视口的投影(x,y)位置(以像素为单位)。这对于在网络摄像头源上绘制“骨架”非常有用。

这个功能是由ZigJS公开的,既可以作为一个功能,也可能已经在某处转换过?我在the docs中找不到任何提及,但是I had luck with a previously undocumented feature with Zigfu in the past

user.addEventListener('userupdate', function(user) {
  var real = user.skeleton[zig.Joint.Head].position; // this is real world coordinate
  // anything exposed by zigfu to convert to real world?
});

如果Zigfu没有提供,是否有人知道提供此类功能的优秀JavaScript库?

1 个答案:

答案 0 :(得分:2)

ZigJS公开了两个(遗憾的是未记录的)方法:convertImageToWorldSpaceconvertWorldToImageSpace。它们都接受一个坐标数组,其中每3个元素代表一个点,它们返回转换后的点。

修改

为了保存其他任何试验和错误,它是嵌入式对象,而不是具有未记录方法的zig本身。例如:

var zigObj = zig.findZigObject();

user.addEventListener('userupdate', function(user) {
  var real = user.skeleton[zig.Joint.Head].position;
  var projective = zigObj.convertWorldToImageSpace(real);
  // do something with the converted position, like drawing it over the webcam
});