2013-03-24 23 views
0

試圖找出一種方法來收集信心水平,當它實際上做目標圖像上的臉部識別。我已經搜索了幾個例子,但還沒有找到任何我可以看到如何實現的東西。所有幫助表示感謝,謝謝你們。用JAVACV程序收集信心

public static void facecompare() { 
    String trainingDir = "C:/TrainingDirectory";  //training directory 
    IplImage testImage = cvLoadImage("C:/TargetImages/boland_straight_happy_open_4.pgm"); //the target image 

    File root = new File(trainingDir); 

    FilenameFilter pngFilter = new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.toLowerCase().endsWith(".pgm"); 
     } 
    }; 

    File[] imageFiles = root.listFiles(pngFilter); 

    MatVector images = new MatVector(imageFiles.length); 

    int[] labels = new int[imageFiles.length]; 

    int counter = 0; 
    int label; 

    IplImage img; 
    IplImage grayImg; 

    for (File image : imageFiles) { 
     img = cvLoadImage(image.getAbsolutePath()); 

     label = Integer.parseInt(image.getName().split("\\-")[0]); 

     grayImg = IplImage.create(img.width(), img.height(), IPL_DEPTH_8U, 1); 

     cvCvtColor(img, grayImg, CV_BGR2GRAY); 

     images.put(counter, grayImg); 

     labels[counter] = label; 

     counter++; 
    } 

    IplImage greyTestImage = IplImage.create(testImage.width(), testImage.height(), IPL_DEPTH_8U, 1); 



    // FaceRecognizer faceRecognizer = createFisherFaceRecognizer(); 
    // FaceRecognizer faceRecognizer = createEigenFaceRecognizer(); 
    FaceRecognizer faceRecognizer = createLBPHFaceRecognizer(); 

    faceRecognizer.train(images, labels); 

    cvCvtColor(testImage, greyTestImage, CV_BGR2GRAY); 

    int predictedLabel = faceRecognizer.predict(greyTestImage); 

    System.out.println("Predicted label: " + predictedLabel); 
} 

回答

1

還有另一個預測方法返回的信心:

// pointer-like output parameters 
// only the first element of these arrays will be changed 
int[] plabel = new int[1]; 
double[] pconfidence = new double[1]; 

faceRecognizer.predict(greyTestImage, plabel, pconfidence); 

int predictedLabel = plabel[0]; 
double confidence = pconfidence[0]; 
+0

我預計,這種方法將所有的信心值在訓練集的所有圖像。但是,至少對我而言,它只給出預測圖像的置信度值。這是正常的? – 2015-08-09 20:37:12

相關問題