0

在我收到有关我正在使用的 Simple-OpenNI 版本的评论之前,我安装了 Google 下载页面上唯一的一个(v 1.96)。我在另一个线程中看到我必须替换该行kinect.enableGesture()kinect.startGesture(...)但随后其他方法搞砸了。我正在关注 Enrique Ramos Melgar 的《Arduino and 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
4

1 回答 1

1

一定要开始你的代码

import SimpleOpenNI.*;
SimpleOpenNI kinect;

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

enableHands() 现在是 enableHand(),

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

removeGesture(String) 是 endGesture(int 手势),

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

Nite 尚未在 simpleOpenNi 1.96 中实现,据我所知,我认为您可以使用的手势只有 3 个,GESTURE_CLICK、GESTURE_HAND_RAISE、GESTURE_WAVE

于 2014-01-22T15:45:14.803 回答