使用Android Studio創(chuàng)建OpenCV4.1.0 項(xiàng)目的步驟
一、OpenCV
OpenCV(開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù))是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),是一個(gè)基于C與C++的跨平臺(tái)計(jì)算機(jī)視覺(jué)處理庫(kù)。
二、下載
開(kāi)發(fā)基于Andorid的計(jì)算機(jī)視覺(jué)的應(yīng)用可以使用OpenCV 4.1.0-Android SDK:
從官方網(wǎng)站下載 OpenCV 4.1.0 For Android SDK
https://sourceforge.net/projects/opencvlibrary/files/4.1.0/opencv-4.1.0-android-sdk.zip/download
三、使用Android Studio 開(kāi)發(fā)基于OpenCV 4.1.0的移動(dòng)應(yīng)用
(1)平臺(tái)版本
Android Studio 3.2.1
(2)新建一個(gè)Android項(xiàng)目
(3)將OPENCV 4.1.0 Android SDK的java模塊導(dǎo)入到項(xiàng)目中
a) 將下載的opencv-4.1.0-android-sdk.zip文件解壓,解壓后進(jìn)入到“opencv-4.1.0-android-sdk\OpenCV-android-sdk\sdk”的目錄下,有如下文件:
b)將java模塊導(dǎo)入到已創(chuàng)建的項(xiàng)目中
c)將已經(jīng)改名為opencv41Libs(命名自行定義)的java模塊,即opencv41Libs模塊修改對(duì)應(yīng)的build.gradle文件
有三處需要注意:
- 將文件中的 "apply plugin: 'com.android.application'"修改為“apply plugin: 'com.android.library'”
- 將文件中的自動(dòng)生成的“applicationId "org.opencv"”刪除,因?yàn)閛pencv41Libs模塊是作為庫(kù)存在而不是應(yīng)用存在
- 將compileSdkVersion 、buildToolsVersion、minSdkVersion 、targetSdkVersion 屬性值的設(shè)置與app對(duì)應(yīng)的build.gradle文件的配置一致。
例如app對(duì)應(yīng)的build.gradle為:
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "app.userhu2012.test" minSdkVersion 27 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "-frtti -fexceptions" } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { path "CMakeLists.txt" } } }
則opencv41Libs對(duì)應(yīng)的build.gradle文件配置如下:
apply plugin: 'com.android.library' android { compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { //applicationId "org.opencv" minSdkVersion 27 targetSdkVersion 28 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } }
d)配置libs庫(kù)
為項(xiàng)目app的src/main目錄下創(chuàng)建一個(gè)jniLibs目錄(如果沒(méi)有的話)
將opencv 4.1.0 android sdk中的opencv-4.1.0-android-sdk\OpenCV-android-sdk\sdk\native\libs庫(kù)的所有架構(gòu)文件復(fù)制到j(luò)niLibs目錄中
再到項(xiàng)目app模塊對(duì)應(yīng)的build.gradle進(jìn)行配置,增加jniLibs.srcDirs參數(shù)
sourceSets{ main{ jniLibs.srcDirs = ['src/main/jniLibs'] } }
以及配置支持的ndk類型,如下圖所示,把已知的架構(gòu)包寫到app對(duì)應(yīng)的build.gradle中
然后配置項(xiàng)目app的依賴項(xiàng)目,選擇“文件”-》“Project Structure”,然后設(shè)置app模塊的的依賴模塊,如下圖所示:
選擇“OK",app模塊對(duì)應(yīng)的build.gradle的文件如下所示:
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "app.userhu2012.test" minSdkVersion 27 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "-frtti -fexceptions" } } ndk{ abiFilters "arm64-v8a","armeabi-v7a","x86","x86_64" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets{ main{ jniLibs.srcDirs = ['src/main/jniLibs'] } } externalNativeBuild { cmake { path "CMakeLists.txt" } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:28.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation project(':opencv41Libs') }
這樣配置就可以使用Android Studio創(chuàng)建OpenCV 4.1.0 項(xiàng)目。
到此這篇關(guān)于使用Android Studio創(chuàng)建OpenCV4.1.0 項(xiàng)目的步驟的文章就介紹到這了,更多相關(guān)Android Studio創(chuàng)建OpenCV 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Android Studio4.0導(dǎo)入OpenCv4.3.0的方法步驟
- Android+OpenCV4.2.0環(huán)境配置詳解(Android studio)
- 使用Android studio3.6的java api方式調(diào)用opencv
- 基于Android studio3.6的JNI教程之opencv實(shí)例詳解
- Android Studio中使用jni進(jìn)行opencv開(kāi)發(fā)的環(huán)境配置方法
- Android Studio中配置OpenCV庫(kù)開(kāi)發(fā)環(huán)境的教程
- AndroidStudio集成OpenCV的實(shí)現(xiàn)教程
相關(guān)文章
Android使用Room數(shù)據(jù)庫(kù)解決本地持久化的操作
Room 是一個(gè)持久性庫(kù),屬于 Android Jetpack 的一部分,Room 是 SQLite 數(shù)據(jù)庫(kù)之上的一個(gè)抽象層,Room 并不直接使用 SQLite,而是負(fù)責(zé)簡(jiǎn)化數(shù)據(jù)庫(kù)設(shè)置和配置以及與數(shù)據(jù)庫(kù)交互方面的瑣碎工作,本文介紹了Android使用Room數(shù)據(jù)庫(kù)解決本地持久化的操作,需要的朋友可以參考下2024-09-09fragment實(shí)現(xiàn)隱藏及界面切換效果
這篇文章主要為大家詳細(xì)介紹了fragment實(shí)現(xiàn)隱藏及界面切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11Android?鼠標(biāo)光標(biāo)的圖形合成原理實(shí)例探究
這篇文章主要為大家介紹了Android?鼠標(biāo)光標(biāo)的圖形合成原理實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Android getJSONObject與optJSONObject的區(qū)別結(jié)合源碼分析
這篇文章主要介紹了Android getJSONObject與optJSONObject的區(qū)別,結(jié)合源碼分析的相關(guān)資料,需要的朋友可以參考下2017-02-02Android中的Intent Filter匹配規(guī)則簡(jiǎn)介
這篇文章主要為大家詳細(xì)介紹了Android中的Intent Filter匹配規(guī)則,感興趣的小伙伴們可以參考一下2016-04-04Android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單
本文主要介紹了android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04Android Material設(shè)計(jì)中列表和卡片的創(chuàng)建方法解析
這篇文章主要介紹了Android Material設(shè)計(jì)中列表和卡片的創(chuàng)建方法解析,列表和卡片是Material Design視圖中的重要部分,需要的朋友可以參考下2016-04-04Android控制文本輸入框最多輸入10個(gè)字符長(zhǎng)度
這篇文章主要為大家詳細(xì)介紹了Android控制文本輸入框最多輸入10個(gè)字符長(zhǎng)度,即最多輸入5個(gè)漢字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Android進(jìn)階事件分發(fā)機(jī)制解決事件沖突
這篇文章主要為大家介紹了Android進(jìn)階事件分發(fā)機(jī)制解決事件沖突過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01