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).
- Detección de imágenes en paralelo y vista previa de la cámara OpenCV Android
- Error: no se puede encontrar la variable de símbolo GL_TEXTURE_EXTERNAL_OES + OpenCV en Android Studio
- Reconocimiento de objetos en tiempo real en Android con detector FAST
- OpenCV para Android, ¿necesito instalar OpenCV Manager por separado?
- Detección de logo de OpenCV - ¿Qué usar?
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
- ¿Cómo encontrar los contornos de un marco de una cámara Android y convertirlos en cuerpos box2d?
- ClassNotFoundException: android.hardware.camera2.CameraAccessException con OpenCV 3.1.0
- OpenCV warpPerspective rendimiento lento
- Problema al usar OpenCV2.3.1 con la actividad de Android Native
- Ejemplo de OpenCV Template Matching en Android
- Android JavaCV dilema, NoClassDefFoundError lanzado dentro del método 'dibujar' cuando se crea IplImage
- ¿Cómo puedo optimizar la costura de múltiples imágenes?
- make: *** No se han especificado objetivos y no se ha encontrado ningún makefile. Detener
¡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
- La notificación de Parse Push no funciona en android
- cómo corregir "Declaración de devolución faltante" en java