OpenCV4 Android SDK

2018-08-26 10:45 更新

本教程旨在幫助您安裝和配置OpenCV4Android SDK。

本指南是使用MS Windows 7編寫的,盡管它也適用于GNU Linux和Apple Mac OS。

本教程假設您已安裝并配置了以下軟件:

  • JDK
  • Android SDK和NDK
  • Eclipse IDE
  • Eclipse的ADT和CDT插件

如果您需要上述任何方面的幫助,您可以參考我們的Android開發(fā)入門指南。

如果您在徹底按照這些步驟后遇到任何錯誤,請隨時通過W3Cshool官方qun或OpenCV Q&A論壇與我們聯(lián)系。我們將竭盡全力幫助您。

Tegra Android開發(fā)包用戶

您可能已經(jīng)使用了NVIDIA發(fā)布的用于Android開發(fā)環(huán)境設置的Tegra Android開發(fā)包(TADP)。

除Android開發(fā)工具之外,TADP 2.0還包括OpenCV4Android SDK,因此可以將其安裝在系統(tǒng)中,您可以跳過本教程的示例部分。

有關TADP的更多詳細信息,請參見“ Android開發(fā)入門指南”。

基本信息

OpenCV4Android SDK軟件包可以開發(fā)使用OpenCV庫的Android應用程序。

包裝內(nèi)容的結構如下所示:

OpenCV-2.4.9-android-sdk
|_ apk
|   |_ OpenCV_2.4.9_binary_pack_armv7a.apk
|   |_ OpenCV_2.4.9_Manager_2.18_XXX.apk
|
|_ doc
|_ samples
|_ sdk
|    |_ etc
|    |_ java
|    |_ native
|          |_ 3rdparty
|          |_ jni
|          |_ libs
|               |_ armeabi
|               |_ armeabi-v7a
|               |_ x86
|
|_ LICENSE
|_ README.android
  • sdk 文件夾包含用于Android的OpenCV API和庫:
  • sdk/java 文件夾包含一個提供OpenCV Java API的Android庫Eclipse項目,可以導入到開發(fā)人員的工作區(qū);
  • sdk/native 文件夾包含用于ARM-v5,ARM-v7a和x86架構的OpenCV C ++標頭(用于JNI代碼)和原生Android庫(* .so和* .a);
  • sdk/etc 文件夾包含與OpenCV分發(fā)的Haar和LBP級聯(lián)。
  • apk 文件夾包含應安裝在目標Android設備上的Android軟件包,以通過OpenCV Manager API啟用OpenCV庫訪問(見下面的詳細信息)。

在可以訪問Google Play市場(和互聯(lián)網(wǎng))的生產(chǎn)設備上,這些軟件包將使用OpenCV Manager API在應用程序的第一次啟動時從Market安裝。但是沒有Market或Internet連接的devkits需要手動安裝這些軟件包。如果需要,安裝Manager.apk和可選binary_pack.apk??碝anager Selection詳情。

注意
因為OpenCV團隊可能會在Market上發(fā)布更新版本的軟件包,因此從互聯(lián)網(wǎng)進行安裝是比較理想的方式。
  • amples文件夾包含示例應用程序項目及其預構建軟件包(APK)。將它們導入Eclipse工作區(qū)(如下所述),并瀏覽代碼以了解OpenCV在Android上的使用方式。
  • doc文件夾包含PDF格式的各種OpenCV文檔。它也可以在http://docs.opencv.org在線獲得。
注意
最新的文件(每夜制作)位于http://docs.opencv.org/2.4一般來說,它是最新的,但可以參考尚未發(fā)布的功能。
去做:
我不知道這是討論OpenCV管理器的最好的地方

從版本2.4.3開始OpenCV4Android SDK使用OpenCV Manager API進行庫初始化。OpenCV Manager是一種基于Android服務的解決方案,為OpenCV應用開發(fā)人員提供以下優(yōu)勢:

  • 緊湊的apk-size,因為所有應用程序使用與Manager相同的二進制文件,并且不將本機庫存儲在其中;
  • 在所有支持的平臺上自動啟用硬件特定優(yōu)化;
  • 自動更新和錯誤修復;
  • 可信的OpenCV庫源碼。OpenCV的所有包都在Google Play上公布;

手動OpenCV4Android SDK設置

獲取OpenCV4Android SDK

  1. 訪問SourceForge上的OpenCV下載頁面并下載最新的可用版本。目前它是OpenCV-2.4.9-android-sdk.zip。
  2. 使用OpenCV開發(fā)為Android創(chuàng)建一個新的文件夾。對于本教程,我們將OpenCV SDK解包到C:\Work\OpenCV4Android\目錄中。
    注意
    更好地使用沒有空格的路徑。否則您可能會遇到ndk-build問題。
  3. 將SDK歸檔解壓縮到所選目錄中。

    您可以使用任何流行的歸檔器(例如使用7-Zip)來解壓縮它:

OpenCV4 Android SDK

在Unix上,您可以使用以下命令:

unzip?/ Downloads / OpenCV-2.4.9-android-sdk.zip

將OpenCV庫和示例導入Eclipse

1、啟動Eclipse并選擇您的工作區(qū)位置。

我們建議您從新的干凈工作區(qū)開始使用OpenCV for Android。例如,可以在打開OpenCV4Android SDK包的文件夾中創(chuàng)建一個新的Eclipse工作區(qū):

OpenCV4 Android SDK

2、將OpenCV庫和樣本導入工作區(qū)。

OpenCV庫作為一個可以使用的Android圖書館項目進行打包。您可以在項目中簡單地引用它。

每個包含的樣本OpenCV-2.4.9-android-sdk.zip都是已經(jīng)引用OpenCV庫的常規(guī)Android項目。按照以下步驟將OpenCV和樣本導入工作區(qū):

  • 右鍵單擊包資源管理器窗口,然后從上下文菜單中選擇導入...選項:

OpenCV4 Android SDK

  • 在主面板中,選擇常規(guī) - >現(xiàn)有項目進入工作區(qū),然后按下一步按鈕:

OpenCV4 Android SDK

  • 在“選擇根目錄”字段中找到OpenCV包文件夾。Eclipse應該自動定位OpenCV庫和示例:

OpenCV4 Android SDK

  • 單擊完成按鈕完成導入操作。
注意
OpenCV樣本確實依賴于OpenCV庫項目,所以不要忘記將其導入到您的工作區(qū)。

單擊完成按鈕后,Eclipse會將所有選定的項目加載到工作空間中,并且在構建OpenCV樣本時必須等待一段時間。只需給一分鐘的Eclipse完成初始化。

OpenCV4 Android SDK

一旦Eclipse完成構建,您將擁有干凈的工作空間而不會造成任何構建錯誤

OpenCV4 Android SDK

運行OpenCV示例

此時您應該可以構建和運行樣品。請記住,面部檢測和教程2 - 混合處理包括一些本機代碼,并需要Android NDK和NDK / CDT插件來構建工作應用程序。如果您尚未安裝這些工具,請參閱Android開發(fā)中的簡介部分。

警告

請考慮一些示例使用Android Java Camera API,可通過AVD訪問。

注意
最近* Android SDK工具,版本19 + *可以運行ARM v7a操作系統(tǒng)映像,但它們不適用于所有Android版本。

那么,從Eclipse運行的樣本很簡單:

  • 將您的設備與Android SDK中的adb工具連接,或創(chuàng)建具有相機支持的模擬器。
  1. 有關Android模擬器的幫助,請參閱管理虛擬設備文檔。
  2. 有關實際設備(而不是仿真器)的幫助,請參閱使用硬件設備。
  • 選擇要在Package Explorer中啟動的項目,然后按Ctrl + F11或從主菜單中選擇Run - > Run選項,或單擊工具欄上的Run按鈕。
注意
Android模擬器可能需要幾分鐘才能開始。所以請耐心等待 *第一次運行時,Eclipse會詢問您的應用程序的運行模式:

OpenCV4 Android SDK

  • 選擇Android應用程序選項,然后單擊確定按鈕。Eclipse將安裝并運行示例。

有可能在第一次啟動時,您將不會安裝OpenCV Manager軟件包。在這種情況下,您將看到以下消息:

OpenCV4 Android SDK

要擺脫消息,您將需要安裝OpenCV管理器和相應的OpenCV二進制包。如果您的設備/模擬器上安裝了Google Play市場,只需點擊是。它將重定向到Google Play Market上的相應頁面。

如果您無法訪問市場(仿真器通常是這種情況),則需要手動從OpenCV4Android SDK文件夾安裝軟件包??碝anager Selection詳情。

<Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
注意
armeabi,armv7a-neon,arm7a-neon-android8,mips和x86代表平臺目標:
  • armeabi適用于具有Android API 8+的ARM v5和ARM v6架構,
  • armv7a-neon是針對NEON優(yōu)化的ARM v7與Android API 9+,
  • arm7a-neon-android8是針對NEON優(yōu)化的ARM v7與Android API 8,
  • mips是針對具有Android API 9+的MIPS架構,
  • x86適用于具有Android API 9+的Intel x86 CPU。
如果使用硬件設備進行測試/調(diào)試,請運行以下命令來了解其CPU架構:
adb shell getprop ro.product.cpu.abi
如果您使用AVD仿真器,請轉到Window> AVD Manager以查看可用設備的列表。在所選設備的上下文菜單中單擊編輯。在窗口中,然后彈出窗口,找到CPU字段。
您也可以看到Manager Selection細節(jié)部分。

完成后,您可以無縫地在設備/模擬器上運行OpenCV示例。

  • 這里是樣品 - 圖像操作示例,運行在模擬器的庫存照相機預覽之上。

emulator_canny

下一步是什么

現(xiàn)在,當您設置和配置OpenCV4Adroid SDK的實例時,您可能需要繼續(xù)在自己的應用程序中使用OpenCV。您可以通過OpenCV教程在單獨的Android開發(fā)中學習如何做到這一點。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號