Actualmente estoy intentando migrar un poco del código heredado de iPhone a Android. Este código usa la biblioteca OpenCV para hacer un poco de procesamiento de imágenes. Y no puedo entender cómo hacer la conversión entre Mat y las clases de mapa de bits de Android.¿Forma correcta de convertir Bitmap y Mat en OpenCV en Android?
Este código muestra un ejemplo muy simplificado que carga un mapa de bits en una estera y luego lo convierte de nuevo en mapa de bits. La imagen resultante se ve rara: está llena de píxeles azules y blancos. Y es el original de una imagen PNG normales ...
Mat img = Utils.loadResource(context, resId);
Bitmap tmp = Bitmap.createBitmap(img.rows(), img.cols(),
Bitmap.Config.ARGB_8888);
Utils.matToBitmap(img, tmp);
¿Cómo se obtiene el 'resId'? Intento convertir una imagen obtenida por intento de cámara de bmp a Mat, procesar y luego volver. Y, por lo tanto, toda la información disponible sobre el bmp es el nombre de ruta y el propio bmp. –
@ user1446598 ¿Estás usando openCV en Android? – greven
Sí. El problema se resolvió: encontré una publicación SO, que no puedo encontrar en este momento, que me ayudó con el procedimiento. Todavía no sé cómo obtener un ID de una foto capturada por cámara (a diferencia de los elementos dibujables), pero el enfoque sugerido usó el nombre de ruta en su lugar. –