25
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android StudioでOpenCVを使う

Last updated at Posted at 2019-06-06

はじめに

AndroidStudioでOpenCVを導入する方法についてのメモです。
qiitaにもいくつか投稿がありますが、AndroidStudioのバージョンやOpenCVのバージョン等によって、
微妙に皆設定が違うようなので、ここでは自分が行った設定についてメモしておきます。

動作確認環境

  • Windows 10 64bit
  • Android Studio 3.4.1 (update前の3.2.1でも動作確認済)
  • OpenCV 4.1.0

Android Stduioはインストール済みであることが前提。

OpenCVのダウンロード

下記どちらからでもダウンロード可。Android版を選択。

ダウンロード後は解凍して、適当なところに配備。後でAndroid StudioからImport。

新規プロジェクトの作成

  • メニューバーから File -> New -> New Project -> Empty Activity
  • Name, Packag name等は適宜設定。Languageは「Java」、Minimum API levelは「28」 にしました
    • ただ、28だと新しすぎるので、もう少し下げても良いかも。ちなみに15だと低すぎてエラー発生。
  • Finishボタンを押したら、Buildが実行されしばらく待ちます
  • Android端末をUSBでPCに接続して、右上の▶か、メニューバーからRun->Runを実行すると「Hello World」が表示されることを確認

OpenCVの取り込み

  • メニューバーから File -> New -> Import Module
  • Source directoryには、上記で解凍したzipのパスからsdkフォルダを指定
  • Module nameには、適宜わかりやすい名前をつける。ここでは「opencv」
    (デフォルトでは「:sdk」になっているので、何のsdkか分かりづらい)

opencv.png

  • Finishボタンを押す
  • index構築でしばらく時間がかかるので終わるのを待つ

モジュールの依存関係設定

  • メニューバーから File -> Project Structure を選択
  • 左側のメニューから Dependencies -> app 選択 (Android Studio 3.4.1では3.2系とUIが違った)
  • 右上の + アイコンをクリックして 3: Module dependency を選択

OpenCV_module_dependencies.png

  • 上記で設定したModule name (opencv)を選択してOK

OpenCV_module_dependencies2.png

  • OKした後はこんな感じに追加される

OpenCV_module_dependencies3.png

その他の設定

OpenCVのバージョン3以下(?)で必要だったらしい下記対応はやらなくても動作

  • jniLibsへのsoライブラリのコピー
  • build.gradleのsdkのバージョン変更

動作確認

画面にOpenCVのバージョンを表示するサンプル

  • 個人的にLinearLayoutが好きなので、そこにTextView追加
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

MainActivity.java
package com.example.myopencv;  // ★適宜自分のパッケージ名に変更

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import org.opencv.android.OpenCVLoader;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textView = findViewById(R.id.text1); 
        textView.setText(OpenCVLoader.OPENCV_VERSION);  // ★OpenCVのバージョンを設定
    }
}

  • 今回は4.1.0を入れたので、画面には4.1.0が表示

さて、これからOpenCVをどう試すかな…

25
26
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?