我正在尝试使用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,它也会抛出异常。
我做错了什么?