1. 程式人生 > >OpenCV4 --Android 環境配置【詳細教程】

OpenCV4 --Android 環境配置【詳細教程】

要想在Android使用OpenCV,那麼首先得搭建好開發環境,其實搭建開發環境並不難,只要理解其中的原理就自然手到擒來。開發環境搭建好後才能大展拳腳!

(之前一直是在VS中使用OpenCV,VS中的配置很簡單;在Android中配置OpenCV對於剛開始接觸Android和java的人來說,確實很麻煩;剛開始配置時參考的是這位大牛的文章:opencv for android 教程(環境搭建篇),但是之間老是出錯,不是他寫得有問題,主要是自己沒能理解為什麼這麼做,不知道為什麼自然遇到問題就無法變通,二是時間久了,有些東西可能就不一樣了!寫下這篇文章僅僅是根據前輩的文章和自己的理解,儘量通俗易懂,有什麼表述不正確的地方,敬請指正!)

OpenCV4Android 環境配置分3個步驟:

一、Android開發環境配置

二、NDK環境配置

三、使用OpenCV

第一步很簡單,開發Android程式的首要條件,網上教程多如牛毛;第二步就是在Android中呼叫C/C++的所需要的,而OpenCV是C/C++編寫的庫;第三步其實不能稱之為環境配置了,因為前兩步已經配置好了環境,第三步僅僅是如何正確的呼叫OpenCV庫了,可以稱之為方法篇了。

我已將下面用到的安裝包、有點參考價值的資料上傳到百度網盤網盤下載

一、Android環境配置

如果自己的電腦上已經配置好了Android開發環境的話,可以跳過此步,進入第二步!

1)準備條件:Windows作業系統

JDK(Java SE Development Kit 8u20)

Android SDK

Eclipse 

ADT

選擇32位的(或者64位),如果選擇了32位的那麼之後下載的安裝工具也同樣選擇32位的,以免出現問題(64位的也一樣)。安裝JDK是為了支援Java開發,安裝路徑為 D:\Java\jdk1.8.0_20,安裝好後是環境變數設定

3)新增系統環境變數:JAVA_HOME


在系統環境變數Path的變數值後面追加;%JAVA_HOME%\bin


執行cmd.exe中輸入javac -version

出現上面的情況說明安裝成功。

4)Android SDK下載地址:Android SDK

選擇VIEW ALL DOWNLOADS AND SIZES下的SDK tools only。按照下圖提示進行選擇下載

雙擊執行已經下載好的installer_r23.0.2-windows.exe,選擇安裝路徑時選擇合適的路徑即可。


安裝完成後新增系統環境變數如下圖所示


在環境變數Path後面追加;%ANDROID_SDK_HOME%\tools


點選全部確定後,執行cmd.exe,輸入命令android回車會執行Android SDK Manager,說明環境變數設定正確,然後在Android SDK Manager中選中以下的選項,下載相應的包(推薦),當然也可以按自己的需要下載,有時會失敗,多試幾次就行了!

5)Eclipse 下載地址:eclipse

按照下圖提示下載


這個Eclipse版本是此時的最新版本。下載好後解壓到資料夾 D:\Android\eclipse ,eclipase資料夾下有eclipse.exe程式。

6)ADT下載地址:ADT


7)執行eclipse資料夾下的eclipse.exe

設定工作目錄如下

點選上圖中的OK按鈕後進入Eclipse主介面。然後點選選單欄的Help->Install New Software...,再彈出的對話方塊中點選Add...按鈕,在彈出的對話方塊中Name:輸入adt。


然後點選Archive...按鈕,找到前一步下載的ADT的位置,選擇下載的ADT壓縮包,點選確定。


點選OK按鈕後照下圖提示操作


點選上圖中的 Next> 按鈕,直至 Finish。在安裝過程中會提示警告資訊,直接點選OK即可。


根據提示重啟Eclipse後介面上會多出兩個圖示。然後選擇選單欄的Window->Preferences->Android設定SDK Location為 D:\Android\adt\sdk,點選Apply


如果是真機測試的話,現在暫時不需要下載其餘的API和Tools,不用建立AVD;如果沒有真機的話,點選選單欄的Window->Android SDK Manager,如果需要就下載相應的API和Tools(下載速度比較慢)。

8)建立AVD 

如果有真機的話,不太建議使用AVD,因為啟動速度太慢等原因!建立過程就省略掉了!(如果需要請參照其他的網上教程)

9)新建Hello World專案

點選選單欄Flie->New->Android Application Project,在彈出的的對話方塊中輸入應用名稱如下


點選Next,全部為預設選項,直至Finish。

手機通過USB資料線連線電腦,開啟除錯模式,最好關閉電腦上的手機助手,避免出現不必要的問題;右鍵工程檔案Demo01->Run As->Android Application


選中已經連線的手機,單擊OK則手機上出現如下介面


至此,Android開發環境的配置已經完成了。

二、NDK環境配置

如果已經熟練NDK開發或者已經配置好NDK開發環境的可以跳過此步驟

1)準備條件: Android-NDK

                             CDT

我的電腦是Win7 64位作業系統(根據自己的作業系統選擇,32位對應前面都選擇32位),所以我的選擇是


下載好後解壓到某個資料夾,我的是 D:\Android\ndk,ndk資料夾下有build、docs和platforms等等資料夾和檔案。

3)系統環境變數配置:ANDROID_NDK_HOME(名字個人喜好)如下


然後在系統變數Path後追加;%ANDROID_NDK_HOME%


然後點選全部確定後,執行cmd.exe,輸入ndk-build命令,回車後出現


4)安裝CDT外掛

CDT下載地址:CDT

選擇與自己的Eclipse版本相應的CDT包


下載完成後,安裝方法與ADT的安裝方法一樣,點選選單欄Help->Install New Software...在彈出的對話方塊中設定如下


Name為cdt,Archive...選擇剛才下載的cdt離線包,點選OK後按照下圖提示操作


點選Next,直至Finish,安裝成功後根據提示重啟Eclipse。(連網的情況下安裝的,中間沒提示安裝錯誤)

新建工程時有C/C++選項時,說明CDT安裝成功

5)測試NDK

在eclipse中點選選單欄File->Import...->Android->Existing Android Code Into Workspce


點選Next>,新增HelloJni專案如下圖所示

HelloJni是NDK中提供的例子,不需要選中tests專案,把HelloJni拷貝到當前工作目錄中,點選Finish。


此時可以看見匯入的HelloJni並沒有提示錯誤,如果有錯誤可以單擊選單欄Project->Clean...,在彈出的對話方塊中選中HelloJni工程,然後點選OK,再點選選單欄的

Project->Build Project,這是通常的解決辦法,當然也要具體問題具體分析了。

然後右鍵工程檔案HelloJni->Run As->Android Application,然後選擇執行的裝置,結果執行錯誤,為什麼呢?因為並沒有生成libhellojni.so庫,所以暫時還不能執行!

6)HelloJni專案設定

右擊HelloJni專案檔案,點選New->Other...,在彈出的對話方塊後根據下圖提示操作


點選Next>後進入下圖


點選Finish後,再次右擊HelloJni工程檔案,點選Properties,彈出對話方塊如下圖設定


主要設定的是ndk-build.cmd的目錄,這樣Eclipse會自動呼叫ndk-build命令操作,按照上圖指示設定後,點選Apply,然後再按下圖設定


按照上圖設定完成Apply後,再按下圖設定


GNU C / GNU C++ 的includes設定為一樣的,其實就是cpp原始檔中標頭檔案的目錄設定。可以開啟這個資料夾,其中有jni.h 和string.h 等標頭檔案,而這兩個檔案正是HelloJni.cpp中包含的標頭檔案。如果需要更多的標頭檔案,則需要設定相應的路徑。


到這裡可以右擊HelloJni工程檔案,點選Run As->Android Application->選擇執行的裝置->OK,執行結果如下圖所示


顯示結果為手機的使用的編譯指令集,我的手機為HTC nexus one,可見使用的編譯指令集為armeabi-v7a,這個對之後OpenCV Manager的安裝版本的選擇有幫助!

至此NDK的環境配置已經完成了,可能會有人問為什麼沒裝Cygwin呢?其實這個是不需要的!

當然之間也遇到些錯誤,如HelloJni.c中下面這句有可能會提示錯誤!

  1. return (*env)->NewStringUTF(env, "Hello from JNI !  Compiled with ABI " ABI ".");  
最好的解決辦法是重灌CDT和Eclipse!個人認為是裝CDT時出現錯誤引起的!當然網上還有其他的解決辦法!

三、OpenCV的使用

在Android中使用OpenCV分三種情況:

一是純java開發,使用OpenCV提供的java API,這種情況不需要NDK開發環境的配置,但是需要在手機上先安裝好OpenCV Manager;

二是Android java部分主要是介面設計,而影象處理部分在jni中實現,涉及到OpenCV的方法時為純C/C++,這種方法不用安裝OpenCV Manager;

三是前兩種方法同時使用!

下面將介紹前兩種方法,弄明白前兩種,第三種自然就明白了。下面的介紹是基於已經熟悉Android基本開發和NDK開發基本流程的情況下介紹的。關於jni的介紹和教程可以百度搜索傳智播客的jni視訊教程。

1)下載OpenCV4Android

OpenCV4Android下載地址OpenCV官方網站,我的下載的是OpenCV4Android 2.4.9,下載好後解壓到D:\下,得到OpenCV-2.4.9-android-sdk這個資料夾,將資料夾下的sdk複製到E:\android-workspace目錄下,然後匯入到Eclipse工作目錄下,方法為執行Eclipse,點選選單欄的File->Import...->Android->Existing Android Code Into Workspace


點選Finish按鈕後結果如下


至此準備工作就做好了。

2)使用OpenCV的Java API開發

建立一個新的Android專案,命名為OpenCVDemo01


工程專案新建好後,就要為該專案新增OpenCV的java支援包了。方法是右擊專案檔案OpenCVDemo01->Properties,在彈出的對話方塊中進行如下設定


然後可以看到如下結果


好了下面開始寫程式碼,程式碼完全是copy自前輩大牛的,layout佈局檔案activity_main.xml如下

  1. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:gravity="center_horizontal"
  6.     android:orientation="vertical"
  7.     tools:context="com.example.opencvdemo01.MainActivity">
  8.     <Button
  9.         android:id="@+id/btn_proc"
  10.         android:layout_width="match_parent"
  11.         android:layout_height="wrap_content"
  12.         android:text="@string/gray_proc"
  13.         />
  14.     <ImageView
  15.         android:id="@+id/imageview_lena"
  16.         android:layout_width="wrap_content"
  17.         android:layout_height="wrap_content"
  18.         android:contentDescription="@string/image_lena"
  19.         />
  20. </LinearLayout>
string.xml檔案如下
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3.     <stringname="app_name">OpenCVDemo01</string>
  4.     <stringname="hello_world">Hello world!</string>
  5.     <stringname="action_settings">Settings</string>
  6.     <stringname="gray_proc">Gray Process</string

    相關推薦

    OpenCV4 --Android 環境配置詳細教程

    要想在Android使用OpenCV,那麼首先得搭建好開發環境,其實搭建開發環境並不難,只要理解其中的原理就自然手到擒來。開發環境搭建好後才能大展拳腳! (之前一直是在VS中使用OpenCV,VS中的配置很簡單;在Android中配置OpenCV對於剛開始接觸A

    從壹開始前後端分離 [ Vue2.0+.NET Core2.1] 二十一║Vue實戰:開發環境搭建詳細

    緣起  哈嘍大家好,兜兜轉轉終於來到了Vue實戰環節,前邊的 6 篇關於Vue基礎文章我剛剛簡單看了看,感覺寫的還是不行呀,不是很系統,所以大家可能看上去比較累,還是得抽時間去潤潤色,修改修改語句和樣式,至少也得對得住粉絲哈,應該給部落格園官方提個小建議,要是能允許好友或者其他人修改文章的功能就好了,比如百

    Node.js安裝+環境配置Windows版

    Node.js安裝及環境配置之Windows篇  一、安裝環境 1、本機系統:Windows 10 Pro(64位)2、Node.js:v6.9.2LTS(64位) 二、安裝Node.js步驟 1、下載對應你係統的Node.js版本:https://nodejs.org/en

    CentOS6.5下編譯安裝MySQL 5.6.16詳細教程

    登入mysql mysql -uroot -p 輸入密碼: #建立普通mysql使用者 CREATE USER 'cwtcn'@'localhost' IDENTIFIED BY 'cwtcn'; #建立資料庫 CREATE DATABASE IF NOT EXISTS`cwtcn_offset` D

    Node.js安裝及環境配置Windows篇

    一、安裝環境 1、本機系統:Windows 10 Pro(64位) 2、Node.js:v8.12.0LTS(64位) 二、安裝Node.js步驟 三、前期準備 1、Node.js簡介 簡單的說 Node.js 就是執行在服務端的 JavaScript。Node.

    MyEclipse優化方法解決啟動速度、記憶體溢位問題詳細教程

    在執行大專案的時候,啟動專案是一件很頭痛的事情,不光需要的時間長,還動不動就卡主,報錯(記憶體溢位)。 o(╥﹏╥)o 這時候就需要我們對MyEclipse進行一下配置的修改,我在網上找到了一些優化方法,在此整理出來,方便大家學習使用。 一、啟動項檢查 步驟Wi

    JAVA WEB教程jsp環境搭建(eclipse)詳細+圖文

    下載JDK(如果你的系統是64位的,那麼就下載64位版本的) 然後安裝,點選下一步 再點選下一步 安裝成功 下載針對JAVA EE的Eclipse(如果你的系統是64位的,那麼就下載64位版本的) 下載完之後解壓到指定的目錄下,最好是C:\Program

    轉:實用教程阿裏雲服務器的配置和使用

    -a 文件 4.4 創建 site 租用服務器 網頁 html F12 【實用教程】阿裏雲服務器的配置和使用 隨著網絡應用的日常化,網絡資源的使用已經不是專業人士或機構的專利。通過簡單的學習,每個人都可以在無需硬件的情況下擁有一個甚至多個服務器,並配置屬於自己的網頁

    JAVA的下載與安裝和環境變量配置詳細教程

    bin 命令提示符 1.3 學習 1.7 常常 表示 最新 edi 初學JAVA時,新手常常不知如何下載JAVA,也不知如何安裝JAVA以及對JAVA配置環境變量。近期學弟學妹常請教我如何下載安裝和配置JAVA,於是寫下此博文以便更多新手快速入門,由於我本人是玩智能車的,因

    halcon教程halcon 17.12 深度學習北京_賽 車 原始碼平臺出售出租環境搭建

    千呼萬喚始出來,北京_賽 車 原始碼平臺出售出租 Q1157880099本帖只針對windos下安裝體驗,有空再給大家寫深度學習教程貼如果你想安裝halcon17,那麼很簡單,硬碟剩餘空間2G,記憶體超過256M,作業系統win7以上即可。但顯然我們的要求不僅如此,因為我們期待已久的深度學習功能。詳細要求見下

    C++:環境配置 visual Studio 2017 + Opencv 3

    當新建C++專案,一用到opencv庫函式的時候,就得配置,次次配,不如就寫個教程,怕下次又忘了……   一 opencv安裝,環境變數設定     從官網下載opencv,解壓即可。我這裡用的是opencv3,(安裝路徑  eg:“ D:\ope

    小卒CUDA安裝最新CUDA9.2+VS2015+WINDOW7的配置詳細關鍵點記錄

      小卒第三次配置CUDA了,才發現自己這次配置學會了很多,為了記錄自己的成長,也為了和大家分享CUDA的配置方法,下面我講把整個配置過程自己覺得重要的地方記錄下來。 一、什麼是CUDA            

    Mac教程Sublime Text 3 註冊碼失效被移除詳細解決方法

    sublime text 3 Mac 破解是一款非常優秀的程式碼編輯軟體,最近有小夥伴們反映Sublime Text 3 註冊碼失效被移除,今天我就為大家帶來了Sublime Text 3 註冊碼失效被移除詳細解決方法,有Mac平臺和Windows平臺兩種解決方案,有興趣的小夥伴趕快來看看吧!

    Highcharts教程Highcharts Android包裝教程

    下載Highcharts最新版本 在本教程中,我將向您展示如何使用Highcharts Android包裝器建立互動式圖表以顯示UEFA冠軍資料。 如果您是Android開發人員,Java很可能是您的首選語言。但是,您可能還有一些來自其他平臺的熱門工具,例如Highcharts,這是受歡迎的Web企

    51. spring boot屬性檔案之多環境配置從零開始學Spring Boot

    【視訊&交流平臺】 http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=40000000

    mariadb 5.5.36 linux下CentOS 6.5 64位安裝給力詳細教程

    一.通過YUN方式安裝MARIADB 1、軟體環境: CentOS 6.5 x64 MariaDB 5.5.36 2、安裝過程 1)在/etc/yum.repos.d/目錄建立MariaDB.repo檔案,內容如下: # MariaDB 10.0 CentOS reposi

    android超好用基於zxing全屏掃碼詳細步驟(一)

    公司有個專案是這樣的:要求掃條形碼能識別上面的數字。於是選用了zxing進行掃碼,可一定要吐槽的是:太慢了,一個條形碼要掃5-10秒才能識別。於是換用了zbar進行掃碼。 zbar的速度很快,秒掃,但後面發現一個嚴重的問題,太不準了!不準到一個條形碼我能掃到好

    初級教程—Dubbo的配置及啟動

    Tomcat+Dubbo安裝         1.將tomcat的webapps目錄下的所有檔案清空,講Dubbo管理控制檯的程式dubbo-admin-2.5.3.war放 到webapps中,並且解壓命名為ROOT。                  2.配置dubb

    Android自定義View實戰教程5⃣️---Canvas詳解及程式碼繪製安卓機器人

    友情連結: 神馬是Canvas 基本概念 Canvas:可以理解為是一個為我們提供了各種工具的畫布,我們可以在上面盡情的繪製(旋轉,平移,縮放等等)。可以理解為系統分配給我們一個一個記憶體空間,然後提供了一些對這個記憶體空間操作的方法(AP

    windown 解壓縮版Mysql安裝和環境變數配置絕對成功

    1.下載mysql 地址:http://pan.baidu.com/s/1hsgqY6S 2.解壓縮 解壓縮到 D:\MyProgram 環境變數配置:我的電腦 --> 屬性 --> 環境變數 --> PATH 加入:D:\MyProgram\mysql-