2011/06/15

Android用 OpenCV2.2のインストール

この前のOpenCVのインストールガイドを翻訳していた時に、
Androidも対象になっていたことに気がつきました。

なので今日はAndroid用のOpenCV2.2をセットアップしたいと思います。

svnクライアントとCmakeは既にインストールされていたので、
NDKとOpenCVのソースコードを取得することに。

NDKをAndroid developersからダウンロード。
現時点ではr5cになってました。
/home/kouji/Google/android-ndk-r5c に解凍。

ソースコードをダウンロード。
svn co https://code.ros.org/svn/opencv/trunk/opencv

SWIGをUbuntuソフトウェアセンターで検索。
swigをインストール。

Ant,JDK,AndroidSDKは既にあります。

NDKへのパスをエクスポート。
export ANDROID_NDK=~/Google/android-ndk-r5c 



kouji@kouji-ubuntu:~/Google/opencv/android$ sudo sh ./scripts/cmake_android.sh
loading initial cache file ../CMakeCache.android.initial.cmake
-- Using default path for toolchain /opt/android-toolchain
-- If you prefer to use a different location, please define the environment variable: ANDROID_NDK_TOOLCHAIN_ROOT
CMake Error at android/android.toolchain.cmake:187 (message):
  neither nor /opt/android-toolchain does not exist!
略)

と、いろいろとメッセージが出てきました。

ANDROID_NDK_TOOLCHAIN_ROOT も設定しないとダメみたいですね。
でも、Android-toolchainはどこにあるのやら。


OpenCVのWikiを調べていると、Android experimentalというもの中に、
cd android-cmake/scripts
./get_ndk_toolchain_linux.sh $WORK
という記載がありました。

ファイルをダウンロードして、
get_ndk_toolchain_linux.shの中身を見てみると、

cd $destination/android-ndk-r5b
NDK=`pwd`
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-5 --install-dir=./android-toolchain

となっていました。
Android NDKのbuildフォルダ内にstandalone-toolchainを作るスクリプトがあるみたいです。
コマンドをちょっといじって、

cd ~/Google
./android-ndk-r5c/build/tools/make-standalone-toolchain.sh --platform=android-8 --install-dir=./android-toolchain

とやってみると、
Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying libstdc++ headers and libraries...
Copying files to: ./android-toolchain
Cleaning up...
Done.

toolchainができたようです。

このパスをExportします。

export ANDROID_NDK_TOOLCHAIN_ROOT=~/Google/android-toolchain

OpenCVのAndroidフォルダに移動して再チャレンジ。
もう一回

-- Using default path for toolchain /opt/android-toolchain
-- If you prefer to use a different location, please define the environment variable: ANDROID_NDK_TOOLCHAIN_ROOT
CMake Error at android/android.toolchain.cmake:187 (message):
  neither nor /opt/android-toolchain does not exist!

まだtoolchainが見つからないようです。

ヘルプメッセージに載っていた、シンボリックリンクを作る方式に変更。
sudo ln -s ~/Google/android-ndk-r6c /opt/android-ndk-r5b
sudo ln -s ~/Google/android-toolchain /opt/android-toolchain


またチャレンジ

kouji@kouji-ubuntu:~/Google/opencv/android$ sudo sh ./scripts/cmake_android.sh
loading initial cache file ../CMakeCache.android.initial.cmake
-- Using default path for android NDK /opt/android-ndk-r5b
-- If you prefer to use a different location, please define the environment variable: ANDROID_NDK
-- Using default android API level android-8


~略~
--   GUI: 
--     GTK+ 2.x:                   FALSE
--     GThread:                    FALSE
-- 


~略~
--     Install path:               /opt/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/user/armeabi-v7a
-- 
--     cvconfig.h is in:           /home/kouji/Google/opencv/android/build
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kouji/Google/opencv/android/build
kouji@kouji-ubuntu:~/Google/opencv/android$ 

Makefileができたー

cd build
sudo make -j8

5分ぐらいでビルド完了。
(ビルド中はPCの全コアが100%近く使われてました。makeはマルチコア対応のようです)

インストールします。
sudo make install

Installing: /opt/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/user/armeabi-v7a/share/opencv/3rdparty/lib/liblibtiff.a
等と表示され、ライブラリがインストールされました。

インストールは無事終わったようなので、今度サンプルを動かしてみたいと思います。

ではまた。



2011-06-21 追記
Android+OpenCV2.2の組み合わせで、独自のプロジェクトを作った場合の
使い方がよく分からず、結局Android+OpenCV1.1の組み合わせに戻ってしまいました。
残念。。。

2011-06-23
OpenCV2.3でもう一度挑戦したら、何とか出来ました。


0 件のコメント:

コメントを投稿