Ubuntu 10.10 + Android + OpenCVの環境をセットアップ

bubukumaさんがOpenCV面白いと言っていたので自分も使ってみようと思う。
前提として、Ubuntu10.10がインストールされているマシンにAndroidがセットアップされていること。
参考にしたのはhttp://opencv.willowgarage.com/wiki/Android


1. まず、必要となるソフトをapt-getでインストールする。

$ sudo apt-get install swig
$ sudo apt-get install cmake
$ sudo apt-get install ant

2. 次にAndroid NDKなるものをインストール

$ wget http://www.crystax.net/data/android-ndk-r4-linux-x86-crystax-4.tar.bz2
$ tar xjf android-ndk-r4-linux-x86-crystax-4.tar.bz2

解凍してできたディレクトリをホームディレクトリに移動

$ mv android-ndk-r4-crystax ~/

3. OpenCVをインストール

SVNでソースをとってくる

$ svn co https://code.ros.org/svn/opencv/trunk/opencv/

以下のようにbuildディレクトリを作ってコンパイル。makeに結構時間がかかる。

$ cd opencv/android
$ mkdir build
$ cd build
$ cmake ..
$ make

[100%] Built target ndkと表示されたらビルド完了。

4. android-jniプロジェクトのビルド

まず、android-jniディレクトリに移動してmakeを実行する

$ cd opencv/android/android-jni
$ make

すると以下の様なメッセージが表示される。

ERROR local environement not setup! try:
gedit local.env.mk
Makefile:12: *** Please setup the local.env.mk - the default was just created'.  中止.

このときlocal.env.mkというファイルが作成される。ファイルを開いてホームディレクトリにあるNDKの場所を設定してやる。(以下、変更部分のみ)

#ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax
ANDROID_NDK_ROOT=~/android-ndk-r4-crystax

そしてもう一度

make

最後にプロジェクトを作ってAntでコンパイル

$ sh project_create.sh
$ ant compile

5. サンプルアプリCVCameraをインストール

手順はandroid-jniと同じような感じ。

$ cd opencv/android/apps/CVCamera
$ sh build.sh
$ make
・・・ここでまたlocal.env.mkができるので、android-jniのときと同じようにANDROID_NDK_ROOTを設定。
$ make

次にプロジェクトを作ってAntでビルド。これでCVCameraアプリのビルド完了。

$ sh project_create.sh
$ ant debug

そして、次のコマンドでサンプルアプリをAndroidにインストール!

ant install

すると!

     [exec] * daemon not running. starting it now *
     [exec] * daemon started successfully *
     [exec] 1688 KB/s (6823471 bytes in 3.945s)
     [exec] 	pkg: /data/local/tmp/CVCamera-debug.apk
     [exec] Failure [INSTALL_FAILED_OLDER_SDK]

エラー!
どうやらAndroid 2.1以上じゃないと動かないらしい!AndroidManifest.xmlの設定でminSdkVersion=7となっている。

私の持っているIS01じゃダメなのですorz
ここまでやったのに。。

ただ、Android 2.1以上を持っている人は、ここまでできればきっと成功するはず。試してみくださいorz