ビットマップを Android から OpenCV の Mat オブジェクトに単純に変換したかったのです。このトピックは、Stack Overflow でよく扱われます。例えば:
Mat を Android 用の Bitmap Opencv に変換します。
Androidカメラを使用して画像をキャプチャした後、ビットマップをマットに変換します。
templateMatching mattoBitmap opencv for android
さらに多くのことを見つけることができます。この回答の指示に従いましたが、まだ正しい方法で行うことができません。
最小限のコード:
//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;
(注: 画像は、このコード行に提供されるビットマップです)
エラー:
08-07 15:13:59.188: E/AndroidRuntime(2115): 致命的な例外: メイン
08-07 15:13:59.188: E/AndroidRuntime(2115): java.lang.NoClassDefFoundError: org.opencv.core.Mat
しかし、私のインポートは次のとおりです。
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;
どんな種類の助けにも本当に感謝します。ありがとうDanS