11

ビットマップを 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

4

2 に答える 2

1

初期化された後でのみ、OpenCV で作業を行うことができます。したがって、次のように初期化する必要があります。

1.コールバックを作成します。

private BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
        switch (status) {
        case LoaderCallbackInterface.SUCCESS:
            //DO YOUR WORK/STUFF HERE 
            break;
        default:
            super.onManagerConnected(status);
            break;
        }
    }
};

2.アクティビティの onResume メソッドでコールバックを初期化する必要があります。

@Override
    protected void onResume() {
        super.onResume();
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this,
                mOpenCVCallBack);
    }

以上です。お役に立てば幸いです:D

于 2014-06-24T08:15:58.953 に答える
0

Android prj構成にOpenCV lib依存関係を追加する必要があります(プロパティ-> Android->ライブラリ-> [opencv andrid prg]を追加)

于 2015-06-25T15:06:00.137 に答える