我正在尝试使用 EmguCV 进行一些面部识别。我想知道我是否可以使用 EigenObjectRecognizer 来完成这项任务?有人可以解释我如何使用它吗?因为如果没有不匹配的照片,它也会返回一个值。这是一个例子:
Image<Gray, Byte>[] trainingImages = new Image<Gray,Byte>[5];
trainingImages[0] = new Image<Gray, byte>("brad.jpg");
trainingImages[1] = new Image<Gray, byte>("david.jpg");
trainingImages[2] = new Image<Gray, byte>("foof.jpg");
trainingImages[3] = new Image<Gray, byte>("irfan.jpg");
trainingImages[4] = new Image<Gray, byte>("joel.jpg");
String[] labels = new String[] { "Brad", "David", "Foof", "Irfan" , "Joel"}
MCvTermCriteria termCrit = new MCvTermCriteria(16, 0.001);
EigenObjectRecognizer recognizer = new EigenObjectRecognizer(
trainingImages,
labels,
5000,
ref termCrit);
Image<Gray,Byte> testImage = new Image<Gray,Byte>("brad_test.jpg");
String label = recognizer.Recognize(testImage);
Console.Write(label);
它返回“brad”。但是如果我在 testimage 中更改照片,它也会返回一些名字甚至 Brad。使用这种方法对人脸识别有好处吗?或者有没有更好的方法?