转载声明,本文转自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,内容为

  1. apply plugin: 'com.android.library'
  2.  
  3. buildscript {
  4. repositories {
  5. mavenCentral()
  6. }
  7. dependencies {
  8. classpath 'com.android.tools.build:gradle:2.0.0'
  9. }
  10. }
  11.  
  12. android {
  13. compileSdkVersion 23
  14. buildToolsVersion "23.0.3"
  15.  
  16. defaultConfig {
  17. minSdkVersion 21
  18. targetSdkVersion 23
  19. versionCode 2480
  20. versionName "3.1.0"
  21. }
  22.  
  23. sourceSets {
  24. main {
  25. manifest.srcFile 'AndroidManifest.xml'
  26. java.srcDirs = ['src']
  27. resources.srcDirs = ['src']
  28. res.srcDirs = ['res']
  29. aidl.srcDirs = ['src']
  30. }
  31. }
  32. }
  1.  

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

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

  1. include ':libraries:opencv'

要选择Sync Now

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

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

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

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

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

  1. package com.example.chengk.opencvexamples;
  2.  
  3. import android.graphics.Bitmap;
  4. import android.graphics.drawable.BitmapDrawable;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.ImageView;
  10.  
  11. import org.opencv.android.Utils;
  12. import org.opencv.core.Mat;
  13. import org.opencv.imgproc.Imgproc;
  14.  
  15. public class MainActivity extends AppCompatActivity {
  16. static{ System.loadLibrary("opencv_java3"); }
  17. int i=0;
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22. ImageView imageView = (ImageView)findViewById(R.id.imageView);
  23. final Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.aa1)).getBitmap();
  24. imageView.setImageBitmap(bitmap);
  25.  
  26. final Button button2 = (Button)findViewById(R.id.button);
  27. button2.setText("转换");
  28. button2.setOnClickListener(new Button.OnClickListener()
  29. {
  30. @Override
  31. public void onClick(View v)
  32. {
  33. i++;
  34. Mat rgbMat = new Mat();
  35. Mat grayMat = new Mat();
  36. //获取lena彩色图像所对应的像素数据
  37. Utils.bitmapToMat(bitmap, rgbMat);
  38. //将彩色图像数据转换为灰度图像数据并存储到grayMat中
  39. Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);
  40. //创建一个灰度图像
  41. Bitmap grayBmp = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.RGB_565);
  42. //将矩阵grayMat转换为灰度图像
  43. Utils.matToBitmap(grayMat, grayBmp);
  44. ImageView imageView = (ImageView)findViewById(R.id.imageView);
  45. if(i%2==1)
  46. imageView.setImageBitmap(grayBmp);
  47. else
  48. imageView.setImageBitmap(bitmap);
  49. }
  50.  
  51. });
  52. }
  53. }

运行效果图:
点击按钮前

点击按钮后

这么做确实是可行的,但空间占用太大,我这个程序占用空间将近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. 实现SQL Server中的切割字符串SplitString函数,返回Table

    有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了. -- ===================================== ...

  2. C语言 队列 顺序结构 实现

    一个能够自动扩容的顺序结构的队列 ArrQueue (GCC编译). /** * @brief C语言顺序结构队列的实现 * @author wid * @date 2013-10-30 * * @n ...

  3. 设置jenkins代理

    http://stackoverflow.com/documentation/jenkins/919/introduction-to-jenkins Natively, Jenkins runs on ...

  4. 使用SharePoint CSOM 编写高效的程序

    上一篇文章中简单的介绍了使用CSOM进行编程.今天主要讲一下CSOM使用中一些小技巧,可以让你的程序运行的更快. 单独加载某些属性 在上文中的例子,需要返回Web对象信息的时候,我们使用了如下的代码: ...

  5. HighCharts之2D柱状图

    1.HighCharts之2D柱状图源码 column.html: <!DOCTYPE html> <html> <head> <meta charset=& ...

  6. javascript图片懒加载与预加载的分析

    javascript图片懒加载与预加载的分析 懒加载与预加载的基本概念.  懒加载也叫延迟加载:前一篇文章有介绍:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片. 预加载:提前加载图片, ...

  7. java利用16进制来辨别png格式的图片

    很多人知道利用.png的字符串结尾可以判断前端传入的图片是否为png格式,但是这只是潜意识的判断!那么如何利用png读写的特殊内容来深意识地判断图片格式呢?最近在做东西的时候遇到了点问题,在加载图片的 ...

  8. GEF - 制作一个简单图形化编辑框架笔记1

    在首先来看看GEF是什么,GEF的全称是Graphical Editing Framework,图形化框架,可以利用此框架做图形化编.他的基本原理是采用MVC开发模式. 以下是一些例子 GEF里面包含 ...

  9. 详解Bootstrap表单组件

    表单常见的元素主要包括:文本输入框.下拉选择框.单选框.复选框.文本域.按钮等.下面是不同的bootstrap版本: LESS:  forms.less SASS:  _forms.scss boot ...

  10. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...