Here is the code
File path= Environment.getExternalStorageDirectory();
String trainingDir = path.getAbsolutePath() + "/face";
Mat testImage = imread(trainingDir+"/1-filename.png", CV_LOAD_IMAGE_GRAYSCALE);
File root = new File(trainingDir);
FilenameFilter imgFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
name = name.toLowerCase();
return name.endsWith(".jpg") || name.endsWith(".pgm") || name.endsWith(".png");
}
};
File[] imageFiles = root.listFiles(imgFilter);
MatVector images = new MatVector(imageFiles.length);
Mat labels = new Mat(imageFiles.length, 1, CvType.CV_32SC1);
IntBuffer labelsBuf = labels.getIntBuffer();
int counter = 0;
for (File image : imageFiles) {
Mat img = imread(image.getAbsolutePath(), CV_LOAD_IMAGE_GRAYSCALE);
int label = Integer.parseInt(image.getName().split("-")[0]);
images.put(counter, img);
labelsBuf.put(counter, label);
counter++;
}
opencv_contrib.FaceRecognizer faceRecognizer=new opencv_contrib.FaceRecognizer();
faceRecognizer.train(images, labels);
int predictedLabel = faceRecognizer.predict(testImage);
I got this error
W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
W/System.err﹕ java.lang.NullPointerException: This pointer address is NULL.
W/System.err﹕ at org.bytedeco.javacpp.opencv_contrib$FaceRecognizer.train(Native Method)
W/System.err﹕ at com.example.kavitha.androidface.MainActivity.opencvcheck(MainActivity.java:133)
W/System.err﹕ at com.example.kavitha.androidface.MainActivity$1.onClick(MainActivity.java:41) W/System.err﹕ at android.view.View.performClick(View.java:4295)
W/System.err﹕ at android.view.View$PerformClick.run(View.java:17456)
W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:615)
W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err﹕ at android.os.Looper.loop(Looper.java:174)
W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:4952)
W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 0ms
D/dalvikvm﹕ GC_EXPLICIT freed 1458K, 22% free 10501K/13447K, paused 2ms+3ms, total 52ms