我正在尝试使用 opencv 和 openkinect 库构建人脸检测。对于图像输入,我想使用 xbox kinect v2。我的代码基于 opencv 库中的人脸检测示例。我正在使用 Mac。
到目前为止,这是我的代码:
import gab.opencv.*;
import java.awt.Rectangle;
/* KINECT */
import org.openkinect.freenect.*;
import org.openkinect.freenect2.*;
import org.openkinect.processing.*;
OpenCV opencv;
Kinect2 kinect2;
Rectangle[] faces;
void setup() {
opencv = new OpenCV(this, 640/2, 480/2);
size(640, 480);
// Kinectv2
kinect2 = new Kinect2(this);
kinect2.initVideo();
kinect2.initDevice();
opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);
faces = opencv.detect();
}
void draw() {
opencv.loadImage(kinect2.getVideoImage());
image(kinect2.getVideoImage(), 0, 0, 640, 480);
noFill();
stroke(0, 255, 0);
strokeWeight(3);
for (int i = 0; i < faces.length; i++) {
rect(faces[i].x, faces[i].y, faces[i].width, faces[i].height);
}
}
问题似乎出在“opencv.loadImage(kinect2.getVideoImage());”这一行 因为检测不起作用。当使用 isight 相机(使用内置功能“捕获”和“视频”-add-on)而不是 kinect 时,一切正常。
谁能帮忙?