Bitmap to Mat da colores incorrectos de vuelta
Así que hago un mapa de bits de una gota con el siguiente código:
byte[] blob = contact.getMP(); ByteArrayInputStream inputStream = new ByteArrayInputStream(blob); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); Bitmap scalen = Bitmap.createScaledBitmap(bitmap, 320, 240, false);
y devuelve la siguiente salida, que es buena
- Imagen de Facebook como icono grande La notificación aparece en blanco en diferentes teléfonos?
- Convertir un lienzo en imagen de mapa de bits en android
- Cómo crear un mapa de bits cuadrado de un mapa de bits rectangular en Android
- Enmascarar (recortar) la imagen en el marco
- Java.lang.OutOfMemoryError BitmapFactory.nativeDecodeAsset ()
Entonces hago lo siguiente para hacer el mapa de bits en un Mat, pero entonces mis colores sólo cambian …
//Mat ImageMat = new Mat(); Mat ImageMat = new Mat(320, 240, CvType.CV_32F); Utils.bitmapToMat(scalen, ImageMat);
No tengo idea de por qué, ni otra manera de hacer el mapa de bits en un Mat. ¿Qué está mal?
- Drawable vs Single reutilizable Bitmap mejor con la memoria?
- Color de la máscara de mapa de bits Android, quitar el color
- Android: lee la imagen PNG sin alpha y decodifica como ARGB_8888
- Java.lang.OutOfMemoryError: tamaño de mapa de bits supera el presupuesto de VM en ListView y imágenes de carga perezosa
- ¿Cómo puedo reconocer qué área de una imagen (no sólo las coordenadas) se ha tocado en Android?
- API básica de Android v2 MapActivity outOfMemory con 10 marcadores
- Qué tamaño almacenar imagen en el servidor para utilizar con la aplicación de Android
- Cómo convertir bitmap a PNG y luego a base64 en Android?
El formato de los canales de color en Android Bitmap son BGR Pero en opencv Mat, los canales son RGB por defecto.
Así que cuando usted hace Utils.bitmapToMat (), los valores [B, G, R] se almacenan en los canales [R, G, B]. Los canales rojo y azul se intercambian.
Una posible solución es aplicar cvtcolor en el Opencv Mat que obtuvo como a continuación: Imgproc.cvtColor (ImageMat, ImageMat, Imgproc.COLOR_BGR2RGB);
Funcionó para mí.
- Montaje de un archivo cifrado de expansión apb apk en Android
- Cómo puedo pasar el parámetro múltiple a reparador webservice usando el poste del HTTP