4

Qt のサイトや OpenCV のサイトには、このような質問がたくさんありますが、私のケースと完全に一致するものはありません。(とにかく、多くは未回答です。)

私は Android 2.4.6 用の OpenCV (公式サイトからダウンロード可能なビルド済みバージョン) を使用して、Android 用の Qt 5.0.1 を搭載した Samsung Galaxy Note 2 (QtCreator 2.7 を使用) で Android (4.1.2) 用のネイティブ アプリをビルドしています。 2) x86_64 Linux ホスト上。

../sdk/native/libs/armeabi-v7a フォルダー内のライブラリーにリンクしました。(ソースから OpenCV をビルドしたわけではありません。ダウンロードしたパッケージに含まれていたものを使用しているだけです)。これには libopencv_androidcam.a ライブラリが含まれます。(また、libnative_camera_r4.1.1.so 共有ライブラリも試しました。) マーケット アプリ「OpenCV Manager」もダウンロードしました。

サンプル ディレクトリのサンプル .apk は私の携帯電話で動作しますが、Java 開発環境をセットアップしていないため、自分でそれらを構築しようとはしていません。

ステートメントを含むアプリケーションを起動するcv::VideoCapture inputCapture(CV_CAM_ANDROID);と、次のエラーが表示され、カメラ入力がありません。

E/OpenCV::camera(15299): CameraWrapperConnector::connectToLib ERROR: cannot dlopen camera wrapper library
E/OpenCV::camera(15299): Native_camera returned opening error: 4

私の質問:

  • これは機能するはずですか?多くのバグ レポートを見てきましたが、すべて古い OpenCV バージョンと新しい/古い Android バージョンでした。この電話モデルで動作していることが見られた場合のボーナスポイント.
  • これは、ダウンロードした OpenCV Android SDK ですぐに使用できますか? または、いくつかの特別なオプションを使用してソースから OpenCV をビルドする必要がありますか? (どれ?)
  • 電話自体に特別なライブラリ バージョンが必要ですか? これを機能させるには、デバイスへの root アクセスが必要ですか?
  • Java の代わりにネイティブ コードを使用する「動作することがわかっている」Andoid の例はありますか?

助けてくれてありがとう!

4

1 に答える 1

1

http://answers.opencv.orgでユーザー @Moster から得た回答をここで繰り返します。

libnative_camera_r4.1.1.so をフォルダー /sdk/native/libs/armeabi-v7a から Qt プロジェクトのフォルダー /android/libs/armeabi-v7a にコピーします。Qt クリエーターの android_manifest でカメラも許可していることを確認してください。多分これはすべて役立つ

これは確かに機能します。Manifest.xml (または Qt プロジェクト設定) でのカメラのアクセス許可については既に説明しましたが、共有ライブラリをプロジェクト ディレクトリにコピーすることでうまくいきました。

ビルド中に見つかってリンクされているようですが、元の場所からデバイスにコピーされていません。デプロイ設定の「ローカル Qt ライブラリをデバイスにコピー」(Qt ライブラリのみ?) も OpenCV マネージャー アプリ (Java コードから直接呼び出されたときに適切なライブラリのみをロードしますか?) も以前は役に立ちませんでした。

于 2013-08-09T08:24:02.207 に答える