我想用EmguCV做一些面部识别。我想知道我是否可以使用EigenObjectRecognizer来完成这项任务?有人能解释我如何使用它吗?因为如果没有不匹配的照片,它也会返回一个值。这里有一个例子:使用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);
它返回“布拉德”。但如果我在testimage改变照片的时候也返回了一些名字,甚至Brad.Is什么好处人脸识别使用这种方法吗?或者有没有更好的方法?
难道你不需要训练所有其他图片吗?看起来你只是训练它寻找brad。 – 2010-05-14 21:13:10
他似乎将一组图像和一组标签传递给他的识别器。你为什么认为他没有训练他们? – Blindy 2010-05-14 21:35:31
我训练它寻找brad,因为我想用数据库来品尝图像。就像我有1张人的照片,我想找到它是谁? – Ercan 2010-05-14 21:51:59