2011-12-26 7 views
5

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); 

Respuesta

13

Actualmente matToBitmap es un poco buggy, he leído tienen la intención de fijarlo en una versión futura.

me puedo mostrar cómo trabajé alrededor de él una imagen en color para:

mMat = Utils.loadResource(this, resId, Highgui.CV_LOAD_IMAGE_COLOR); 
Imgproc.cvtColor(mMat, result, Imgproc.COLOR_RGB2BGRA); 
bmp = Bitmap.createBitmap(result.cols(), result.rows(), Bitmap.Config.ARGB_8888); 
Utils.matToBitmap(result, bmp); 
mImageView.setImageBitmap(bmp); 

Básicamente llevo a cabo la conversión de color que el espacio primero o como usted ha dicho, el resultado será una mezcla extraña de colores al azar.

Responde si funciona, creo que sí.

+0

¿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. –

+0

@ user1446598 ¿Estás usando openCV en Android? – greven

+0

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. –

Cuestiones relacionadas