如何在Javacv中将int数组转换为Mat对象

时间:2016-07-17 11:59:51

标签: java typeerror javacv mat

我是javacv的新手我正在使用FaceRecognition类进行人脸识别: 我有一个名为“labels”和Matvector“images”的int数组。 当我使用facerecognition.train(图像,标签)时,它给出了一个错误,即int数组无法转换为Mat。 那么任何人请告诉我如何将该int数组对象转换为Mat对象。 这是我的代码

File[] imageFiles = root.listFiles(pngFilter);

    MatVector images = new MatVector(imageFiles.length);

    int[] labels = new int[imageFiles.length];

    int counter = 0;
    int label;

    IplImage img;
    IplImage grayImg;

    for (File image : imageFiles) {
        img = cvLoadImage(image.getAbsolutePath());

        label = Integer.parseInt(image.getName().split("\\-")[0]);

        grayImg = IplImage.create(img.width(), img.height(), IPL_DEPTH_8U, 1);

        cvCvtColor(img, grayImg, CV_BGR2GRAY);

        images.put(grayImg);


        labels[counter] = label;

        counter++;
    }

    IplImage greyTestImage = IplImage.create(testImage.width(), testImage.height(), IPL_DEPTH_8U, 1);

    //FaceRecognizer faceRecognizer = createFisherFaceRecognizer();
     FaceRecognizer faceRecognizer = createEigenFaceRecognizer();
    // FaceRecognizer faceRecognizer = createLBPHFaceRecognizer()

    faceRecognizer.train(images, labels);

0 个答案:

没有答案