之前,我一直在使用OpenCV进行C++工作,而且效果很好。现在,我正在开发一个C#项目,并使用EMGU CV进行性别识别。我的预测功能有问题。每次我运行它时,程序在Predict函数上崩溃,当我删除预测行时,它正在运行。这是我的代码:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
     FaceRecognizer face = new FisherFaceRecognizer(0, 3500);
     face.Load("colorFisherFaceModel.yml");
     Image<Bgr, Byte> img1 = new Image<Bgr, Byte>("C:\\Users\\sguthesis\\Pictures\\me.jpg");
     cascade = new CascadeClassifier("C:\\Users\\sguthesis\\documents\\visual studio 2013\\Projects\\EmguCV FFR with Image\\EmguCV FFR with Image\\haarcascade_frontalface_alt_tree.xml");
     FaceRecognizer.PredictionResult predictedLabel = face.Predict(img1);
}

另外,我想得到一个输出,1或2。男性1,女性2。我已经训练了许多保存在colorFisherFaceModel.yml上的数据。它在OpenCV上运行良好。但是我不知道如何在EMGU CV中使用它。

最佳答案

我还在EmguCV上工作,所以我想在这里只能指出几点,
因此,第一件事是您加载“yml”文件,这是您在识别器训练后保存的文件,还是从某个地方获取的文件。因为我的理解是首先您必须训练您的Recognizer,所以yml文件的结构是什么。为什么要加载级联,您将在哪里使用它? (通常用于检测人脸)

如果您说的是程序崩溃,很可能是因为训练集中没有物品。 (在这种情况下,我想它应该是yml文件),或者正如我所读的一样,为了使用Fisher识别器,您至少需要训练集中两张面孔。

关于c# - 基于图像的EMGU CV人脸识别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30125654/

10-10 19:33