OpenCV for android 2.4.3

そろそろandroid側のOpenCVも覗いておこうと思い、インストールしてみた。

version2.2以降、Java APIが整備されてきたおかげで、基本的にJava APIでアプリケーションを書けるはずだが、OpenCVの提供するサンプルアプリケーションを動かすためにはNDKを使ったビルドが必要なので、前提としてNDKとEclipse用のプラグインをインストールして、NDKのロケーションをEclipseに教えておくおく必要がある。

OpenCV for androidをインストールする

といっても、以下のリンクからアーカイブをダウンロードして適当な位置に展開するだけだ。
OpenCV for android 2.4.3

中身は既にEclipseで使えるように構成されており、sampleアプリケーションもそのままEclipseのプロジェクトとして読み込むことができる。

OpenCVのプロジェクトをインポートする

Eclipseのimport→Existing Projects into workspaceで先ほど展開した/OpenCV-2.4.3-android-sdkを指すことで全てのプロジェクトをインポートすることができる。


プロジェクトの内訳としては

  • OpenCV Library - 2.4.3

これがライブラリィ本体 (IsLibrary=On)であり、他は全て実際に実行することのできるサンプルアプリケーションだ。

  • OpenCV Sample - color-blob-detection
  • OpenCV Sample - face-detection
  • OpenCV Sample - image-manipulations
  • OpenCV Tutorial 0 - Android Camera
  • OpenCV Tutorial 1 - Add OpenCV
  • OpenCV Tutorial 2 - Use OpenCV Camera
  • OpenCV Tutorial 3 - Add Native OpenCV
  • OpenCV Tutorial 4 - Mix Java+Native OpenCV

このうち幾つかはJNIを通してC++でコードが書かれているのでビルド〜実行にはNDKが必要となる。
従って、プロジェクトでNDKのコマンド(ndk-build)を利用するのだが、この肝心なコマンドへのパスが設定されていないため、必ずエラーとなってしまう。

なので、同コマンドを要求するプロジェクトに関しては以下のように、Properties→C/C++Build→Environmentにて、ndkへのパスを設定してやる必要がある。

(コマンドからコンパイルする時のようにbashのプロファイル等に設定した環境変数は参照してくれないようだ)

ここまでで、全てのアプリケーションのコンパイルが通るはずだ。もしエラーが出る場合は使用するSDKJavaのコンパイル(JDK1.6ベースである必要がある)を見直す必要がある。

これでインストールは終了。ソースコードをビルドする場合のiOSに比べると100倍は簡単に使える。