OpenCV4 Android SDK

2018-08-26 10:45 更新

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

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

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

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

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

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

Tegra Android開發(fā)包用戶

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

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

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

基本信息

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

包裝內(nèi)容的結(jié)構(gòu)如下所示:

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 文件夾包含一個(gè)提供OpenCV Java API的Android庫Eclipse項(xiàng)目,可以導(dǎo)入到開發(fā)人員的工作區(qū);
  • sdk/native 文件夾包含用于ARM-v5,ARM-v7a和x86架構(gòu)的OpenCV C ++標(biāo)頭(用于JNI代碼)和原生Android庫(* .so和* .a);
  • sdk/etc 文件夾包含與OpenCV分發(fā)的Haar和LBP級(jí)聯(lián)。
  • apk 文件夾包含應(yīng)安裝在目標(biāo)Android設(shè)備上的Android軟件包,以通過OpenCV Manager API啟用OpenCV庫訪問(見下面的詳細(xì)信息)。

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

注意
因?yàn)镺penCV團(tuán)隊(duì)可能會(huì)在Market上發(fā)布更新版本的軟件包,因此從互聯(lián)網(wǎng)進(jìn)行安裝是比較理想的方式。
  • amples文件夾包含示例應(yīng)用程序項(xiàng)目及其預(yù)構(gòu)建軟件包(APK)。將它們導(dǎo)入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進(jìn)行庫初始化。OpenCV Manager是一種基于Android服務(wù)的解決方案,為OpenCV應(yīng)用開發(fā)人員提供以下優(yōu)勢(shì):

  • 緊湊的apk-size,因?yàn)樗袘?yīng)用程序使用與Manager相同的二進(jìn)制文件,并且不將本機(jī)庫存儲(chǔ)在其中;
  • 在所有支持的平臺(tái)上自動(dòng)啟用硬件特定優(yōu)化;
  • 自動(dòng)更新和錯(cuò)誤修復(fù);
  • 可信的OpenCV庫源碼。OpenCV的所有包都在Google Play上公布;

手動(dòng)OpenCV4Android SDK設(shè)置

獲取OpenCV4Android SDK

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

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

OpenCV4 Android SDK

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

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

將OpenCV庫和示例導(dǎo)入Eclipse

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

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

OpenCV4 Android SDK

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

OpenCV庫作為一個(gè)可以使用的Android圖書館項(xiàng)目進(jìn)行打包。您可以在項(xiàng)目中簡單地引用它。

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

  • 右鍵單擊包資源管理器窗口,然后從上下文菜單中選擇導(dǎo)入...選項(xiàng):

OpenCV4 Android SDK

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

OpenCV4 Android SDK

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

OpenCV4 Android SDK

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

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

OpenCV4 Android SDK

一旦Eclipse完成構(gòu)建,您將擁有干凈的工作空間而不會(huì)造成任何構(gòu)建錯(cuò)誤

OpenCV4 Android SDK

運(yùn)行OpenCV示例

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

警告

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

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

那么,從Eclipse運(yùn)行的樣本很簡單:

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

OpenCV4 Android SDK

  • 選擇Android應(yīng)用程序選項(xiàng),然后單擊確定按鈕。Eclipse將安裝并運(yùn)行示例。

有可能在第一次啟動(dòng)時(shí),您將不會(huì)安裝OpenCV Manager軟件包。在這種情況下,您將看到以下消息:

OpenCV4 Android SDK

要擺脫消息,您將需要安裝OpenCV管理器和相應(yīng)的OpenCV二進(jìn)制包。如果您的設(shè)備/模擬器上安裝了Google Play市場(chǎng),只需點(diǎn)擊是。它將重定向到Google Play Market上的相應(yīng)頁面。

如果您無法訪問市場(chǎng)(仿真器通常是這種情況),則需要手動(dòng)從OpenCV4Android SDK文件夾安裝軟件包。看Manager 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代表平臺(tái)目標(biāo):
  • armeabi適用于具有Android API 8+的ARM v5和ARM v6架構(gòu),
  • armv7a-neon是針對(duì)NEON優(yōu)化的ARM v7與Android API 9+,
  • arm7a-neon-android8是針對(duì)NEON優(yōu)化的ARM v7與Android API 8,
  • mips是針對(duì)具有Android API 9+的MIPS架構(gòu),
  • x86適用于具有Android API 9+的Intel x86 CPU。
如果使用硬件設(shè)備進(jìn)行測(cè)試/調(diào)試,請(qǐng)運(yùn)行以下命令來了解其CPU架構(gòu):
adb shell getprop ro.product.cpu.abi
如果您使用AVD仿真器,請(qǐng)轉(zhuǎn)到Window> AVD Manager以查看可用設(shè)備的列表。在所選設(shè)備的上下文菜單中單擊編輯。在窗口中,然后彈出窗口,找到CPU字段。
您也可以看到Manager Selection細(xì)節(jié)部分。

完成后,您可以無縫地在設(shè)備/模擬器上運(yùn)行OpenCV示例。

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

emulator_canny

下一步是什么

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)