Convertir Mat a Bitmap Opencv para Android

Estoy tratando de encubrir un MAt a un uso Bitmap código siguiente:

Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Mat tmp = new Mat (width,height,CvType.CV_8UC1,new Scalar(4)); try { //Imgproc.cvtColor(seedsImage, tmp, Imgproc.COLOR_RGB2BGRA); Imgproc.cvtColor(seedsImage, tmp, Imgproc.COLOR_GRAY2RGBA, 4); Utils.matToBitmap(tmp, bmp);} catch (CvException e){Log.d("Exception",e.getMessage());} 

My seedsImage es un objeto Mat. Y la Excepción y se obtiene 10-09 22:15:09.418: D/Exception(2461): ..\..\modules\java\generator\src\cpp\utils.cpp:105: error: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, _jclass*, jlong, _jobject*, jboolean) Para buscar a través pero ninguna solución funcionó para mí. ¿Alguien puede ayudar?

1) El constructor de OpenCV Mat espera <rows, cols> lugar de <width, height> como sus argumentos. Así que tienes que cambiar tu segunda línea a

 Mat tmp = new Mat (height, width, CvType.CV_8U, new Scalar(4)); 

2) Imgproc.cvtColor puede cambiar las dimensiones del objeto tmp . Por lo tanto, es seguro crear un mapa de bits después de la conversión de color:

 Bitmap bmp = null; Mat tmp = new Mat (height, width, CvType.CV_8U, new Scalar(4)); try { //Imgproc.cvtColor(seedsImage, tmp, Imgproc.COLOR_RGB2BGRA); Imgproc.cvtColor(seedsImage, tmp, Imgproc.COLOR_GRAY2RGBA, 4); bmp = Bitmap.createBitmap(tmp.cols(), tmp.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(tmp, bmp); } catch (CvException e){Log.d("Exception",e.getMessage());} 

Pruebe este código para la conversión de mat a bitmap

 **Mat mRgba; public void onCameraViewStarted(int width, int height) { mRgba = new Mat(height, width, CvType.CV_8UC4); } public Mat onCameraFrame(Mat inputFrame) { inputFrame.copyTo(mRgba); return mRgba; } private void captureBitmap(){ bitmap = Bitmap.createBitmap(mOpenCvCameraView.getWidth()/4,mOpenCvCameraView.getHeight()/4, Bitmap.Config.ARGB_8888); try { bitmap = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(mRgba, bitmap); mBitmap.setImageBitmap(bitmap); mBitmap.invalidate(); }catch(Exception ex){ System.out.println(ex.getMessage()); } }** 
  • Rotar la imagen desde los datos del sensor de orientación
  • Cómo calcular la diferencia entre 2 fotogramas entrantes de la cámara (CV abierto)
  • OpenCV Android: ¿Cómo dibujar puntos clave coincidentes con las imágenes comparadas?
  • C ++, OpenCV y "qué" para la programación multiplataforma de GPU
  • OpenCv con Android Studio 2.2+ usando nuevo gradel con cmake - referencia indefinida
  • Cómo deshabilitar / modificar AutoFocus y AutoWhiteBalance en Android Camera usando OpenCV
  • OpenCV warpPerspective rendimiento lento
  • NDK ¿La manipulación del mapa de bits usando el color azul de OpenCv es anaranjada?
  • Guardar los vectores de características de ORB usando OpenCV4Android (java API)
  • Android OpenCV: dibujo de partidos con feature2d
  • OpenCV para Android - Elementos de acceso de Mat
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.