SURF Feature Extraction con Android OpenCV SDK – Obtener algunos errores

Estoy tratando de implementar las características de SURF en mi proyecto que se trata de reconocimiento facial. Soy nuevo en opencv en android. Por lo tanto, es un poco difícil encontrar errores lógicos. También intenté buscar de google pero nada podía arreglar. Importé el libray org.opencv.features2d para manejar problemas de características.

Al principio este es mi código de implementación SURF (una parte de).

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()); } 

Cuando ejecuto el programa da un solo error. Sólo esta.

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

Busqué este error. Ellos dijeron que este error se produce cuando las clases nativas tratan de alcanzar o escribir 0x00000000 dirección de memoria. Pero no pude averiguar cómo solucionar este problema. ¿Puedes decirme qué puedo hacer?

Gracias por adelantado

¡De acuerdo! Las características de SURF ahora se patentan según este hilo . Así que creo que el error sobre este problema. Quienquiera que intenta extraer la característica de SURF, usted puede continuar con características de ORB que en este hilo trabaja muy bien a menos que las características que emparejan. Espero que esto ayude a buscar la extracción de características de SURF de Android.

SURF no está incluido en el paquete de distribución de OpenCV Android. Para usarlo, necesita compilar el módulo no libre y utilizarlo en su proyecto. Por lo tanto, lo que necesita hacer es crear un proyecto NDK, compilar el módulo no libre como una biblioteca independiente. A continuación, utilice esta biblioteca para compilar su programa. Entonces usted debe ser capaz de construir su aplicación. Puede consultar este tutorial .

Descargue la versión anterior, es decir, 4.2.1 o 4.2.0 de opencv y úsela en su proyecto

  • Vinculación de Opencv a mi propio proyecto android
  • OpenCV: detección de puntos / discos circulares de dominó
  • Prueba de unidad de Android para la vista previa de la cámara?
  • ¿Cuál es la diferencia entre `opencv.android.JavaCameraView` y` opencv.android.NativeCameraView`
  • Error: el paquete android.hardware.camera2 no existe OpenCV
  • Qt Android proyecto con OpenCV - tbb errores de compilación
  • Integración de dependencias de Android Studio y Gradle
  • OpenCV4android detecta forma y color (HSV)
  • cverror android assertion failed (scn == 3) Android
  • Eclipse se compila con éxito, pero todavía da errores semánticos
  • Muestra de detección de caras de opencv
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.