使用EigenObjectRecognizer

Erc*_*can 6 c# emgucv

我正在尝试使用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);
Run Code Online (Sandbox Code Playgroud)

它返回"brad".但是如果我在testimage中更改照片它也会返回一些名字甚至Brad.Is对于使用这种方法进行人脸识别是否有用?或者有更好的方法吗?

Erc*_*can 1

我做了一些练习,发现当找不到时它返回空字符串。将值 5000 更改为 1000 它会提供更接近的值,但 \xc4\xb1f 你是我们\xc4\xb1ng 网络摄像头,用于测试的照片和数据库中的照片必须几乎相同。

\n