I am trying to create demo like Answer By Bytefish But it produce the error. How can I resolve this problem?. Here is my code which i am trying. Any help would be really appreciated.
String trainingDir = "D:\\train";
Mat testImage = Highgui.imread("D:\\photo.jpg",Highgui.CV_LOAD_IMAGE_COLOR);
File root = new File(trainingDir);
FilenameFilter pngFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".jpg");
}
};
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 image1 : imageFiles) {
img=cvLoadImage(image1.getAbsolutePath());
label = Integer.parseInt(image1.getName().split("\\-")[0]);
grayImg = IplImage.create(img.width(), img.height(), IPL_DEPTH_8U, 1);
cvCvtColor(img, grayImg, CV_BGR2GRAY);
images.put(counter,img);
labels[counter] = label;
counter++;
}
FaceRecognizer faceRecognizer = createFisherFaceRecognizer();
//FaceRecognizer faceRecognizer = createEigenFaceRecognizer();
// FaceRecognizer faceRecognizer = createLBPHFaceRecognizer()
faceRecognizer.train(images, labels);
// Load the test image:
Mat greyTestImage = new Mat(testImage.width(), testImage.height(), IPL_DEPTH_8U);
Imgproc.cvtColor(testImage, greyTestImage, Imgproc.COLOR_RGB2GRAY);
// And get a prediction:
int predictedLabel = faceRecognizer.predict(greyTestImage);
System.out.println("Predicted label: " + predictedLabel);