如何在android studio上加入OpenCV库

本文详细介绍如何在AndroidStudio中集成OpenCV库,包括下载SDK、配置Gradle、添加依赖等步骤,帮助开发者快速实现图像处理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上找了很久,找到的关于在android studio中加入OpenCV 库的相关资料很少,而且解释的不是很清楚,配置的时候做了十几遍才成功。


参考http://stackoverflow.com/questions/17767557/how-to-use-opencv-in-android-studio-using-gradle-build-tool


将上述资料综合一下,并加入了一些注意事项记录下来。新手可以参考下。介绍了如何在android studio 中加入opencv库,并对需要用到opencv的model添加相关性。


1.下载 OpenCV Android SDK (我下的是2.4.8版本的,在后面一些设置中不同版本会有些不同),并将下载的OpenCV-2.4.8-android-sdk中的sdk文件夹中的java文件夹 重命名为 opencv

2.在android studio的工作区的根目录下(我这里的工作区叫MyApplication)创建一个libraries 文件夹,将刚才的opencv文件夹整个复制到新建的libraries里面。

3.在android studio中,在opencv的根目录处新建一个 build.gradle文件



4.在build.gradle 文件中添加如下代码

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. apply plugin: 'android-library'  
  2.   
  3. buildscript {  
  4.     repositories {  
  5.         mavenCentral()  
  6.     }  
  7.     dependencies {  
  8.         classpath 'com.android.tools.build:gradle:0.9.+'  
  9.     }  
  10. }  
  11.   
  12. android {  
  13.     compileSdkVersion 19  
  14.     buildToolsVersion "19.0.1"  
  15.   
  16.     defaultConfig {  
  17.         minSdkVersion 8  
  18.         targetSdkVersion 16  
  19.         versionCode 2480  
  20.         versionName "2.4.8"  
  21.     }  
  22.   
  23.     sourceSets {  
  24.         main {  
  25.             manifest.srcFile 'AndroidManifest.xml'  
  26.             java.srcDirs = ['src']  
  27.             resources.srcDirs = ['src']  
  28.             res.srcDirs = ['res']  
  29.             aidl.srcDirs = ['src']  
  30.         }  
  31.     }  
  32. }  
特别注意,其中的versionName 改为你自己下载的OpenCV的版本号,其他的compileSdkVersion和minSdkVersion和targetSdkVersion等一些设置需要和你建的model的设置一样。不一样会出错。如下图


5.在工作区根目录的 settings.gradle 中添加以下代码,改动之后会提示你需要sync,点sync now

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. include ':libraries:opencv'  
6.在你需要用到opencv的model的/src/main文件夹下新建一个jniLibs文件夹。将 刚才下载的OpenCV-2.4.8-android-sdk/sdk/native/libs中的文件拷贝进来。

7.在刚才那个model根目录的build.gradle 中的dependency下添加以下代码

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. compile project(':libraries:opencv')  
### 减少OpenCV大小的方法 #### 选择特定模块 并非所有的应用程序都需要完整的OpenCV功能集。因此,只引入所需的模块能够显著减小最终APK的尺寸[^1]。 对于仅需基本图像处理能力的应用程序来说,可能只需要core和imgproc这两个核心模块。而像aruco这样的高级特性则可以根据需求决定是否加入。 #### 使用预构建二进制文件而非源码编译 当采用`compile project(':openCVLibrary310')`方式集成时,默认情况下会包含整个OpenCV的所有组件。相比之下,直接引用官方发布的.aar或.jar形式的预构建版本,并指定所需架构(armeabi-v7a, arm64-v8a等),有助于进一步缩小体积[^2]。 ```gradle implementation 'org.opencv:opencv-android:4.5.1' ``` 注意上述命令中的版本号应替换为最新稳定版。 #### 移除未使用的.so文件 通常而言,OpenCV分发包内含有针对不同CPU指令集优化过的共享对象(.so)文件。然而并不是每种架构都适用于目标设备。可以通过Gradle脚本过滤掉不必要的ABI支持: ```groovy android { ... defaultConfig { ndk { abiFilters "armeabi-v7a", "arm64-v8a" } } } ``` 此设置表明只会打包ARMv7及AArch64平台下的原生代码,从而节省空间[^3]. #### 压缩资源文件 除了裁剪动态链接外,还可以对图片素材实施无损压缩算法降低其占用量。此外,利用ProGuard混淆工具去除冗余类成员也有助于精简整体规模[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值