Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!

   最近有几个同学咨询过,在Android Stduio配置OpenCV库一直不成功,的确论坛上确实有点鱼龙混杂,所以自己努力去回忆自己配置的过程,一步一步详细地介绍给大家,大家可以完全按照文章中的步骤,肯定是能成功的!

一、安装Android Stduio+下载OpenCV for Android SDK

   首先,安装Android Stduio就不用多说了,在这里我下载安装的是Android Stduio 2.2,在这里安利大家去微信公众号软件管家可以下载安装。
   其次,下载OpenCV for Android SDK,大家可以直接去官网下载,在这里我下载的版本是OpenCV 3.2.0,下载压缩包之后进行解压,解压之后,文件里含有以下内容:

Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第1张图片

二、环境配置

1.新建一个Android项目。

2.导入依赖。

    a.file>new>import modlue
    b.之后选择文件目录,如图

Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第2张图片

 c.然后点击OK>NEXT>全部打上√ >finish(之后将自动打开的txt文件关掉)
 d.右键“APP”,选择Open module settings ,如图:

Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第3张图片
Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第4张图片
Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第5张图片

   c.之后,全部选择ok。
   d.修改OpenCV320包下的build.gradle各个版本号并将OpenCV320包下的build.gradle各个版本号与APP包下的build.gradle各个版本号保持一致(即下图的四个版本号),之后sync以下,就可以了。

Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第6张图片

3.拷贝so文件

a.进入解压好的OpenCVSDK包,依次选择文件夹,sdk>native>libs,之后选中所有的文件夹复制到,你所新建的项目,app>libs中,即最后如下图:
Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第7张图片

b.当你进入文件夹之后,发现文件夹里有两种类型的文件(.a和.so),因为.a文件是用于苹果系统的,所以为了让项目本身的大小最简洁,下面就把所有文件下的.a文件删掉。

4.修改Gradle脚本

a.把这段代码拷贝到新建项目中的APP目录下的build.gradle下面。主要有两部分,我直接在图中标记。compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')

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(org.gradle.api.tasks.compile.JavaCompile) {
    compileTask -> compileTask.dependsOn(nativeLibsToJar)
}

图片如下所示:
Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!_第8张图片

b.在完成之后,要sync以下,之后切记!!!要rebuild以下整个项目!!

三、测试

如果你是认真按照上面步骤一步一步来的,那就没有任何问题了,下面,你就需要在主活动加载opecv库,并测试一下,是否加载成功,下面我就直接上代码。

public class MainActivity extends AppCompatActivity {
    private String TAG = "loaded....";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loadopencv();
    }
    private void loadopencv() {
        boolean success = OpenCVLoader.initDebug();
        if(success){
            Log.i(TAG,"LOAD");
        }
    }
}

在这里我需要提醒一点,就是在之后的项目中,只要用到OpenCV库,就务必加上此代码,一方面是用来加载库函数,一方面可以检查你是否加载成功。
之后,你需要运行一下,如果出现“LOAD”,那就证明你成功引入opencv库。那么你就可以运用opencv库里面的函数去处理图像,例如最简单的灰度化处理等等,今天在这里我就多介绍了,码了一下午有点累了,有不懂的随时留言,第一次发帖,有排版问题多包涵。如果之后有时间,我会再介绍一些基础的在android平台利用opencv去处理图像的一些算法。

你可能感兴趣的:(Android Stduio +OpenCV配置,自己的成功经验贴,保证一次成功!)