AndroidでOpenCV 中編 OpenCV開発環境設定

AndroidでOpenCVの続きです。
中編て変な響きですね。
序破急とかにすればよかったかも(T_T)


端末:HTC-magic( Google Developer Day 2009で配られた試作品。 HTC-03Aと同型)
開発環境:Eclipse Version: 3.4.2 Build id: M20090211-1700 + android-sdk-windows-r04 + android-ndk-1.6_r1
開発OS:Windows Vista sp2

命題:
1.Androidのネイティブ環境を整えよ(前編の記事)
2.OpenCVの開発環境を整えよ(中編の記事)
3.ネイティブを使ってARに挑戦せよ(後編の記事)

OpenCVの開発環境を整えよ

やることリスト
1.偉大なる先人様よりコンパイル環境を頂く
2.コンパイルして、OpenCVのスタティックリンクファイルを作成する
3.ndkへ配置する

1.偉大なる先人様よりコンパイル環境を頂く
以下に偉大なる先人様が作成されたndkのコンパイル環境があるのでダウンロードする。

http://www.noritsuna.com/archives/2009/09/opencv_ver11_fo.html
画面の下の方にある、「OpenCVForAndroidNDK-0.1-src.zip」のリンクをクリックします。


2.コンパイルして、OpenCVのスタティックリンクファイルを作成する
前回の記事通り環境を作成するか、解凍してソースとメイクファイルをndkルート/apps/ 配下に解凍してCygwinから
メイクしましょう。ソースはjniディレクトリを作成し、その配下に配置します。
結構時間がかかります。気長に待ちましょう。

終了したらndkルート/out/apps/プロジェクト名/ 配下に以下のaファイルがあることを確認します。
libcv.a
libcvaux.a
libcvhighgui.a
libcvml.a
libcxcore.a

soファイル不要です。

このままでもいいのですが、過去の資産を生かすために以下の2ファイルをリネームしました。
・libcvml.a → libml.a
・libcvhighgui.a → libhighgui.a

3.ndkへ配置する
3-1 ライブラリの配置
コンパイルで生成されたaファイルを以下のディレクトリへ配置します。

ndkルート\build\platforms\android-3\arch-arm\usr\lib
1.6のAndroidの場合はandroid-4でもいいらしいですが、未確認です。

3-2 ヘッダの配置
jni配下のソースファイルのうち、以下のヘッダファイルを配置します。

・cv/include配下のファイル全て
・cvaux/include配下のファイル全て
・cxcore/include配下のファイル全て
・ml/include配下のファイル全て
・otherlibs/highgui/のhファイル全て

 配置先
ndkルート\build\platforms\android-3\arch-arm\usr\include
1.6のAndroidの場合はandroid-4でもいいらしいですが、未確認です。

これで、AndroidでもCygwinやLinuxのようにOpenCVのコンパイル・リンクができます。
Android.mkには以下の1行を追記してください。
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -lcxcore -lcv -lcvaux -lhighgui -lml
当然、マシンラーニングを使用しないときは、-lmlを消すなど、使用していない
ライブラリはリンクしないようにします。

また、ヘッダですが例えば、#include のように使えます。
Eclipseのパスおよびシンボルに、includeの配置先パスを指定すると、
IplImageなどのメンバ変数が参照できたり、とても便利になります。


OpenCVの資産がある人はガンガンAndroidで動かしましょう。
ただし、cvQueryFrameがないうえ、JavaのCamera.PreviewCallbackは使用に耐えませんが。
んっ、それって全然使えな・・・何でもありません。
それでは。

"AndroidでOpenCV 中編 OpenCV開発環境設定" へのコメントを書く

お名前
メールアドレス
ホームページアドレス
コメント