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:
- El parámetro setPictureSize de la cámara Android muestra una imagen con rayas
- Android Asynctask para procesar tramas de video en vivo
- Android: procesamiento de imágenes en tiempo real
- Reconocimiento y seguimiento de objetos en movimiento más rápido en Android
- Android: cómo deformar imágenes?
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?
- Efectos de imagen para Android?
- Reconocimiento de monedas en Android
- Recortar parte particular de la imagen en android
- ¿Cómo mostrar la animación de progreso de carga para alguna imagen?
- Encuentra color dominante en un marco de cámara en OpenCV Android
- Biblioteca de OCR para Android
- Reconocimiento de marcadores en Android (reconocimiento de cubos de Rubik)
- Cómo cambiar el color de fondo de mapa de bits a transparente y de fondo no debe arrastrar?
¡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!
- Android (Java) Entrada de audio en tiempo real (micrófono y USB) y salida
- Aplicación de la burbuja de chat de Android en ListView