OpenCVのビルド
こんにちは。貴之です。
OpenCV(特に顔検出)+Androidを自分の課題としています。
特に個人の検出はPicasaをはじめ、世の中にいろいろあるようです。
面白いのがこちら。
驚いたのがイギリスのサリー大学のZdenek Kalalさんのこれには、驚愕しました。
私の方はなんとかOpenCVのCVCameraを起動できたところです。
四苦八苦しましたが、以下やった手順です。
①K3の手順通りCygwinを入れておきます
②NDKとOpenCV2.2をインストールします
OpenCV2.2同梱のREADME.android.txtに
以下のように書いてある通り、C++が拡張されたNDKr4しかコンパイルできないようです。
--------------------------------------------------------------------
Make sure to set the path in the cache for the crystax ndk available
here:
http://www.crystax.net/android/ndk-r4.php
--------------------------------------------------------------------
上記URLからNDKr4を落とします。
OpenCV2.2についてですが、SVNから最新を落とすと、一部記述をコメントアウトしないとビルドエラーを起こしてしまうため、今回はこちらの版を使用しました。
それから
bzip2 -dc OpenCV-2.2.0.tar.bz2 | tar xvf -
と解凍しました。
それをCygwinのユーザーのルートにNDKとOpenCV2.2のディレクトリを
cygwin─home─┬android-ndk-r4-crystax
└OpenCV-2.2.0
のようにおきます。
このようにしなくてもよいですが、面倒なパスの記述の書き換えが不要なので、このようにデフォルトの配置にしました。
③NDKのパスを環境変数で設定しておく
ex)C:\cygwin\home\<ユーザー>\android-ndk-r4-crystax
を環境変数のPathに設定しておきます。
試しに
android-ndk-r4-crystax\samples\hello-jni\jni
配下で
ndk-build
としてみて、正常にコンパイルできればOKです。できないと以下の作業に失敗します。
④OpenCVライブラリのコンパイル
OpenCV-2.2.0\androidのディレクトリ配下で、README.android.txtに書いてある通り
--------------------------------------------------------------------
mkdir build
cd build
cmake ..
make
--------------------------------------------------------------------
とするとandroid-jni\libs\armeabiとarmeabi-v7aの下にそれぞれ
libandroid-opencv.so
が生成されました。
#こちら本当に参考になりました。有難うございます。
⑤サンプルCVCameraのコンパイル
OpenCV-2.2.0\android\apps\CVCamera
配下で
make
とやるとコンパイルが走ります。
libs配下に
libcvcamera.so
が生成されていればOKです。
⑥OpenCVをeclipseのプロジェクトに参加させる
eclipseを開いて先ほど④でコンパイルしたプロジェクト(android-jni)を
File->New->Android Project->Create project from existing source
で指定してプロジェクトに参加させます。
プロジェクトのプロパティを開いて
Androidをクリックし、下の方にあるIs Libraryにチェックを入れます。
⑦サンプルCVCameraをプロジェクトに参加させる
手順⑤で生成したプロジェクト(CVCamera)を手順⑥と同じようにひとまずプロジェクトに参加させます。
同じようにプロジェクトのプロパティを開いて
Androidをクリックし、今度は下の方にあるAddボタンをクリックします。
手順⑥でプロジェクトに参加させたandroid-jniがダイアログに表示されていると思いますので、クリックしてライブラリの追加を行います。
#Is Libraryはここではチェックしません。
#Java Build Pathでlibandroid-opencv.soを指定すると起動時に落ちてしまいます。私はここではまってしまいました。
#こちらを読まれることをお勧めします。
⑧いよいよサンプル起動
実機を接続しつつCVCameraのプロジェクトを右クリックして
Run As->AndroidApplicationで起動します。
やっと入り口といったところでしょうか。
OpenCV(特に顔検出)+Androidを自分の課題としています。
特に個人の検出はPicasaをはじめ、世の中にいろいろあるようです。
面白いのがこちら。
驚いたのがイギリスのサリー大学のZdenek Kalalさんのこれには、驚愕しました。
私の方はなんとかOpenCVのCVCameraを起動できたところです。
四苦八苦しましたが、以下やった手順です。
①K3の手順通りCygwinを入れておきます
②NDKとOpenCV2.2をインストールします
OpenCV2.2同梱のREADME.android.txtに
以下のように書いてある通り、C++が拡張されたNDKr4しかコンパイルできないようです。
--------------------------------------------------------------------
Make sure to set the path in the cache for the crystax ndk available
here:
http://www.crystax.net/android/ndk-r4.php
--------------------------------------------------------------------
上記URLからNDKr4を落とします。
OpenCV2.2についてですが、SVNから最新を落とすと、一部記述をコメントアウトしないとビルドエラーを起こしてしまうため、今回はこちらの版を使用しました。
それから
bzip2 -dc OpenCV-2.2.0.tar.bz2 | tar xvf -
と解凍しました。
それをCygwinのユーザーのルートにNDKとOpenCV2.2のディレクトリを
cygwin─home─
└OpenCV-2.2.0
のようにおきます。
このようにしなくてもよいですが、面倒なパスの記述の書き換えが不要なので、このようにデフォルトの配置にしました。
③NDKのパスを環境変数で設定しておく
ex)C:\cygwin\home\<ユーザー>\android-ndk-r4-crystax
を環境変数のPathに設定しておきます。
試しに
android-ndk-r4-crystax\samples\hello-jni\jni
配下で
ndk-build
としてみて、正常にコンパイルできればOKです。できないと以下の作業に失敗します。
④OpenCVライブラリのコンパイル
OpenCV-2.2.0\androidのディレクトリ配下で、README.android.txtに書いてある通り
--------------------------------------------------------------------
mkdir build
cd build
cmake ..
make
--------------------------------------------------------------------
とするとandroid-jni\libs\armeabiとarmeabi-v7aの下にそれぞれ
libandroid-opencv.so
が生成されました。
#こちら本当に参考になりました。有難うございます。
⑤サンプルCVCameraのコンパイル
OpenCV-2.2.0\android\apps\CVCamera
配下で
make
とやるとコンパイルが走ります。
libs配下に
libcvcamera.so
が生成されていればOKです。
⑥OpenCVをeclipseのプロジェクトに参加させる
eclipseを開いて先ほど④でコンパイルしたプロジェクト(android-jni)を
File->New->Android Project->Create project from existing source
で指定してプロジェクトに参加させます。
プロジェクトのプロパティを開いて
Androidをクリックし、下の方にあるIs Libraryにチェックを入れます。
⑦サンプルCVCameraをプロジェクトに参加させる
手順⑤で生成したプロジェクト(CVCamera)を手順⑥と同じようにひとまずプロジェクトに参加させます。
同じようにプロジェクトのプロパティを開いて
Androidをクリックし、今度は下の方にあるAddボタンをクリックします。
手順⑥でプロジェクトに参加させたandroid-jniがダイアログに表示されていると思いますので、クリックしてライブラリの追加を行います。
#Is Libraryはここではチェックしません。
#Java Build Pathでlibandroid-opencv.soを指定すると起動時に落ちてしまいます。私はここではまってしまいました。
#こちらを読まれることをお勧めします。
⑧いよいよサンプル起動
実機を接続しつつCVCameraのプロジェクトを右クリックして
Run As->AndroidApplicationで起動します。
やっと入り口といったところでしょうか。
スポンサーサイト