4

JavaCameraViewを使用せずに、OpenCVを使用してスマートフォンに保存された一部の画像を処理するにはどうすればよいですか?

SDカードに保存した画像を加工して、その結果を画面に表示したい。私はopencv4androidライブラリのチュートリアルに従って実装しました.onCameraFrameメソッドを使用して画像を表示し、CameraViewListenerを実装し、CameraBridgeViewBaseを使用します. ただし、画像を処理したいだけで、カメラを使用して画像をキャプチャしたくありません。これらの要素は不要かもしれないと思います。

カメラを使用せずにOpenCVを使用してopencv4androidライブラリを変更し、保存された画像を処理するにはどうすればよいですか?

4

1 に答える 1

6

誰かがまだ答えを探している場合:

package com.example.ocv4androidwithoutcamera;

import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.InstallCallbackInterface;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.core.Mat;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.widget.Toast;

public class MainActivity extends Activity implements LoaderCallbackInterface {

    protected BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            switch (status) {
            case LoaderCallbackInterface.SUCCESS:
            {
                onOpenCVReady();
            } break;
            default:
            {
                super.onManagerConnected(status);
            } break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume()
    {
        super.onResume();

        Log.i("DEMO", "Trying to load OpenCV library");
        if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4, this, mOpenCVCallBack))
        {
            Log.e("DEMO", "Cannot connect to OpenCV Manager");
        }
    }

    protected void onOpenCVReady(){
        //this should crash if opencv is not loaded
        Mat img = new Mat();
        Toast.makeText(getApplicationContext(), "opencv ready", Toast.LENGTH_LONG).show();

    }

    @Override
    public void onManagerConnected(int status) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPackageInstall(int operation,
            InstallCallbackInterface callback) {
        // TODO Auto-generated method stub

    }

}

Project Properties => Android => Library に opencv ライブラリを追加することを忘れないでください。

于 2014-03-02T10:58:51.773 に答える