fc2ブログ
Entry Navigation

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で起動します。

やっと入り口といったところでしょうか。
スポンサーサイト



15
2011
comment
6