【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

原文地址:https://www.cnblogs.com/White-xzx/p/9563479.html

时间: 2024-11-05 13:34:14

【OpenCV for Android】Android Studio集成OpenCV的相关文章

Android Studio 中集成Opencv环境(包含opencv_contrib部分)

我在上一篇博客中说到了在Android中集成OpenCV,但是那个版本的OpenCV是没有SIFT和SURF算法的,因为这些算法是受专利保护的,所以并没有被包含在预编译库中,所以如果想要使用SIFT和SURF算法,需要自己来编译OpenCV Android SDK.在OpenCV 2.4.x版本中,这些算法被包含在nonfree模块中:从3.0版本开始,用于图像特征匹配的一些算法(比如SIFT,SURF,BRIEF,FREAK等)被转移到了opencv_contrib项目的xfeatures2d

Android NDK and OpenCV Development With Android Studio

Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5.7k 浏览 ---------------- If you do NOT know Chinese, you can just skip this part ---------------- 一直打算将原来的XFace进行改进,最近终于有了些时间可以动手了,改进计划如下:开发上使用Android

Android Studio 导入OpenCV 并调试运行face-detection例子

p { margin-bottom: 0.1in; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: justify } p.western { font-family: "Calibri", serif; font-size: 10pt } p.cjk { font-family: "Droid Sans Fallback"; font-size: 10pt } p.ctl {

源码编译opencv的安卓Android库

因为项目需要,稍微改了opencv一点源码,这个时候就需要源码编译opencv的库了.我pc机器上面试了没有问题,但是我们项目是跑在移动设备安卓上面的,算法通过jni打包接口供上层java调用,opencv用的安卓版本的,这就坑爹了,没办法,我就编译安卓版本的opencv吧,这里面的坑真多. 参考链接: https://www.jianshu.com/p/925614d6e9e0 OpenCV3.4源码交叉编译android库 https://blog.csdn.net/Martin_chen2

OpenCV4Android释疑: 透析Android以JNI调OpenCV的三种方式(让OpenCVManager永不困扰)

前文曾具体探讨了关于OpenCV的使用,原本以为天下已太平.但不断有人反应依旧配不好OpenCV4Android,不能得心应手的在Android上使用OpenCV.大量的精力都浪费在摸索配置上.尤其是OpenCVManager诞生之后.更让人无语.大家第一个反应就是怎样才干不安装OpenCVManager.由于要多安装这个东西对客户来说体验太不好了. 咱家昨夜研究至两点,今早七点起床.最终把头绪理清了. 以下咱家以之前做过的一个基于OpenCV2.3.1.android通过jni调用opencv

OpenCV学习笔记(六)—— OpenCV for Android打开相机

在之前的篇章中,我们完成了Android平台开发环境的配置,也找到了剔除OpenCV Manager API的办法,那么接下来我们开始从零开始,完成一个个人的程序,实现功能如下: 1.识别指定的图片,并用彩色框绘制图片边缘 2.在识别的图片上显示一个3D的模型 不难看出,这实际上就是AR最初步的功能,当然要完成这个功能却需要完成很多事情,步骤: 打开相机->获取图像流 -> 模式识别 -> 对象跟踪 -> 绘制模型 ===============================分割

Build opencv libraries for android arm, x86 ubuntu

废话不多说. 准备工作: 1. 下载源代码: http://opencv.org/ 编译平台:ubuntu14.04 opencv 2.4.6.1 本人用这样的办法编译了opecv 2.4.9 的没有什么问题, 问题比opencv2.4.6.1还要少, 事实上他们的原理是一样的. opencv 源代码根文件夹----${opencv_home} 2. 改动 ${opencv_home}/platforms/scripts/cmake_android_arm.sh 文件,加入编译选项 -DBUIL

OpenCV学习笔记(四)—— OpenCV for Android移植到Android平台

如今,大部分的AR都是基于移动设备的,所以这里我们尝试在Android中调用OpenCV的功能来做一些相关的测试.由于OpenCV是基于C语言和部分C++语言开发的,而Android开发使用的则是Java,那么如何才能在Java中调用OpenCV库中的类或者代码呢?这就需要借助于JNI了,不过在使用JNI之前,我们首先要先配置好开发环境. 一.工具: 1.Eclipse:包含JDK.SDK.IDE.CDT.NDK和ADT插件,也就是在android软件开发环境配置完成之后再加上NDK和CDT插件

Android Studio集成SVN报错:can't use subversion command line client : svn

Android Studio集成SVN插件,check out出代码后,每次开启都会在右上角出现如下错误: Can't use Subversion command line client: svn Probably the path to Subversion executable is wrong. Fix it. Errors found while svn working copies detection. Fix it. 下面直接上解决方案吧: 1.安装客户端http://ncu.dl