【OpenCV for Android】Android Studio集成OpenCV
准备工作
1.下载安装Android Studio(过程略)。
2.下载Android OpenCV:https://opencv.org/releases.html,找到Android pack点击下载。

下载后解压得到如下文件,其中sdk文件夹就是Android studio集成OpenCV所需的文件。

集成步骤
1. 在Android studio中创建项目,并在file -> new -> import module中导入OpenCV模块,如图

在source directory中选择刚才解压OpenCV文件路径-> sdk -> Java,如下,点击finish按钮即可。

可能出现如下错误:点击蓝色字体,安装相关文件即可。


模块导入成功后,项目文件夹会出现如下目录:

2.添加依赖,点击file -> project structure,点击moudle下app,选择dependencies,

选择刚才下载的OpenCV库,

添加成功后如下。

添加依赖后,我们就可以在项目中使用OpenCV API了,但是如果现在运行APP,会提示安装OpenCV manager,表明此时OpenCV集成还未成功,因为自己的APP无法独立安装必须使用OpenCV manager这个APP才能运行,为了免去这个繁琐条件,我们继续执行下面的步骤。
修改build.gradle文件
1. 将OpenCVLibrary的build.gradle文件中的一些参数修改为与app的build.gradle文件中相同(红框标出的部分为需要修改的部分):


点击Sync按钮,出现如下提示:

按提示注释掉相应内容,

点击Sync则显示build成功。

2. 将解压的OpenCV文件夹目录下的sdk -> native -> libs中的文件全部拷到项目的lib目录下,


3.在app的gradle文件中添加如下代码:


build.gradle文件的全部代码如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.white.opencvmyapplication"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
compile fileTree(dir:"$buildDir/native-libs",include:'native-libs.jar')
//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(':openCVLibrary342')
}
task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
destinationDir file("$buildDir/native-libs")
baseName 'native-libs'
from fileTree(dir: 'libs', include: '**/*.so')
into 'lib/'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
}
}
至此,OpenCV的配置就完成了,避免了NDK的繁琐和依赖第三方APP OpenCV manager,但此配置方式OpenCV的加载必须通过静态加载的方式。
测试
在mainactivity中添加如下代码,运行APP,
package com.example.white.opencvmyapplication; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log; import org.opencv.android.OpenCVLoader; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
System.out.println("loading");
initLoadOpenCVLibs(); }
private void initLoadOpenCVLibs() {
boolean success = OpenCVLoader.initDebug();
if (success) {
System.out.println("loading success");
Log.d("test", "initLoadOpenCVLibs:OpenCV加载成功!");
} else {
System.out.println("loading failed");
Log.d("test", "initLoadOpenCVLibs:OpenCV加载失败!");
}
} }
在控制台打印如下,则说明OpenCV集成成功。

转载请注明出处:https://www.cnblogs.com/White-xzx/p/9563479.html
【OpenCV for Android】Android Studio集成OpenCV的更多相关文章
- OpenCV - Android Studio 中集成Opencv环境(包含opencv_contrib部分)
我在上一篇博客中说到了在Android中集成OpenCV,但是那个版本的OpenCV是没有SIFT和SURF算法的,因为这些算法是受专利保护的,所以并没有被包含在预编译库中,所以如果想要使用SIFT和 ...
- OpenCV - Android Studio 中集成Opencv环境(不包含opencv_contrib部分)
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,支持的运行环境也是非常的多,这篇文章主要讲的是Android环境集成OpenCV(IDE是Android Studio,我想Eclip ...
- Android NDK and OpenCV Development With Android Studio
Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5 ...
- 简单的调用OpenCV库的Android NDK开发 工具Android Studio
前言 本博客写于2017/08/11, 博主非专业搞安卓开发, 只是工作的需要倒腾了下Android NDK相关的开发, 博文中有什么不正确.不严格的地方欢迎指正哈 本文后续也许还会有删改, 就 ...
- 用Android studio进行 OpenCV 开发的第一个项目
我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7 家庭普通版 64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...
- Android:Android Studio导入OpenCV(Android项目)
在使用OpenCV之前,Android必须先下载ndk,因为OpenCV使用了native代码,这里建议Android Studio创建C++项目来写OpenCV的内容 1.首先在官网下载OpenCV ...
- Android 中使用 dlib+opencv 实现动态人脸检测
1 概述 完成 Android 相机预览功能以后,在此基础上我使用 dlib 与 opencv 库做了一个关于人脸检测的 demo.该 demo 在相机预览过程中对人脸进行实时检测,并将检测到的人脸用 ...
- Android NDK开发及OpenCV初步学习笔记
https://www.jianshu.com/p/c29bb20908da Android NDK开发及OpenCV初步学习笔记 Super_圣代 关注 2017.08.19 00:55* 字数 6 ...
- 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco
Android studio 集成极光推送(Jpush) (华为手机)报错, E/JPush: [JPushGlobal] Get sdk version fail![获取sdk版本失败!] W/Sy ...
随机推荐
- Hbase之IP变更后无法启动问题解决
# 修改hbase IP配置文件地址:/opt/hbase-1.1.13/conf/hbase-site.xml <property> <name>hbase.zookeepe ...
- sqlbulkcopy 批量更新 数据库
转载: http://blog.csdn.net/wangzh300/article/details/7382506 private static void DataTableToSQLServer( ...
- SpringMVC处理ajax请求的跨域问题和注意事项
.首先要知道ajax请求的核心是JavaScrip对象和XmlHttpRequest,而浏览器请求的核心是浏览器我的个人博客(基于SSM,Redis,Tomcat集群的后台架构) github:htt ...
- Fantastic Graph 2018 沈阳赛区网络预赛 F题
题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边流入1,流出1,最后使流量平衡 解析: ...
- catch/finally中不应使用 writer.flush()
在开发中遇到了一个问题,关闭流的时候会出现某种莫名其妙的错误.后来一个巧合看到了这个解决方法. 先看问题(知道答案以后,才知道是这里出错了) FileWriter writer = null; Str ...
- POJ2125 Destroying The Graph
题目链接:ヾ(≧∇≦*)ゝ 大致题意: 给出一个有向图D=(V,E).对于每个点U,定义两种操作a(u),b(u) 操作a(u):删除点U的所有出边,即属于E,操作花费为Ca(u). 操作b(u):删 ...
- NOIP2017列队(phalanx)解题报告
列队作为NOIP2017最后一道题,其实并不难,只是相对于其它题目,有点小小的工业 首先,这道题我用splay维护的,如果你不会splay,又想学一下splay,可以来这里学一学,接下来步入正题 首先 ...
- System.gc()与Runtime.gc()的区别
(1) GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象 ...
- NOIP2018 Day0 回首向来萧瑟处,也无风雨也无晴
回首向来萧瑟处,也无风雨也无晴 NOIP2018 Day0 感想 by HGOI ljc20020730 Back ground: /* HGOI 陈功杰让我们写初赛总结?! (考这么烂还要写总结? ...
- [IOI2018] werewolf 狼人
[IOI2018] werewolf 狼人 IOI2018题解 (其实原题强制在线,要用主席树) 代码: 注意: 1.下标从0~n-1 2.kruskal重构树开始有n个节点,tot从n开始,++to ...