実行環境
2016/07/07現在
- Mac OSX El Capitan(おそらくWindowsでも大丈夫です)
- Android Studio for Mac V2.1.1
- OpenCV 3.1
OpenCVのダウンロード
OpenCV公式サイトから、OpenCV for Androidをクリックして次ページでしばらく待つとインストール開始。
Android Studioで新規プロジェクトを作成
プロジェクト名は適当で構いません。プロジェクト名と保存場所を入力したら、Nextを押し、Phone and Tabletの項目のMinimum SDKのAPI Levelを覚えておいてください。(この場合だと23)
引き続きレイアウトをEmpty、メインクラスの名前を適当に入力したら、プロジェクト生成完了です。
OpenCVモジュールの導入
プロジェクト生成が終了したら、「File > New > Import Module」を選択し、
次の画面のSource Directoryに「(OpenCVを展開した場所)/OpenCV-android-sdk/sdk/java」と入力。
私の場合は
Users/(ユーザ名)/Documents/OpenCV-android-sdk/sdk/java
となります。Module nameは適当で結構です。
次画面でFinishを押すと、モジュールの取り込みは完了です。
OpenCVライブラリをプロジェクトに追加
ダウンロードしたOpenCVフォルダの中にある「sdk > native > libs」をコピーして、
Android Studioプロジェクトの「(プロジェクト名) > app > src > main」にペースト。そして、このフォルダの名前を「jniLibs」に変更します。
モジュールの依存関係を設定する
Android Studioの「File > Project Structure」を開き、左側にある「app」を選択した上で、右上の「Dependencies」タブを開きます。右カラム左下の「+」ボタンを押し、「Module dependency」を選択すると、先ほど取り込んだライブラリが表示されるので、それを選択して「OK」を押す。
エラーが出ます
前項目までで説明が終わっている記事が多いですが、大抵エラーが出てしまいます。
おそらく前項目を終えた後に、コンソールにこのようなエラーが表示されています。
これを処理していきましょう。
プロジェクトフォルダの、OpenCVモジュールの中に入って、「build.gradle」ファイルを開いてください。
おそらく中身がこのようになっているかと思います。
一方で、appフォルダ内の「build.gradle」ファイルを見てみてください。
そして最後に、はじめに指定したメインクラスを開き、
上の黄色い警告の青文字「Try Again」を押すと、警告がすべて消えるはずです。
OpenCV動作確認
メインクラスのonCreate関数を以下のように編集し、実行してください。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(!OpenCVLoader.initDebug()){
Log.i("OpenCV", "Failed");
}else{
Log.i("OpenCV", "successfully built !");
}
}
コンソールに「OpenCV: successfully built !」が出力されれば導入完了です。
(ビルドに1、2分ほど時間がかかります...)
おつかれさまでした!
追記
Android実機ではOpenCV Managerのインストールが自動的にGoogle Playを介して行われるので正常に動作するのですが、エミュレーターで実行しようとするとエラーが発生しアプリが落ちます。
これはAndroid StudioのSDKに、OpenCVのAPKをインストールすることにより解決できます。
まず、Android StudioのSDKの場所を確認します。
「File > Project Structure...」をクリックし、「SDK Location」の項目で場所を確認できます。
(この場合は/Users/Kodai/Library/Android/sdkです。)
ここで、ターミナル(Windowsはコマンドプロンプト)を起動し、Android StudioのSDKないにある「platform-tools」ディレクトリに移動します。(以下は私の環境の場合なので適宜調整してください)
$ cd /Users/Kodai/Library/Android/sdk/platform-tools
次に、インストールしたOpenCVフォルダ内のAPKをインストールします。(こちらも適宜変更してください)
$ adb install ~/Documents/hack_u/OpenCV-android-sdk/apk/OpenCV_3.1.0_Manager_3.10_x86.apk
apkファイルは、実行するエミュレーターによって指定します。今回はAndroid Nexus 5x API 23 x86で実行していますので、このapkをインストールしました。
他にも以下の様な種類があります。
- OpenCV_3.1.0_Manager_3.10_arm64-v8a.apk
- OpenCV_3.1.0_Manager_3.10_armeabi-v7a.apk
- OpenCV_3.1.0_Manager_3.10_armeabi.apk
- OpenCV_3.1.0_Manager_3.10_mips.apk
- OpenCV_3.1.0_Manager_3.10_mips64.apk
- OpenCV_3.1.0_Manager_3.10_x86.apk
- OpenCV_3.1.0_Manager_3.10_x86_64.apk
以上の工程を経て実行すると、エラーなく実行できます。