2013-08-07 112 views
4

在這裏有很多這樣的問題,Qt站點和OpenCV站點,但它們都不符合我的情況。 (還有很多是無法回答的。)如何在OpenCV + Qt5上設置在Android上使用攝像頭

我使用OpenCV for Android 2.4.6(可從官方網站下載的預建版本) 在Samsung Galaxy上爲Android(4.1.2)構建原生應用程序注2與Qt 5.0.1的Android (使用QtCreator 2.7.2)在x86_64 Linux主機上。

我已經鏈接到../sdk/native/libs/armeabi-v7a文件夾中的庫。 (我沒有從源代碼構建OpenCV,我只是使用下載的包中的內容)。這包括一個libopencv_androidcam.a庫。 (我也嘗試了libnative_camera_r4.1.1.so共享庫。) 我也下載了市場應用程序「OpenCV Manager」。

示例目錄中的示例.apks適用於我的手機,但我沒有嘗試自行構建它們,因爲我沒有設置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權限才能使其工作?
  • 是否有任何「已知正在工作」的Andoid示例使用本機代碼而不是Java?

非常感謝您的幫助!

+0

「我沒有設置Java開發環境」 - 那麼您打算如何開發Android開發,因爲即使主要爲本地(C/C++)應用程序,也需要Java? –

+0

Qt5自動處理最小Java程序的生成。這也可能是問題的一部分。 –

+0

我認爲你必須使用「CV_CAP_ANDROID」。 – otto

回答

1

我重複我從用戶@Moster在了這裏http://answers.opencv.org答案:

複製libnative_camera_r4.1.1.so從文件夾 /SDK /本地/庫/ armeabi-V7A到你的Qt項目文件夾 /android/libs/armeabi-v7a。確保你還允許在Qt創建者的android_manifest中使用相機 。也許這一切都有幫助

這確實有效。雖然我已經在Manifest.xml中提到了鏡頭權限(或者說Qt項目設置),但是將共享庫複製到項目目錄中的確有竅門。

似乎它在構建過程中找到並鏈接,但沒有從其原始位置複製到設備。 在部署設置(Qt libs only?)或OpenCV管理器應用程序(直接從Java代碼直接調用時才加載正確的庫)的「複製本地Qt庫到設備」既沒有幫助過。

+0

當前(3.0 +)版本的OpenCv中不再有任何'libnative_camera'。我想知道,這個功能是否被刪除了,還是被移動到其他地方? – vsz

+0

你成功用opencv 3.0打開相機嗎? –

相關問題