顔認識に関するプロジェクトに SURF 機能を実装しようとしています。私はアンドロイドのopencvが初めてです。そのため、論理エラーを見つけるのは少し難しいです。また、Googleから検索しようとしましたが、何も修正できませんでした。機能の問題を処理するために、ライブラリ 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 メモリ アドレスに到達または書き込みしようとしたときに発生すると彼らは言いました。しかし、この問題を解決する方法がわかりませんでした。私に何ができるか教えていただけますか?
前もって感謝します