예제 #1
0
 private void btnTestImage_Click(object sender, EventArgs e)
 {
     if (LDAClassifier == null)
     {
         MessageBox.Show("Classifier not trained. Please press Train!");
     }
     else
     {
         OpenFileDialog Dialog = new OpenFileDialog();
         Dialog.Filter = "jpeg files (*.jpg)|*.jpg|(*.gif)|gif||";
         if (DialogResult.OK == Dialog.ShowDialog())
         {
             ATTFace  face         = DataUnit.GetATTFace(Dialog.FileName);
             double[] projectedPCA = PCAClassifier.ComputeProjection(face.ImageVector); // Do not forget to project in PCA Space
             face.ImageVectorTransformed = projectedPCA;
             Bitmap TestBitmap = face.getImagesAsBmp();
             ShowImage(TestBitmap, picTestImage);
             FileInfo fileInfo = new FileInfo(Dialog.FileName);
             lblTestImage.Text = fileInfo.Name;
             int guessID = LDAClassifier.PredictClassInProjectedSpace(face);
             MessageBox.Show("Guessed Class: " + guessID);
             List <ATTFace> BestFaces = LDAClassifier.FacesByClass[guessID].FacesInClass; //By default, we print the images in the class
             DisplayBestMatches(BestFaces);
         }
     }
 }
예제 #2
0
 private void button3_Click(object sender, EventArgs e)
 {
     if (PCAClassifier == null)
     {
         MessageBox.Show("Classifiers have not been trained. Please press Train first!");
     }
     else
     {
         String         folderName    = "C:\\Users\\chris\\Documents\\UNIVERSITY OF BRIDGEPORT\\2020SP Semester\\CPEG 585 - Computer Vision\\ATTFaceDataSet\\Testing";
         List <ATTFace> TrainingFaces = DataUnit.GetTestingData(folderName);
         PCAClassifier.CalculateProjectedImages(TrainingFaces);
         double accuracy = LDAClassifier.ComputeAccuracy(TrainingFaces);
         MessageBox.Show("Current accuracy: " + accuracy * 100 + "%");
     }
 }