所以我的项目是为Android制作一个人脸识别(不是检测)应用程序。我的计划是将 JavaCV 与 contrib 库 facerecognizer 一起使用。但是,在训练识别器时,应用程序会因以下错误而崩溃:
致命信号 11 (SIGSEGV) 0xdeadbaad (code=1)。错误日志可以在这里找到:
我用来执行此操作的代码如下:
MatVector images;
CvArr labelsCV;
final int numberOfImages = 20;
File faceDir = new File("/sdcard/FaceDB");
images = new MatVector(numberOfImages);
ArrayList<Integer> labels = new ArrayList<Integer>();
IntPointer iPoint = new IntPointer();
CvArr image;
// Load an image:
image = cvLoadImage(faceDir + "/s1/1.pgm");
// And put it into the MatVector:
images.put(0, image);
// and put the label in
labels.add(0);
for (Integer i: labels){
iPoint.put(i);
}
labelsCV = new CvArr(iPoint);
FaceRecognizerPtr model = createFisherFaceRecognizer(0,1000);
// Then train it. See how I call get(), to get the FaceRecognizer inside the FaceRecognizerPtr:
model.get().train(images, labelsCV);
我不确定,但这可能与我的 labelsCV 变量和指针有关,我不确定该怎么做。
任何帮助都会非常感谢