Detección de objetos Android OpenCV

Estoy tratando de implementar algo como esto: http://www.youtube.com/watch?v=zjxWpKCQqJc en android.

Aquí mi código:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) { Mat novo = new Mat(); Mat resp = new Mat(); Mat homer = new Mat(); //resp = inputFrame.gray(); novo = inputFrame.gray(); Mat lido = new Mat(); try { lido = Utils.loadResource(this, R.drawable.homer); } catch (IOException e) { e.printStackTrace(); } Imgproc.cvtColor(lido, homer, Imgproc.COLOR_RGB2GRAY); FeatureDetector surf = FeatureDetector.create(FeatureDetector.FAST); MatOfKeyPoint keypointsHomer = new MatOfKeyPoint(); MatOfKeyPoint keypoints = new MatOfKeyPoint(); surf.detect(homer, keypointsHomer); surf.detect(novo, keypoints); DescriptorExtractor SurfExtractor = DescriptorExtractor.create(FeatureDetector.SURF); Mat descriptors = new Mat(); Mat homerDescriptors = new Mat(); SurfExtractor.compute(novo, keypoints, descriptors); SurfExtractor.compute(homer, keypointsHomer, homerDescriptors); DescriptorMatcher m = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE); MatOfDMatch matches = new MatOfDMatch(); m.match(descriptors, homerDescriptors, matches); Features2d.drawMatches(novo, keypoints, homer, keypointsHomer, matches, resp); return resp; } 

Y tengo el siguiente error: https://dl.dropboxusercontent.com/u/2345114/error_android.png

Si intento dibujar los puntos clave como este:

 Features2d.drawKeypoints(novo, keypoints, resp); Features2d.drawKeypoints(homer, keypointsHomer, resp); 

¡Ambos funcionan bien! ¿Qué estoy haciendo mal?

¡Finalmente termino eso!

Heres un vínculo con el resultado final.

Simpson Detector (OpenCV)

Espero que esto te ayude de alguna manera, en Google Play puedes ver más detalles sobre ese proyecto y descargar el código fuente. No dude en enviarme un e-mail.


Redondeé el problema de otra manera. Supongo que Features2d.drawMatches no funciona en android. Probablemente sólo funciona con JVM y con componentes que no existen en android. Si alguien puede confirmar que estoy agradecido.

Google eliminó la aplicación y no dijo por qué! = (Pero el código fuente está disponible junto con el apk en mi sitio!

Quintao.info


Resultado: https://www.youtube.com/watch?v=h2KHje-Pf10

Fuente: github.com/raphaelquintao/SimpsonDetector

Espero haber ayudado!

  • Umbral adaptable rápido para Canny Edge Detector en Android
  • Android Yuv420sp a ARGB en OpenCV
  • Detectar los límites de un documento en una imagen usando opencv java
  • OpenCv en Android: detección de puntos clave en imágenes de archivo
  • Cómo desenfocar una parte de la imagen en Android?
  • Android - openCV, obtener parte de la imagen - comportamiento extraño
  • OpenCV FeatureDetector
  • Comparar dos imágenes en android
  • Cortar la imagen después de seleccionar el área mediante la detección de bordes en android
  • Optimización de la mezcla por pixel en mapas de bits de Android
  • Programación de GPU en dispositivos Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.