La función que tengo es:
Código
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); }
La línea que me está arrojando la excepción es:
Código
int prediction = model->predict(img);
¿Pero por qué sucede eso?
No tuve ningún problema con:
Código
model->train(images, labels);
Quería chequear los resultados del predict, así que copié y pegué en otra carpeta una imagen ya procesada para usarla en el predict, y me arroja esa excepción.
¿Alguien podría echarme una mano?
Gracias de antemano.