Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
55
Help us understand the problem. What is going on with this article?
@kassy_kz

OpenCV for Android の導入方法

More than 5 years have passed since last update.

本稿では AndroidでOpenCVを使うための導入方法について解説します。

OpenCVとは

OpenCVとはOpen Computer Visionの略で開発元はIntel。
画像処理などを扱うためのライブラリです。

バージョン情報

本稿で確認したバージョンは2.4.6です。

導入方法

ダウンロード

まずはこちら( http://opencv.org/downloads.html )からOpenCV-2.4.6-android-sdk-r2.zipをダウンロード、展開

スクリーンショット(2013-08-03 11.42.00).png

解凍した中のsdk/java/ をEclipseにインポート

このとき、Copy projects into workspaceのチェックをつけておくと、
 後々面倒になるので、チェックを外しておきます。

スクリーンショット(2013-08-03 12.52.03).png

そのままではビルドエラーになることがあります

プロジェクトのproperties->Androidからビルドターゲットを選択して
 再ビルドすれば治るはずです。

スクリーンショット(2013-08-03 11.54.13).png

サンプル動作方法

サンプルはダウンロードしたファイル群の中の、 samples/ 配下に入っています。まとめてEclipseでインポートします。

スクリーンショット(2013-08-03 12.01.06).png

ビルドエラーになることがあります。

 先ほどと同じくプロジェクトのproperties->Androidからビルドターゲットを選択。  また、インポートの仕方によっては、Libraryのリンクでエラーがでていることがあります。その際は一旦LibraryをRemoveしてから、再度Addで最初のライブラリプロジェクト(OpenCV Library 2.4.*)を追加します。

スクリーンショット(2013-08-03 12.04.15).png

アプリインストール

サンプルアプリをインストールして実行しようとすると、ダイアログがでて
 GooglePlayからOpenCV Managerをインストールするように言われます。
 これが何者かは後述予定。とりあえず言われたとおりインストールします。

スクリーンショット(2013-08-03 12.12.13).png

アプリインストール(補足)

 一部のサンプルアプリはNDKビルドが必要です。
実行できないときはNDKビルドしてみて下さい。
なお、NDKビルドのためにはパスにスペースがあると不味いので、
もしパスにスペースがあれば(最初のインポート時にコピーしてしまった場合はそうなる)プロジェクト名変更が必要です。残念ですね。

なお、現時点では、MacOSでのビルドは失敗します。
ですのでLinux上でNDKビルドを行います。
NDKビルドだけLinux上でやって、ビルド成果物であるsoファイルだけMac上のAndroidSDKに持ってくるのはあり。

 例えばface-detection配下でNDKビルドすると、libs/armeabi-v7a/libdetection_based_tracker.soが生成されます。これを(パスそのままで)移植してきます。(移植の場合はアクセス権注意)

スクリーンショット(2013-08-03 21.14.07).png

これで無事サンプルアプリが動作するはずです。
下記画像はface-detectionを動かしたときのスクリーンショット。
モデルはJOJO。

スクリーンショット(2013-08-03 21.30.38).png

以上、お疲れ様でした。

55
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kassy_kz

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
55
Help us understand the problem. What is going on with this article?