Search code examples
androidopencvfatal-errorsurf

SURF Feature Extraction With Android OpenCV SDK - Getting Some Errors


I am trying to implement SURF features in my project which is about face recognition. I am new at opencv on android. So it is a little bit hard to find logical errors. Also i tried to search from google but nothing i could fix. I imported the libray org.opencv.features2d for handling feature issues.

At the beginning this is my SURF implementation code(a part of).

    public void SURFExtraction()
{
    FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
    DescriptorExtractor SurfExtractor = DescriptorExtractor.create(DescriptorExtractor.SURF);

     Mat img1 = Highgui.imread("/mnt/sdcard/FaceDB/1.jpg");//one of my face
     Mat img2 = Highgui.imread("/mnt/sdcard/FaceDB/2.jpg");//one of my different face

    //extract keypoints
    MatOfKeyPoint keypoints = new MatOfKeyPoint();
    MatOfKeyPoint logoKeypoints = new MatOfKeyPoint();

     detector.detect(img1, keypoints);//this is the problem "fatal signal"
     Log.d("LOG!", "number of query Keypoints= " + keypoints.size());
     detector.detect(img2, logoKeypoints);
     Log.d("LOG!", "number of logo Keypoints= " + logoKeypoints.size());


}

When i execute the program it gives a single error. Just this.

  A/libc(30444): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)

I searched for this error. They said that this error occurs when native classes try to reach or write 0x00000000 memory address. But i couldn't figure out how to fix this issue. Can you tell me what can i do?

Thanks in advance


Solution

  • Ok! SURF features now patented according to this thread. So i think the error about this issue. Who ever trying to extract SURF feature, you can continue with ORB features which at this thread works fine unless matching features. I hope this will help searching for android SURF features extraction.