OK!先看看OpenCVActivity中是如何写的:

public class OpenCVActivity extends Activity{

private Button btn;

private ImageView img;

private Bitmap srcBitmap;

private Bitmap grayBitmap;

private static boolean flag = true;

private static boolean isFirst = true;

private static final String TAG = “gao_chun”;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_opencv);

img = (ImageView)findViewById(R.id.img);

btn = (Button)findViewById(R.id.btn);

btn.setOnClickListener(new ProcessClickListener());

}

@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…”);

}

//OpenCV库加载并初始化成功后的回调函数

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {

@Override

public void onManagerConnected(int status) {

// TODO Auto-generated method stub

switch (status){

case BaseLoaderCallback.SUCCESS:

Log.i(TAG, “成功加载”);

break;

default:

super.onManagerConnected(status);

Log.i(TAG, “加载失败”);

break;

}

}

};

public void procSrc2Gray(){

Mat rgbMat = new Mat();

Mat grayMat = new Mat();

srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.genie);

grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565);

Utils.bitmapToMat(srcBitmap, rgbMat);//convert original bitmap to Mat, R G B.

Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);//rgbMat to gray grayMat

Utils.matToBitmap(grayMat, grayBitmap); //convert mat to bitmap

Log.i(TAG, “procSrc2Gray sucess…”);

}

public class ProcessClickListener implements View.OnClickListener{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(isFirst){

procSrc2Gray();

isFirst = false;

}

if(flag){

img.setImageBitmap(grayBitmap);

btn.setText(“查看原图”);

flag = false;

}else{

img.setImageBitmap(srcBitmap);

btn.setText(“灰度化”);

flag = true;

}

}

}

}

再来看看简单的布局界面 activity_opencv.xml

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_alignParentTop=“true”

android:text=“OpenCV”/>

<ImageView

android:id="@+id/img"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerInParent=“true”

android:background="@drawable/genie"/>

<Button

android:id="@+id/btn"

android:layout_width=“wrap_content”

android:layout_height=“wra
p_content”

android:layout_below="@id/img"

android:layout_centerHorizontal=“true”

android:text=“灰度化”/>"

运行后的效果图:

   

按照步骤来,基本没多大问题,想了想Demo还是上传供大家参考吧,不过由于拷出来后发现整个包有220多M过于恐怖,索性就删掉了一些东西,将app目录下的build目录下内容删除,将src —> main —> jniLibs 下的.so库删除了,注意:若下载demo运行,需要在OpenCV的解压包目录下,将sdk–>native–>libs文件夹下的四个目录复制到项目的jniLibs目录下便可。

CMA==/dissolve/70/gravity/Center)

按照步骤来,基本没多大问题,想了想Demo还是上传供大家参考吧,不过由于拷出来后发现整个包有220多M过于恐怖,索性就删掉了一些东西,将app目录下的build目录下内容删除,将src —> main —> jniLibs 下的.so库删除了,注意:若下载demo运行,需要在OpenCV的解压包目录下,将sdk–>native–>libs文件夹下的四个目录复制到项目的jniLibs目录下便可。

Android Studio中配置及使用OpenCV示例(一),android应用案例开发大全第四版源码相关推荐

  1. 手写代码详解Android Hook入门demo,android应用案例开发大全第四版源码

    2. 实用价值 3. 前置技能 4. hook通用思路 5. 案例实战 6. 效果展示 正文 == 1. hook的定义 hook,钩子.勾住系统的程序逻辑. 在某段SDK源码逻辑执行的过程中,通过代 ...

  2. Android开发——Android Studio中配置及使用OpenCV示例

    from: http://www.mobile-open.com/2015/86176.html 本文主要讲述了Android Studio中配置及使用OpenCV示例,现在整理出来分享给Androi ...

  3. 怎么配置android远程服务器地址,在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”...

    需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上 ...

  4. 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )

    文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...

  5. 【Android Protobuf 序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 中配置插件 | AS 中编译源文件 )

    文章目录 一.protobuf-gradle-plugin 插件简介 二.Android Studio 中配置 protobuf-gradle-plugin 插件 三.Android Studio 中 ...

  6. Android Studio中配置Genymotion模拟器

    Android Studio Android Studio下载地址: https://developer.android.google.cn/studio/index.html 百度网盘:https: ...

  7. 《Android 应用案例开发大全(第二版)》——2.6节绘制相关类

    本节书摘来自异步社区<Android 应用案例开发大全(第二版)>一书中的第2章,第2.6节绘制相关类 ,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区"异步 ...

  8. 《Android 应用案例开发大全(第二版)》——6.1节Android系统的信使:Intent

    本节书摘来自异步社区<Android 应用案例开发大全(第二版)>一书中的第6章,第6.1节Android系统的信使:Intent ,作者李宁,更多章节内容可以访问云栖社区"异步 ...

  9. 《Android 应用案例开发大全(第二版)》——导读

    本节书摘来自异步社区<Android 应用案例开发大全(第二版)>一书中的目录 ,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

最新文章

  1. CVPR2017-最新目标检测相关
  2. 转: 从微信的故障谈谈服务可用性
  3. [BZOJ]2563: 阿狸和桃子的游戏
  4. 简谈TCP的八个特性
  5. 《他其实没那么喜欢你》经典台词
  6. zookeeper 分布式锁_关于redis分布式锁,zookeeper分布式锁原理的一些学习与思考
  7. 打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。...
  8. 如何从PDF文件中快速的提取PDF文件
  9. selenium火狐驱动_在Selenium Firefox驱动程序上运行测试
  10. 离散数学之数理逻辑01
  11. html5 打开支付宝app,支付宝H5唤醒APP
  12. 连接数据库报错:Access denied for user ‘root‘@ ‘*.*.*.*‘ (using password: YES)
  13. 功率开关的RC-Snubber电路设计
  14. 设计模式 访问者模式
  15. firefox加速技巧
  16. unable to read local cache ‘C:\\Users\\admin/gensim-data\\information.json‘ during fallback 解决办法
  17. 更新Pycharm中的pip版本及第三方包的安装问题
  18. 摒弃Date、Calendar,使用新的日期API
  19. matlab中偶分量怎么表示,matlab信号与系统演示实验
  20. HihoCoder - 1441 后缀自动机一·基本概念(模拟)

热门文章

  1. 激光点云构建地图(二)手动标注点云地图
  2. 用计算机里可以加50度电,一台电脑开一天用多少度电?台式机节电节能建议和措施...
  3. R语言学习之正则化表达式
  4. 抵御“黄貂鱼”攻击,谷歌使出禁用2G“大招”
  5. 解决问题:ubuntu双屏显示的时候,鼠标从左屏幕向右切在边界处会卡顿,需要快速移动鼠标冲过
  6. JavaScript(四)
  7. java 猫 老鼠_猫抓老鼠-Java面向对象特点梳理
  8. 摄像头视频直播方案比较之方案三:好望云
  9. 未开启window无线服务器,win10未开启远程桌面服务器
  10. DHT协议(官方版本)