LoginSignup
4
6

More than 5 years have passed since last update.

Androidで OpenCV

Last updated at Posted at 2016-06-27

この文書について

Androidで OpenCVを使った画像処理を行う実験をしたときのメモ。

あとでもうちょっと親切に書くかもしれないけど、とりあえず howmに書き溜めた箇条書きをちょっと整形しただけ。

手順

OpenCV Android SDKを入手

今回落としたのは 3.1.0。適当なところに展開しておく

OpenCV Managerをインストール

どちらかやりやすい方で

  • SDKの中に入っている apkを adb install
  • google playからインストール

※ OpenCVのライブラリは大きいので、 OpenCV Managerがライブラリを管理してアプリケーションはそれを参照する、という形にしているらしい。商用のアプリケーションだと一つのパッケージに収まっている方が好ましいだろうが、今回は実験なのでその方法は見送り。

プロジェクト作成

OpsnCVStudyとか。 Minimum API Levelは 8とかでも大丈夫っぽい。

OpenCVライブラリ 310をインポート

  • File → New → Import Module
  • SDKのディレクトリ下にある sdk/javaを選択
  • モジュール openCVLibrary310をインポート
  • インポート直後のビルドでエラーが出るが気にしない

manifest

manifestに以下を追加。プロジェクトの API levelが低い時に出るエラーを抑制する

    <uses-sdk tools:overrideLibrary="org.opencv"/>

build.gradle(app)

openCVLibrary310への依存関係を追加

    dependencies {
        ...
        compile project(':openCVLibrary310')
        ...
    }

build.gradle(openCVLibrary310)

compileSdkVersion, targetSdkVersionを最新のものにする。これでインポート時に出ていたエラーが消える

アクティビティ実装

Launch Activityの onResumeでライブラリをロードする。 mLoaderCallbackはコードアシストが適当に生成してくれる

    @Override
    protected void onResume() {
        super.onResume();
        if (!OpenCVLoader.initDebug()) {
            Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
            boolean ret = OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0, this, mLoaderCallback);
            if (!ret) {
              // OpenCV Manager does not exist
            }
        } else {
            Log.d(TAG, "OpenCV library found inside package. Using it!");
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
    }
4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6