我正在尝试使用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对于使用这种方法进行人脸识别是否有用?或者有更好的方法吗?
我做了一些练习,发现当找不到时它返回空字符串。将值 5000 更改为 1000 它会提供更接近的值,但 \xc4\xb1f 你是我们\xc4\xb1ng 网络摄像头,用于测试的照片和数据库中的照片必须几乎相同。
\n| 归档时间: |
|
| 查看次数: |
8170 次 |
| 最近记录: |