训练FaceRecognizer时OpenCV - std :: length_error

时间:2014-11-13 10:30:17

标签: c++ opencv face-recognition

我正在尝试使用LBPHFaceRecognizer,但在调用train方法时,我一直收到length_error异常。

代码如下所示:

vector<cv::Mat> images;
vector<int> labels;

cv::Ptr<cv::FaceRecognizer> model = cv::createLBPHFaceRecognizer();

while(getline(galleryFile, line))
{
    folder = line.substr(0, line.find(" "));
    imageNumber = line.substr(line.find(" ") + 1, 4);

    string path = folder;
    path.append("/");
    path.append(imageNumber);
    path.append(".jpg");

    images.push_back(cv::imread(path.c_str(), CV_LOAD_IMAGE_GRAYSCALE));
    labels.push_back(i);

    i++;
}

try {
    model->train(images, labels);
} catch (const std::length_error& e) {
    std::cerr << "Length error: " << e.what() << '\n';
}

我绝对肯定所有图片都按预期加载。 我得到的唯一输出是vector<T> too long。即使两个向量的长度都是1,它也会抛出异常。

我做错了什么?

0 个答案:

没有答案