OpenCV Manager無しでAndroid+OpenCV【Eclipse】

はじめに

OpenCVを普通にAndroidで使うとすると、OpenCV Managerをインストールすることになると思います、それを前提にした情報はいっぱいあるのですが、今回OpenCV Managerをユーザにインストールさせる事はNGだったため、OpenCV Manager無しで利用する方法をまとめました。

※要するにOpenCVを静的ビルドする方法です。Eclipseでのやり方でAndroidStudioはやり方が違います。

OpenCV公式にも静的ビルドする方法があるのですが、私の英語力が足りないせいか手順通りやってもうまくいきませんでした。

Android NDKを準備(既に有る方は飛ばして下さい)

Android NDK下記からダウンロードします。※今回はandroid-ndk-r10e-darwin-x86_64.binをダウンロードしました。

https://developer.android.com/ndk/downloads/index.html

同ページに記述がありますが、下記コマンドを叩いてbinを展開します、展開には数分かかります。

 完了するとandroid-ndk-r10eが出来上がるので、任意の場所に配置して下さい。

次にandroid-ndk-r10eの中にあるndk-buildにパスを通します。

 

OpenCV for Androidをインポート

この記事を探しに来ている方は、もうやってる気がしますが念のため。

http://opencv.org/downloads.htmlからOpenCV for Androidをダウンロードします。今回は2.4.11にしました。

解凍して、Eclipseでインポートします。色々インポートできますがOpenCV Library – 2.4.11だけでOKです。

そしたらOpenCVを使いたいプロジェクトのPropertiesを開いて、AndroidのLibraryから、Addを選んで先ほどインポートしたOpenCV Library – 2.4.11を選択します。

静的ビルド

 いよいよ本題に入ります。

ここからはOpenCVを使いたいプロジェクトに対する操作になります。

・プロジェクトにjniディレクトリを作成します。

・jniディレクトリの中身にAndroid.mkファイル作ります。

・Android.mkは下記を記述します。

・jniディレクトリの中身にApplication.mkファイルを作ります。

・Application.mkは下記を記述します。

 ・ここまで行ったら、ターミナルで対象プロジェクトまで移動してから下記を実行します。

 特にエラーにならなければ静的ビルドは成功です。プロジェクトのlibsディレクトリにarmeabi-v7aディレクトリができているかと思います。

 Android側で読み込み

静的ビルドしただけでは動作しませんので、読み込むサンプルです。

 

最後に

AndroidStudioのほうが良いのですが、今回の場合Eclipseを使わなければいけなかったため、情報が少なくて大変でした、役に立てば幸いです。

もちろんOpenCV Managerを使えるなら使ったほうが、アプリの容量も下げれて良いかと思います。ただアプリを使うユーザのリテラシーが低めなら使わない方が無難でしょう。

●この記事を書いた人