转载声明,本文转自CSDN:http://blog.csdn.net/qq_22033759/article/details/51156121

ps:本来在贴吧上有人问,想自己写的,但时间有限,当初自己也是学习了这个CSDN博文后配置的,一为了收藏,二为了让更多朋友搜索到,就转载一下。。。

以下为转载原文:

我所使用的opencv版本为3.1,Android Studio版本为2.0

先从opencv官网下载对应的版本的安卓的opencv的sdk 解压出来路径不要有中文

然后在Android Studio里创建一个安卓项目,在根目录创建一个文件夹,命名为libraries

然后把sdk结业目录下的 sdk\Java文件夹复制到libraries文件夹内,重命名为opencv

接着在该opencv目录下创建一个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 21
targetSdkVersion 23
versionCode 2480
versionName "3.1.0"
} sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
aidl.srcDirs = ['src']
}
}
}
 

需要依照需求修改对应的sdk版本

然后在修改下项目的settings.gradle ,添加一行

include ':libraries:opencv'

要选择Sync Now

然后右键项目名,选择Open Module Settings,选择app然后点Dependencies,再点击加号,选第三个,把opencv添加进去
添加好后如图:

接着在/app/src/main/下创建一个文件夹叫jniLibs

把上图目录下的所有文件夹都复制到jniLibs中去。
到这就算是配置完全了。
接下来就是使用。

一定要先添加static{ System.loadLibrary(“opencv_java3”); }

我测试的代码:(界面有一个ImageView和一个Button)

package com.example.chengk.opencvexamples;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView; import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.imgproc.Imgproc; public class MainActivity extends AppCompatActivity {
static{ System.loadLibrary("opencv_java3"); }
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView)findViewById(R.id.imageView);
final Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.aa1)).getBitmap();
imageView.setImageBitmap(bitmap); final Button button2 = (Button)findViewById(R.id.button);
button2.setText("转换");
button2.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
i++;
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
//获取lena彩色图像所对应的像素数据
Utils.bitmapToMat(bitmap, rgbMat);
//将彩色图像数据转换为灰度图像数据并存储到grayMat中
Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);
//创建一个灰度图像
Bitmap grayBmp = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.RGB_565);
//将矩阵grayMat转换为灰度图像
Utils.matToBitmap(grayMat, grayBmp);
ImageView imageView = (ImageView)findViewById(R.id.imageView);
if(i%2==1)
imageView.setImageBitmap(grayBmp);
else
imageView.setImageBitmap(bitmap);
} });
}
}

运行效果图:
点击按钮前

点击按钮后

这么做确实是可行的,但空间占用太大,我这个程序占用空间将近50M,还在寻找其他更好的办法,找到了继续更新。

Android Studio配置和使用OpenCV3.x,不需要OpencvManager的更多相关文章

  1. Win10下Android studio配置

    Win10下Android studio配置 一.安装Android Studio的准备工作 1.下载好JDK,去官网上找一个下载下来 2.安装JDK.并配置环境变量.安装过程:本人将使用的是jdk- ...

  2. Android studio配置Git

    Android studio配置Git 1.下载window 版git并安装:下载地址 2.Android Studio设置git插件:File->Setting->Version Con ...

  3. Android Studio配置Git及Git文件状态说明

    Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/downlo ...

  4. Android Studio 配置SVN实现代码管理

    Refference From:http://iaiai.iteye.com/blog/2267346 一.Android Studio配置SVN Android Studio关联配置SVN很简单,在 ...

  5. Android studio 配置JNI环境

    Android studio配置jni开发环境,主要配置是两个build文件,以及新建一个jni文件,放c代码. 代码如下1: apply plugin: 'com.android.model.app ...

  6. Android studio 配置file encoding 无效,中文乱码解决办法

    通过配置Android studio 配置file encoding 无效,中文乱码,问题出现在java编译的时候jack采用了默认编码(中文windows默认的GBK编码)而乱码,所以不管更改bui ...

  7. Android Studio配置使用git

    一.准备 如果没有安装git,那么先要到到Git官网下载git,然后按照提示一步一步安装即可,这个没有什么难度,不过要记得安装的目录. 二.Android Studio配置git File->S ...

  8. android studio配置android开发环境

    1.下载安装android-studio-bundle 地址:https://developer.android.com/sdk/index.html 注意:指定android sdk和android ...

  9. Android Studio配置SVN 以及使用代码管理

    一.Android Studio配置SVN Android Studio关联配置SVN非常easy,在Settings里面.找到Version Control->Subversion.在这个页面 ...

随机推荐

  1. [ACM_水题] UVA 11729 Commando War [不可同时交代任务 可同时执行 最短完成全部时间 贪心]

    There is a war and it doesn't look very promising for your country. Now it's time to act. You have a ...

  2. ios 设置状态栏文本颜色为白色

    1,在.plist文件中添加一个键值对:设置View controller-based status bar appearance的值为NO 2,在方法中 - (BOOL)application:(U ...

  3. 浅谈压缩感知(三十):压缩感知重构算法之L1最小二乘

    主要内容: l1_ls的算法流程 l1_ls的MATLAB实现 一维信号的实验与结果 前言 前面所介绍的算法都是在匹配追踪算法MP基础上延伸的贪心算法,从本节开始,介绍基于凸优化的压缩感知重构算法. ...

  4. [Java拾遗一] XML的书写规范与解析.

    前言今天天气大好, 起了个大早开始总结一些常用的基础知识. XML一直来说都很陌生, 使用大多是用于配置文件, 之前并没有细究过其中的约束规范, 今天刚好没事来学习并总结下. 1,XML基础介绍 XM ...

  5. atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系

    atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系 1. 服务器控件是可被服务器理解的标签.有三种类型的服务器控件: 1 1.1. HTML 服务器控件  ...

  6. MySQL数据库定义与操作语言

    文章为作者原创,未经许可,禁止转载.    -Sun Yat-sen University 冯兴伟 实验1.1 数据库定义 (1)实验目的 理解和掌握数据库DDL语言,能够熟练地使用SQL DDL语句 ...

  7. Android布局优化

    前言 本篇文章为Android优化的布局部分,该部分应该是Android中很重要的,无论是在自定义控件中,还是在简单的书写布局时,都应该尽量遵循一些优化原则,这样布局的绘制效率才会更高,体验才能更好. ...

  8. DotNet中人民币符号的输出

    DotNet中人民币符号“¥”的输出<html> <head>DotNet中人民币符号的输出</head> <body> <p>¥100元& ...

  9. 正在开发纯BS的可在线编辑内容的电子病历编辑器

    在线电子病历编辑器功能预览,支持Firefox/Chrome/Opera/UC/IE/Safari.演示地址 http://www.dcwriter.cn:9090/ 在WINFORM.NET中的效果 ...

  10. Javascript中的Prototype到底是啥

    Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言.在Javascript中,类和对象看起来没有太多的区别. 通常,这样创建一个对象: functi ...