2011年9月24日土曜日

OpenCV for Androidいじってみた

2011/8/12にOpenCV for AndroidのPreBuildの正式版が出ていたので試してみた


OpenCV wiki
http://opencv.willowgarage.com/wiki/Android


Quick Start Tutorial
http://opencv.itseez.com/doc/tutorials/introduction/android_binary_package/android_binary_package.html


sourceforge OpenCV for Android pre build package
http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.3.1/


※現在の最新版はOpenCV-2.3.1-android-bin.tar.bz2

クイックスタートチュートリアルで環境構築の方法が載っているが、真っ更な状態からなので、Androidの開発環境が既に構築済みの人は、上記のPackageをダウンロードしてきて、Eclipseでインポートするだけでデモ3つとチュートリアルの0~2は動く。チュートリアル3と4はNDKを使っているのでNDKの環境構築が必要になる。

なお、Android2.2以上でないと動作はしない。
(※MinSDKVersionを書き換えればTutorial0は動かせなくもないが、それ以外は動かない)

15-puzzle
エッジ検出(Canny)



このプレビルド版で行えることは

①NDKでOpenCVを動かす(Tutorial3)
②OpenCV Java API(Wrapper) (Demo,Tutorial0~2)
③MatをJava←→Cの間で引渡し(Tutorial4)

の3つ

NDKを扱うのは非常に難しいので、とりあえず②のOpenCV Java APIをいじって遊んでみることにする。



以下蛇足

OpenCVはInteが開発・公開したオープンソースのコンピュータビジョン向けライブラリなのだが、C/C++/Python用のライブラリである。

従って、AndroidアプリはJavaで動いているためOpenCVを正規の方法では利用できなかった。
ところが、NDKでAndroid上でC/C++が動くようになったため、OpenCV for LinuxをAndroid向けに移植して動かしたり、JavaCVと呼ばれるOpenCVをJava向けに移植したものをAndroid向けに利用したりと様々考えられてきたが、最近になってようやくまとまってきた模様。

ただ、NDKはまだまだ発展途上であり、ただでさえ扱いづらいNDKの上に更に開発真っ最中のOpenCVを動かそうだなんて恐ろしい。そしてJavaCVは元々使われてない模様で資料も少ない。
どちらにせよOpenCVをAndroidで使うのは簡単ではなさそうだ。

0 件のコメント:

コメントを投稿