質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

635閲覧

AndroidでOpenCV4.5.5を動かす

ToyoKskKN

総合スコア28

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2022/03/18 08:44

編集2022/03/23 11:48

AndroidでOpenCV4.5.5を使って写真を撮って円検出を行おうとしています。

OpenCVを使うためにはOpencvLoaderの初期化が必要だと理解していますがいまいちやり方が分かっていません、どなたかご教授いただければ幸いです。

参考URL
参考1
参考2

環境
Android Studio Bumblebee | 2021.1.1 Patch 1
Build #AI-211.7628.21.2111.8139111, built on February 2, 2022
Runtime version: 11.0.11+9-b60-7590822 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 8
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin (211-1.6.10-release-923-AS7442.40)

Build API(32API)

試したコード

Kotlin

1 private val mLoaderCallback: BaseLoaderCallback = object : BaseLoaderCallback(this) { 2 override fun onManagerConnected(status: Int) { 3 when (status) { 4 SUCCESS -> { 5 Log.i(TAG, "OpenCV loaded successfully") 6 7 } 8 else -> { 9 super.onManagerConnected(status) 10 } 11 } 12 } 13 } 14 public override fun onResume(){ 15 super.onResume() 16 OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_4_0, this,mLoaderCallback) 17 }

また
app\libs

sdk\native\libs
の中身をコピーしましたが駄目でした。

どうぞよろしくお願いします。


追記
情報足りなくて申し訳ないです・
実行結果ですが、Buildは成功するのですがアプリ実行時に
「Package not found」と出てきてInstallをするかの選択肢が出るのですが
YESを押してもOpenCV Manager のインストール失敗 と出る状況です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/03/18 09:31

何がどううまくいかないのでしょうか? ビルドに失敗しますか? または、動かしたらクラッシュするのでしょうか? エラーメッセージは出てませんか? また、参考 1 にある OpenCVLoader.initDebug() は試しましたが?
hoshi-takanori

2022/03/22 20:22

OpenCVLoader.initAsync は Play Store から OpenCV Manager というアプリ (のふりをした OpenCV 共有ライブラリ?) をダウンロードして使うもののようですが、肝心の OpenCV Manager は 5 年以上前に Play Store から削除されており、今は使えないようです。(それなら削除するなり、ドキュメントに書くなりして欲しい…。) https://github.com/opencv/opencv/issues/20491 OpenCVLoader.initDebug は OpenCV SDK についてくる libopencv_java4.so をロードするもので、これが「デバッグ用」とされているのはたぶん機能的な問題ではなく、OpenCV のすべて (?) の関数を含む巨大なライブラリになってるので、アプリを配布する際には実際に使用する関数だけを集めた .so を自分で作ることが推奨されているようです。(とはいえ動くことは動くので、それで良いのかも…?)
ToyoKskKN

2022/03/23 01:11

ご指摘の通りinitAsyncではなくinitDebugの方は通っているようです。 ただ円検出のHoughCirclesが失敗しているようでした。 また試して新たに質問等をしてみようと思います。
guest

回答1

0

自己解決

ご指摘の通り、非同期でLoadする場合はGooglePlayからパッケージをインストールするようですが現在サポート外になっておりうまくいかないです。
libs内のsoファイルをコピーして、initDebugでLoadすると成功していました。
お騒がせしました。

投稿2022/03/23 02:47

編集2022/03/23 02:48
ToyoKskKN

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問