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!

  • Cómo convertir MatOfPoint a MatOfPoint2f en opencv java api
  • ¿Cómo mostrar la animación de progreso de carga para alguna imagen?
  • Hacer que la imagen superpuesta sea transparente al tocar en Android?
  • Recortar imagen por área de polígono
  • Uso de OpenCV en Java Camera2 API
  • Cómo cambiar el color de fondo de mapa de bits a transparente y de fondo no debe arrastrar?
  • Cómo encontrar las esquinas de un objeto Rect en openCV?
  • Procesamiento de imágenes en Android
  • Convertir imagen JPEG / PNG a formato de imagen TIFF en Android OS
  • Matcher Assertions error error opencv Android
  • ¿Cuál es la mejor manera de serializar una imagen (compatible con Swing) de Java a Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.