我正在尝试在我的项目中实现关于人脸识别的 SURF 功能。我是 android 上的 opencv 新手。所以很难找到逻辑错误。我也尝试从谷歌搜索,但我无法修复。我导入了 libray org.opencv.features2d 来处理功能问题。
一开始这是我的SURF实现代码(一部分)。
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());
}
当我执行程序时,它给出了一个错误。只是这个。
A/libc(30444): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
我搜索了这个错误。他们说当本机类尝试到达或写入 0x00000000 内存地址时会发生此错误。但我不知道如何解决这个问题。你能告诉我我能做什么吗?
提前致谢