網(wǎng)上找了很多都比較老或者安裝起來(lái)又各種問(wèn)題紫谷,自己試了很多找到了一種成功的方法,總結(jié)了一下有幫助就點(diǎn)個(gè)贊吧~
1. 下載OpenCV-android-sdk
解壓后包含三個(gè)目錄:
- apk:一些demo
- samples:例子,教程
- sdk:
- etc:拓展數(shù)據(jù),人臉檢測(cè)等
- java:要導(dǎo)入的依賴
- native:需要集成到我們的項(xiàng)目中的
2. 安裝Android Studio
這個(gè)比較簡(jiǎn)單就不講了,去官網(wǎng)下載就好骆莹。
3. 環(huán)境搭建
1. 新建一個(gè)Android項(xiàng)目
在這里插入圖片描述
2.導(dǎo)入依賴,import module選擇之前下載的sdk里面的java
在這里插入圖片描述
導(dǎo)入成功后會(huì)出現(xiàn)以下結(jié)果:
在這里插入圖片描述
可以看到opencv庫(kù)被導(dǎo)入進(jìn)來(lái)了
在這里插入圖片描述
3.依賴設(shè)置
打開(kāi)Module Setting
在這里插入圖片描述
添加依賴
在這里插入圖片描述
等它重新build之后可能會(huì)出現(xiàn)報(bào)錯(cuò):
ERROR: The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.
Remove minSdkVersion and sync project
Affected Modules: openCVLibrary320
是因?yàn)閛pencv和項(xiàng)目的版本要求不一致铃岔,修改至一樣即可汪疮。將opencv里面的修改到一樣版本。
在這里插入圖片描述
opencv模塊下的AndroidManifest.xml這一部分版本也修改和上面一致毁习,或者直接將這一句刪掉智嚷。
在這里插入圖片描述
然后重新編譯即可。
在這里插入圖片描述
4. 拷貝so文件
打開(kāi)\OpenCV-android-sdk\sdk\native\libs纺且,里面有很多文件夾盏道,每個(gè)文件夾下有很多.so和.a文件,將這些文件夾復(fù)制到我們的項(xiàng)目下:app/libs里面载碌。如下:
在這里插入圖片描述
每個(gè)文件夾里面的.a文件是給ios用的猜嘱,我們用不上,可以把里面所有.a文件刪除嫁艇,減小app的大小朗伶。
5. 修改gradle腳本
將導(dǎo)入的文件打包成jar包供我們使用。打開(kāi)app下的build.gradle步咪,添加以下內(nèi)容:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
// 這里添加了這一行
implementation fileTree(dir: '$buildDir/native-libs', include: 'native-libs.jar')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation project(path: ':openCVLibrary320')
}
// 以下內(nèi)容是新增的
task nativeLibsToJar(type: Jar, description: 'create a jar archive of ths native libs'){
destinationDir file('$buildDir/native-libs')
baseName 'native-libs'
from fileTree(dir: 'libs', include: '**/*.so')
into 'lib/'
}
tasks.withType(org.gradle.api.tasks.compile.JavaCompile){
compileTask->compileTask.dependsOn(nativeLibsToJar)
}
在這里插入圖片描述
然后把項(xiàng)目re-build即可论皆。
在這里插入圖片描述
4. 驗(yàn)證環(huán)境是否搭建成功
加載OpenCv相關(guān)庫(kù),使用相關(guān)函數(shù)猾漫,查看結(jié)果点晴。簡(jiǎn)單驗(yàn)證如下:
在這里插入圖片描述