2

所以我的项目是为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 变量和指针有关,我不确定该怎么做。

任何帮助都会非常感谢

4

0 回答 0