Una vez que hemos llegado aquí es hora de jugar con nuestra librería de visión artificial. Nada mejor que un filtro Canny para mostrar el funcionamiento de OpenCV en nuestra aplicación Android.
/* Trabajamos con el fotograma obtenido */ public Mat onCameraFrame(Mat inputFrame) { Imgproc.Canny(inputFrame, mFotogramaGrises, 10, 80); return mFotogramaGrises; }
Por cada fotograma obtenido de la cámara se llamará al evento (método de "callback" o "listener") "onCameraFrame" con nuestro fotograma como parámetro.
En el código hemos realizado lo siguiente:
- Usamos el filtro Canny que nos ofrece la librería de procesamiento de imágenes (Imgproc) para convertir nuestro fotograma de entrada (inputFrame) en una imagen en escala de grises que contiene la imagen tratada. Los parámetros del filtro Canny son los umbrales 10 y 80 (muy genéricos, podemos cambiarlos a gusto).
- Devolvemos la imagen obtenida al aplicar el filtro Canny (mFotogramaGrises) en vez de la imagen que nos entregó la cámara (inputFrame). Esto provocará que nuestra vista muestre el resultado del filtro.
Realmente no hubiera sido necesario crear la imagen mFotogramaGrises, podríamos haber aplicado el filtro sobre la misma imagen, pero de esa manera no hubieramos podido mostrar las ventajas de reserva previa de memoria para imágenes de trabajo y cómo se devuelve una imagen diferente a la obtenida.
Resultado:
intento correr la aplicacion pero dice que mi telefono tiene bloqueda la camara (motorola Xt890) me podrias hacer una sugerencia para resolver mi problema gracias
ResponderEliminarOscar sos un genio! Todo el material que expones es claro y de gran ayuda para quienes comienzan a desarrollar este tipo de aplicaciones.
ResponderEliminarMe encuentro intentado dibujar en la pantalla recuadros como uno de los samples de OpenCV, el puzzle, pero no logro hacerlo. Yo quiero dividir la pantalla en cuatro recuadros para realizar una serie de reconocimientos dentro de cada uno, pero no logro dividir la pantalla ¿cómo podría hacerlo?
Desde ya, muchas gracias.
Saludos, Facundo.