1、下载opencv for android

地址:http://opencv.org/downloads.html

2、建立android工程

我这里建立一个名为OpencvAndroidTest的工程
Android Studio 1.5 opencv开发_第1张图片

3. 在工程根目录下建立一个libraries的目录

Android Studio 1.5 opencv开发_第2张图片

**4. 在libraries目录下面建立一个opencv的目录

Android Studio 1.5 opencv开发_第3张图片

5、解压下载好的android for opencv sdk

我这里以OpenCV-2.4.10-android-sdk举例,解压后如下
这里写图片描

6、将加压后目录的sdk/java/下面的所有文件添加到刚才建好的libraries/opencv下面

Android Studio 1.5 opencv开发_第4张图片

7、在opencv下面建立build.gradle文件,并拷贝如下内容

Android Studio 1.5 opencv开发_第5张图片
上面需要注意的就是红线部分,首先gradle版本要对应,其次编译工具版本对应,前者尤其重要,后者编译时会有响应提醒,根据编译错误修改即可
贴出实际内容如下
`apply plugin: ‘android-library’

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ‘com.android.tools.build:gradle:1.5.0’
}
}

android {
compileSdkVersion 23
buildToolsVersion “23.0.2”

defaultConfig {    minSdkVersion 8    targetSdkVersion 23    versionCode 3000    versionName "3.0.0"}sourceSets {    main {        manifest.srcFile 'AndroidManifest.xml'        java.srcDirs = ['src']        resources.srcDirs = ['src']        res.srcDirs = ['res']        aidl.srcDirs = ['src']    }}

}`

8、顶层settings.gradle中添加gradle相关同步项

Android Studio 1.5 opencv开发_第6张图片

9、利用gradle同步工程

点击菜单“Tools/Android/Sync Project with Gradle File”,此时gradle会同步工程,同步完结果如下
Android Studio 1.5 opencv开发_第7张图片

10、添加app对opencv的依赖

点击菜单”File/ProjectStructure”,然后按如下方式操作
Android Studio 1.5 opencv开发_第8张图片

11、选择opencv添加并点击ok确认,之后会看到gradle再次自动同步

Android Studio 1.5 opencv开发_第9张图片

12、添加so库

a、在app/src/main/下面建立目录jniLibs
b、将OpenCV-2.4.10-android-sdk/sdk/native/libs下面选择一个你所需的平台拷贝到jniLibs下面
c、拷贝到jniLibs下面之后,删除jniLibs下面所有的以“.a”结尾的库文件只留下以”.so”结尾的文件,如下所示:
d、再次同步工程
Android Studio 1.5 opencv开发_第10张图片

13、编写代码编译测试

/* * 建立一个OpencvAndroidTest的一个类进行测试 * /package com.gozen.opencvandroidtest;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.highgui.Highgui;/** * Created by apple on 16/3/10. */public class OpencvTest {    public static Mat imgAnd(String imgA, String imgB) {        Mat imgaMat = Highgui.imread(imgA);        Mat imgbMat = Highgui.imread(imgB);        Mat imgcMat = imgaMat.clone();        Core.bitwise_and(imgaMat, imgbMat, imgcMat);        return imgcMat;    }}
/* *MainActivity如下 *需要强调的一点是相关opencv的东西不能再onCreate方法中调用 *否则会异常 */package com.gozen.opencvandroidtest;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import junit.framework.Assert;import org.opencv.android.OpenCVLoader;import org.opencv.core.Mat;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    protected void onResume() {        super.onResume();        if (OpenCVLoader.initDebug()) {            Log.d("test", "Opencv for java load success");        } else {            Log.d("test", "Opencv for java load failed!");        }        Mat result = OpencvTest.imgAnd("/data/data/gozen/temp.png", "/data/data/gozen/mask.png");        Log.d("test", "And img Size is: (" + result.cols() + ","                + result.rows() + ")");    }}

更多相关文章

  1. 学习目录
  2. 自定义图片点击效果
  3. 【Android 开发】:UI控件之显示图片控件 ImageView 的使用方法
  4. 自定义 RadioButton 选中和未选中时的图片
  5. android前台渲染图片
  6. android网络图片的下载

随机推荐

  1. JAVA视频笔记(day5)
  2. 自定义MapReduce输入格式 - 找不到构造函
  3. java数组常用功能
  4. JAVA异步加回调的例子
  5. java中文乱码解决之道(三)—–编码详情:伟大
  6. NoSuchMethodError: javax.servlet.http.
  7. [置顶] Java中的类装载和初始化模
  8. Javascript 同步异步加载详解 (十足的好文
  9. java的数组下标的非常严重的问题,异常不爽
  10. eclipseIDE for Java EE 下 离线 安装CDT