2015-06-07 89 views
1

我正在使用Emgucv進行臉部識別,但FaceRecognizer的預測方法不起作用。每當我在下面運行這些代碼時,我都沒有得到任何結果。有誰知道如何修理它?提前致謝。該Emgucv版本是Emgu.CV-3.0.0-RC1使用Emgucv做臉部識別,不顯示預測結果

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Drawing; 

using Emgu.CV.UI; 
using Emgu.CV; 
using Emgu.CV.Structure; 
using Emgu.CV.CvEnum; 

namespace ConsoleFaceRecognition 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     //training variables    
     Image<Bgr, Byte>[] images = new Image<Bgr, Byte>[20]; 
     int[] labels = new int[20]; 


     for (int i = 0; i < 10; i++) 
     { 
      images[i] = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s1/11" + i.ToString() + ".png"); 
      images[i + 10] = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s2/21" + i.ToString() + ".png"); 
      labels[i] = 1; 
      labels[i + 10] = 2; 
     } 

     FaceRecognizer recognizer = new FisherFaceRecognizer(0, 3500); 
     recognizer.Train(images, labels); 

     Image<Bgr, Byte> testImage = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s2/213.png"); 
     FaceRecognizer.PredictionResult result = recognizer.Predict(testImage); 


     Console.Write(result.Label); 
    } 
} 
} 

回答

0

我不認爲20幅圖像是足夠的訓練,如果有可能增加樣本的數量。樣品的大小和內容也很重要。這些圖像中的所有面孔應具有相同的大小,例如正面爲您的訓練工作。

希望它有幫助。

+0

感謝您的回覆,這些圖片適用於opencv C++。圖像大小都是一樣的。 – Joey