项目需要再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
7.在刚才那个model根目录的build.gradle 中的dependency下添加以下代码
到这里为止就设定好了
手机端,不用安装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);
}
}