• Opencv4android的Android Studio环境配置及项目实例下载


    因为软件竞赛的项目会用到Opencv for Android,所以就研究了一下如何在Android Studio上配置Opencv4Android

    环境概述:

    Android Studio 2.3
    
    OpenCV-2.4.11-android-sdk

    接下来主要是详细的讲解每一步的配置,然后再最后我会放上我做的一个示例项目

    1.首先是下载OpenCV-2.4.11-android-sdk

    不知道为什么之前上Opencv官网发现Android部分挂了,找了半天没找着下载的地方,最后终于在SourceForge上找到了,所以为了方便大家不用到处找,我把文件传到七牛云了

    http://onhdz331f.bkt.clouddn.com/OpenCV-2.4.11-android-sdk.zip

    如果不放心的话,大家也可以到opencv官网上去下载这个sdk。

    2.依据博友gloomyfish的文章进行配置,博主的视频当中的操作是对的,但是他的文章有些错误,会导致配置失败,或者说的不太清楚的的地方,我下面会补充讲下

    OpenCV On Android开发 - Android Studio上环境配置

    (1)错误更正  “SDK下面native文件下所有的文件都copy到你创建好的项目libs目录下”这句话有错,应该改为SDK ativelibs文件下所有的文件都copy到项目libs目录下,这样问题解决

    (2)错误更正  最后要加到build.gradle(Module:app)的那句

    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')

    应该是要放到build.gradle(Module:app)中的dependencies{}里面,而且不是像他所说的第一行,而是应该放在第二行,也就是这句

    compile fileTree(include: ['*.jar'], dir: 'libs')

    的下一行。

    (3)说得不太清楚的:要放到build.gradle(Module:app)的这部分代码,是直接加在dependencies{}后面的。

     1 task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
     2     destinationDir file("$buildDir/native-libs")
     3     baseName 'native-libs'
     4     from fileTree(dir: 'libs', include: '**/*.so')
     5     into 'lib/'
     6 }
     7 
     8 tasks.withType(JavaCompile) {
     9     compileTask -> compileTask.dependsOn(nativeLibsToJar)
    10 }

    下面给出完整的build.gradle(Module:app)文件,并加上了注释,表现了应该如何更改

     1 apply plugin: 'com.android.application'
     2 
     3 android {
     4     compileSdkVersion 25//在不同的android版本中,sdk版本不同
     5     buildToolsVersion "25.0.2"
     6     defaultConfig {
     7         applicationId "com.example.a18350.opencvtest"
     8         minSdkVersion 19
     9         targetSdkVersion 25
    10         versionCode 1
    11         versionName "1.0"
    12         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    13     }
    14     buildTypes {
    15         release {
    16             minifyEnabled false
    17             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    18         }
    19     }
    20 }
    21 
    22 dependencies {
    23     compile fileTree(include: ['*.jar'], dir: 'libs')
    24     compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')//那句话是加在这里的,而不是加在第一行
    25     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    26         exclude group: 'com.android.support', module: 'support-annotations'
    27     })
    28     compile 'com.android.support:appcompat-v7:25.3.1'
    29     compile 'com.android.support.constraint:constraint-layout:1.0.2'
    30     testCompile 'junit:junit:4.12'
    31     compile project(':openCVLibrary2411')
    32 }
    33 //请将两个task放在这里,也就是dependencies后面
    34 task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
    35     destinationDir file("$buildDir/native-libs")
    36     baseName 'native-libs'
    37     from fileTree(dir: 'libs', include: '**/*.so')
    38     into 'lib/'
    39 }
    40 
    41 tasks.withType(JavaCompile) {
    42     compileTask -> compileTask.dependsOn(nativeLibsToJar)
    43 }

    (4)请注意,还应该要更新build.gradle(module:OpenCVLibrary2411)信息,打开build.gradle(module:OpenCVLibrary2411),修改文件中的

      1)compileSdkVersion
    
      2)buildToolsVersion
    
      3) minSdkVersion
    
      4)targetSdkVersion

    其内容与build.gradle(Module:app)中信息相一致,这里做的事情其实是调整sdk的版本,使得编译opencv的sdk,构建工具的版本和app相同。

     大功告成,这里放上运行成功的项目地址

    http://git.oschina.net/ylzheng/opencv4android_example

    大家有不明白的可以看下这个项目,如果有任何问题的话,欢迎在评论中指出。

    作者: Elliott Zheng

    出处: http://www.cnblogs.com/elliottzheng/p/6695446.html>

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(elliott.zheng@foxmail.com)咨询.

  • 相关阅读:
    angular安装指定版本
    Fluttter通过按钮来打开抽屉Drawer或者endDrawer
    angular中的animation动画
    flutter pubspec.yaml配置文件详解
    angular-cli卸载安装
    angular的项目基本配置的了解
    angular使用代理解决跨域
    IOS开发之UI布局
    用Objective-C写了一个简单的批量更改文件名的程序
    使用Objective-C 计算代码运行时间
  • 原文地址:https://www.cnblogs.com/elliottzheng/p/6695446.html
Copyright © 2020-2023  润新知