jeudi 15 mai 2014

Convertir Bitmap Android à OpenCV Mat et vers l'arrière - Stack Overflow


I wanted to simply convert a bitmap from Android to a Mat object for OpenCV. This topic is often adressed on Stack Overflow. For example:


convert Mat to Bitmap Opencv for Android ; convert Bitmap to Mat after capture image using android camera ; templateMatching mattoBitmap opencv for android


There is even more to find. I followed the instrcutions in this answers, but I'm still unable to get is done the right way.


Minimal code:


//First convert Bitmap to Mat
Mat ImageMat = new Mat ( image.getHeight(), image.getWidth(), CvType.CV_8U, new Scalar(4));
Bitmap myBitmap32 = image.copy(Bitmap.Config.ARGB_8888, true);
Utils.bitmapToMat(myBitmap32, ImageMat);

//Do smth.
Imgproc.cvtColor(ImageMat, ImageMat, Imgproc.COLOR_RGB2GRAY,4);

//Then convert the processed Mat to Bitmap
Bitmap resultBitmap = Bitmap.createBitmap(ImageMat.cols(), ImageMat.rows(),Bitmap.Config.ARGB_8888);;
Utils.matToBitmap(ImageMat, resultBitmap);

//Set member to the Result Bitmap. This member is displayed in an ImageView
mResult = resultBitmap;

(note: image is a Bitmap supplied to this lines of code)


Errors: 08-07 15:13:59.188: E/AndroidRuntime(2115): FATAL EXCEPTION: main


08-07 15:13:59.188: E/AndroidRuntime(2115): java.lang.NoClassDefFoundError: org.opencv.core.Mat


But my impots are:


import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;


//OpenCV
import org.opencv.android.Utils;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;
import org.opencv.imgproc.Imgproc;

Would really appreciate any sort of help. Thanks DanS



I wanted to simply convert a bitmap from Android to a Mat object for OpenCV. This topic is often adressed on Stack Overflow. For example:


convert Mat to Bitmap Opencv for Android ; convert Bitmap to Mat after capture image using android camera ; templateMatching mattoBitmap opencv for android


There is even more to find. I followed the instrcutions in this answers, but I'm still unable to get is done the right way.


Minimal code:


//First convert Bitmap to Mat
Mat ImageMat = new Mat ( image.getHeight(), image.getWidth(), CvType.CV_8U, new Scalar(4));
Bitmap myBitmap32 = image.copy(Bitmap.Config.ARGB_8888, true);
Utils.bitmapToMat(myBitmap32, ImageMat);

//Do smth.
Imgproc.cvtColor(ImageMat, ImageMat, Imgproc.COLOR_RGB2GRAY,4);

//Then convert the processed Mat to Bitmap
Bitmap resultBitmap = Bitmap.createBitmap(ImageMat.cols(), ImageMat.rows(),Bitmap.Config.ARGB_8888);;
Utils.matToBitmap(ImageMat, resultBitmap);

//Set member to the Result Bitmap. This member is displayed in an ImageView
mResult = resultBitmap;

(note: image is a Bitmap supplied to this lines of code)


Errors: 08-07 15:13:59.188: E/AndroidRuntime(2115): FATAL EXCEPTION: main


08-07 15:13:59.188: E/AndroidRuntime(2115): java.lang.NoClassDefFoundError: org.opencv.core.Mat


But my impots are:


import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;


//OpenCV
import org.opencv.android.Utils;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;
import org.opencv.imgproc.Imgproc;

Would really appreciate any sort of help. Thanks DanS


0 commentaires:

Enregistrer un commentaire