我一直在努力解决这个问题大约三个小时,说实话,我已经累了......
我不知道我做错了什么。
这是我的功能:
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
std::vector<Mat> images;
std::vector<int> labels;
std::vector<cv::String> filenames;
glob("Dataface/*.jpg", filenames, false);
if (filenames.size() == (size_t)0) {
MessageBox::Show("La carpeta está vacía.", "Error", MessageBoxButtons::OK, MessageBoxIcon::Error);
return;
}
for (size_t i = 0; i < filenames.size(); i++) {
images.push_back(imread(filenames[i]));
labels.push_back((int)i);
}
Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
model->train(images, labels);
Mat img = imread("C:\\Users\\Germán Aguilera\\Desktop\\Christina.jpg");
int prediction = model->predict(img);
//MessageBox::Show(prediction.ToString());
//rModel = &model;
MessageBox::Show("El programa ya ha sido entrenado.", "Reconocimiento facial", MessageBoxButtons::OK, MessageBoxIcon::Information);
}
抛出异常的行是:
int prediction = model->predict(img);
但为什么呢? 我没有遇到任何问题:
model->train(images, labels);
所以我只是复制并粘贴到另一个文件夹中的过程图像,以使用预测函数检查结果,但我得到了这个例外。