在Android中加载并使用opencv的方法

项目需要再android app中处理JPEG image的DCT系数,并写出来。以前用Matlab+libjpeg,想起来就很麻烦。

因此,这次还是试试opencv。一上午的时间,用来了下载opencv,再把它加载到一个test项目中去,并实现了一个小例子。主要参考的是以下几篇博文:(博客是个好东西啊)


安装-1:http://blog.csdn.net/tx360v5/article/details/23793019

安装-2(1的后续部分):http://stackoverflow.com/questions/17767557/how-to-use-opencv-in-android-studio-using-gradle-build-tool


使用示例:http://blog.csdn.net/gao_chun/article/details/49359535


手机端,不用安装opencv manager也能运行opencv的教程:http://www.cnblogs.com/tail/p/4618790.html


下面只详细写出安装-1 和 手机端,不用安装opencv manager的细节

安装-1:

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 文件中添加如下代码

apply plugin: 'com.android.library'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            aidl.srcDirs = ['src']
        }
    }
}


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 manager的细节:

    @Override
    protected void onResume() {
        super.onResume();
        //load OpenCV engine and init OpenCV library
//        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, getApplicationContext(), mLoaderCallback);
//        Log.i(TAG, "onResume sucess load OpenCV...");
        if (!OpenCVLoader.initDebug()) {
            Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
        } else {
            Log.d(TAG, "OpenCV library found inside package. Using it!");
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
    }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值