enableGesture()未定义Simple-OpenNI

时间:2014-01-01 02:23:37

标签: kinect processing simple-openni nite

在我收到有关我正在使用的Simple-OpenNI版本的评论之前,我安装了Google下载页面(v 1.96)上唯一的版本。我在另一个帖子中看到我必须用kinect.enableGesture()替换行kinect.startGesture(...),但其他方法搞砸了。我正在关注Enrique Ramos Melgar撰写的 Arduino和Kinect Projects 一书,但该代码似乎不是最新的。

我受影响的代码如下:

void setup() {
  kinect = new SimpleOpenNI(this);
  // enable mirror
  kinect.setMirror(true);
  // enable depth map, hands, and gestures
  kinect.enableDepth();
  kinect.enableGesture();
//  kinect.startGesture(SimpleOpenNI.GESTURE_WAVE);
  kinect.enableHands();
  // add focus gesture to start tracking
  kinect.addGesture("Wave");

  size(kinect.depthWidth(), kinect.depthHeight());
  String portName = Serial.list()[0];
  myPort = new Serial(this, portName, 9600);
}

void onRecognizeGesture(String strGesture, PVector idPosition, PVector endPosition) {
  kinect.removeGesture(strGesture);
  kinect.startTrackingHands(endPosition);
}

出现以下错误:

The method enableGesture() is undefined for the type SimpleOpenNI
The method enableHands() is undefined for the type SimpleOpenNI
The method addGesture(String) is undefined for the type SimpleOpenNI
The method removeGesture(String) is undefined for the type SimpleOpenNI
The method startTrackingHands(PVector) is undefined for the type SimpleOpenNI

1 个答案:

答案 0 :(得分:1)

请务必使用

启动代码
import SimpleOpenNI.*;
SimpleOpenNI kinect;

然后,您使用SimpleOpenNI 1.96中不再存在的方法,检查文档。自OpenNi / Nite的大更新以来,SimpleOpenNi完全不同:

enableHands()现在是enableHand(),

addGesture(String)现在是startGesture(int gesture),

removeGesture(String)是endGesture(int gesture),

startTrackingHands(PVector)是startTrackingHand(float [] pos)

Nite还没有在simpleOpenNi 1.96中实现,所以据我所知,我认为你只能使用3个手势,GESTURE_CLICK,GESTURE_HAND_RAISE,GESTURE_WAVE