
最近在學(xué)習(xí)視覺算法的時(shí)候,想著如果利用手機(jī)的攝像頭做一些實(shí)時(shí)的圖像處理也是很方便的,生活中也有些場(chǎng)景可以做一些好玩的應(yīng)用,于是就開始在android上搭建OpenCV環(huán)境。參考了一些網(wǎng)上的帖子,有些比較久遠(yuǎn)了,像Android Studio的版本,目前已經(jīng)更新到3.0.1了,各方面都完善了很多,而OpenCV也發(fā)展到3.4.1版了,所以一些比較有年代的帖子介紹的方法不一定適用于今天,我研究了好些個(gè)帖子,最終順利搭建好了,所以趁著記憶還熱乎把這個(gè)過程記錄一下,以備以后再要裝的時(shí)候參考。
下載
1.首先,安裝Android Studio,我安裝的是目前最新的Android Studio3.0.1版本,完全參考了一篇網(wǎng)上的教程,一步步照著做下來,沒有問題。
2.下載OpenCV sdk for Android,我是在官網(wǎng)下的OpenCV3.4.1最新版,解壓(我的解壓路徑是D:\AndroidSDK\OpenCV-android-sdk)
3.新建項(xiàng)目,F(xiàn)ile-New-New Project,取個(gè)名字

點(diǎn)下一步,

Minimum SDK 選擇 API 19:Android 4.4 (KitKat),再點(diǎn)“Next”
選擇Empty Activity,直到“Finish”
導(dǎo)入OpenCV
Android Studio菜單-->File-->New-->Import Module
選擇D:\AndroidSDK\OpenCV-android-sdk\sdk\java
Module name: Android studio會(huì)自動(dòng)填充這項(xiàng)為openCVLibrary341 ,不用自己改,如下圖:

點(diǎn)“Next”,下一步,默認(rèn)的三個(gè)全勾上

1)File-->Project Structure
2)左邊Modules欄下選擇app
3)在右邊上面一欄中選擇Dependencies
4)點(diǎn)擊右邊欄中的“+”,選擇第三個(gè)Module Dependency


5)點(diǎn)擊ok退出,然后再點(diǎn)擊ok退出
1)將視圖由Android切換到Project,如圖所示
2)點(diǎn)擊app,打開app根目錄下的build.gradle文件,注意
compileSdkVersion,
buildToolsVersion,
minSdkVersion,
targetSdkVersion
后面的數(shù)值

3)點(diǎn)擊openCVLibrary341,打開根目錄下的build.gradle文件,把文件中
compileSdkVersion,
buildToolsVersion,
minSdkVersion,
targetSdkVersion,
后的數(shù)值改成和上一步app中一樣的

1)把OpenCV sdk for Android文件下D:\AndroidSDK\OpenCV-android-sdk\sdk\native下的libs文件夾拷貝到自己的安卓項(xiàng)目下,我的是TestOpencvAd\app\src\main下面,并且將libs改名為jniLibs.
2)此時(shí)前期準(zhǔn)備工作就完成了,可以開始自己寫代碼了。
測(cè)試
可以用opencv中的sample程序測(cè)試下
-
將OpenCV-android-sdk\samples\image-manipulations\src\org\opencv\samples\imagemanipulations中的ImageManipulationsActivity.java文件,拷貝到自己的安卓項(xiàng)目TestOpencvAd\app\src\main\java\com\xiaoma\opencvtest下,打開原來的MainActivity.java文件,看第一行的包名,我的是
package scr.testopencvad;把這一行拷貝,用來替換掉ImageManipulationsActivity.java文件中的package一行。然后可以刪掉MainActivity.java文件
將OpenCV-android-sdk\samples\image-manipulations\res中的三個(gè)文件(如圖所示),拷貝到你的安卓項(xiàng)目TestOpencvAd\app\src\main\res下(與目錄下的同名的三個(gè)文件合并)
將OpenCV-android-sdk\samples\image-manipulations中的AndroidManifest.xml文件,拷貝到你的安卓項(xiàng)目TestOpencvAd\app\src\main下替換
打開AndroidManifest.xml,
改包名,找到第三行的package,改為package="scr.testopencvad"
找到”android:theme”行,修改為
android:theme="@android:style/Theme.Holo.Light.DarkActionBar"

- 將uses-sdk android:minSdkVersion的值改成之前記下的版本號(hào)的值,
因?yàn)樵娴氖莊ullscreen狀態(tài),導(dǎo)致打開后看不見菜單,這么改了以后就沒問題了。

build apk
假如手機(jī)運(yùn)行時(shí)彈出
“It seems that you device does not support camera(or it is locked).Application will be closed.”
這時(shí)候打開手機(jī)的應(yīng)用權(quán)限管理,允許這個(gè)程序的訪問相機(jī)就好了。

接下來就可以在這個(gè)基礎(chǔ)上繼續(xù)改進(jìn)算法,研究更好玩的應(yīng)用了。
參考
https://jingyan.baidu.com/article/60ccbceb53533364cab197db.html