Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于openCV的人脸识别器_Java - Fatal编程技术网

Java 基于openCV的人脸识别器

Java 基于openCV的人脸识别器,java,Java,我正在使用openCV 2.4.9 Java库,在实现某些人脸识别器时遇到了一些问题。我知道,在C++中,类 CONII.FACECECGNZIZER 是Abastract,但我不知道java库是否也发生了(实际上java文档太少了!)不管怎样,以下是我给班级打电话的方法: FaceRecognizer rec=新的FaceRecognizer() 或 FaceRecognizer rec=null或 FaceRecognizer rec 最后,我尝试通过以下方式调用Train和Predict方

我正在使用openCV 2.4.9 Java库,在实现某些人脸识别器时遇到了一些问题。我知道,在C++中,类<代码> CONII.FACECECGNZIZER <代码>是Abastract,但我不知道java库是否也发生了(实际上java文档太少了!)不管怎样,以下是我给班级打电话的方法:

FaceRecognizer rec=新的FaceRecognizer()

FaceRecognizer rec=null

FaceRecognizer rec

最后,我尝试通过以下方式调用
Train
Predict
方法:

public static void main(String[] args) {
    // TODO code application logic here
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    FaceRecognizer rec = null;
    List<Mat> images;
    images = new ArrayList<Mat>();
    images.add(Highgui.imread("/home/adriano/Desktop/fotos/gabi/1.jpg"));
    images.add(Highgui.imread("/home/adriano/Desktop/fotos/gabi/2.jpg"));
    images.add(Highgui.imread("/home/adriano/Desktop/fotos/gabi/3.jpg"));
    images.add(Highgui.imread("/home/adriano/Desktop/fotos/estevao/1.jpg"));
    images.add(Highgui.imread("/home/adriano/Desktop/fotos/estevao/2.jpg"));
    images.add(Highgui.imread("/home/adriano/Desktop/fotos/estevao/3.jpg"));

    Mat labels = new Mat(1, 6, CvType.CV_8UC1, Scalar(0));
    // How can I add some values different from 0 to this Mat?


    rec.train(images, labels);


    // Predicts the label
    System.out.println(testando.predict(Highgui.imread("/home/adriano/Desktop/fotos/gabi/4.jpg"));


    }
publicstaticvoidmain(字符串[]args){
//此处的TODO代码应用程序逻辑
System.loadLibrary(Core.NATIVE\u LIBRARY\u NAME);
人脸识别器rec=null;
列出图像;
images=newarraylist();
add(Highgui.imread(“/home/adriano/Desktop/fotos/gabi/1.jpg”);
add(Highgui.imread(“/home/adriano/Desktop/fotos/gabi/2.jpg”);
add(Highgui.imread(“/home/adriano/Desktop/fotos/gabi/3.jpg”);
add(Highgui.imread(“/home/adriano/Desktop/fotos/estevao/1.jpg”);
add(Highgui.imread(“/home/adriano/Desktop/fotos/estevao/2.jpg”);
add(Highgui.imread(“/home/adriano/Desktop/fotos/estevao/3.jpg”);
材料标签=新材料(1,6,CvType.CV_8UC1,标量(0));
//如何将一些不同于0的值添加到此Mat?
列车记录(图像、标签);
//预测标签
System.out.println(testando.predict(Highgui.imread(“/home/adriano/Desktop/fotos/gabi/4.jpg”);
}

欢迎提供任何帮助(:

以使您可以使用FaceRecognitor

FaceRecognizer rec=createLBPHFaceRecognizer();


自OpenCV v3.0以来,创建
人脸识别器的方法是,例如:

faceRecognizer = LBPHFaceRecognizer.create();
与创建其他两个识别器的方法相同

FaceRecognizer rec=createFisherFaceRecognizer();
faceRecognizer = LBPHFaceRecognizer.create();