1、在androidMainfest.xml中加入:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2、添加控件imageview、按钮button进行消息响应

3、图片的显示需要缩放:

            //读取图片,并显示到控件imageViewImageView imageView = (ImageView) findViewById(R.id.imageView);Bitmap d= BitmapFactory.decodeFile(picturePath);int nh = (int) ( d.getHeight() * (512.0 / d.getWidth()) );Bitmap scaled = Bitmap.createScaledBitmap(d, 512, nh, true);imageView.setImageBitmap(scaled);

1、从https://github.com/CyberAgent/android-gpuimage下载gpuimage,并把android-gpuimage/library/src文件目录源码拷贝处理,与我们自己的项目src目录合并。

2、在我们的src目录下,有个build.gradle打开,然后往dependencies中加入:

compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'

3、在mainactivity中加入gpu相关处理程序

//gpu 预处理
GPUImage mGPUImage = new GPUImage(this);
//mGPUImage.setGLSurfaceView((GLSurfaceView) findViewById(R.id.imageView));//加入这句,程序会崩溃
mGPUImage.setImage(scaled); //设置gpu要处理的图片
mGPUImage.setFilter(new GPUImageSobelEdgeDetection());//设置滤波方法
d = mGPUImage.getBitmapWithFilterApplied();//进行gpu图像处理,获取处理后的图片

4、mainactivity主要源码如下:

//读取图片,并显示到控件imageView
ImageView imageView = (ImageView) findViewById(R.id.imageView);
Bitmap d= BitmapFactory.decodeFile(picturePath);
int nh = (int) ( d.getHeight() * (512.0 / d.getWidth()) );//把图片缩放到可以在屏幕上显示
Bitmap scaled = Bitmap.createScaledBitmap(d, 512, nh, true);
//gpu 预处理
GPUImage mGPUImage = new GPUImage(this);
//mGPUImage.setGLSurfaceView((GLSurfaceView) findViewById(R.id.imageView));//加入这句,程序会崩溃
mGPUImage.setImage(scaled); //设置gpu要处理的图片
mGPUImage.setFilter(new GPUImageSobelEdgeDetection());//设置滤波方法
d = mGPUImage.getBitmapWithFilterApplied();//进行gpu图像处理,获取处理后的图片

imageView.setImageBitmap(d);//设置view控件中的显示内容

算法移植优化(二)android gpuimage使用相关推荐

  1. 嵌入式算法移植优化学习笔记5——CPU,GPU,TPU,NPU都是什么

    嵌入式算法移植优化学习笔记5--CPU,GPU,TPU,NPU都是什么 一.什么是CPU? 二.什么是GPU? 三.什么是NPU? 四.什么是TPU? 附: 随着AI的广泛应用,深度学习已成为当前AI ...

  2. 算法移植优化(三)android dlib 人脸检测使用

    android dlib 人脸检测使用 一.编译阶段 1.在cmakelist.txt中加入: include(src/main/cpp/dlib/cmake) 然后再链接dlib库就可以了: tar ...

  3. 算法移植优化(一)android 学习笔记

    1.在android中,每个activity表示一个页面,当我们想要用一个按钮打开某个文件的时候,就涉及到页面的切换问题:就相当于MFC中的视图切换,当然MFC打开文件是用了内置的对话框页面. 每个a ...

  4. 算法移植优化(六)tensorflow模型移植推理优化

    一.freeze graph #coding=utf-8 #write by hjimce-2017-3-30 import tensorflow as tf from tensorflow.pyth ...

  5. 算法移植优化(七)cmake常用函数记录

    由于cmake我一般是项目移植的时候,才会涉及到,一些常用函数隔一段时间就会忘记,所以在此做一下笔记,以便日后查看. 1.添加链接库所在的目录: link_directories("./li ...

  6. 算法移植优化(四)c++11 多线程

    c++11多线程库:std::thread 一.join函数:用于等待线程对象运行结束 程序从main函数开始,本来由一个线程执行:当执行到std::thread定义一个线程对象,给定初始构造函数后, ...

  7. 【Android 内存优化】垃圾回收算法 ( 内存优化总结 | 常见的内存泄漏场景 | GC 算法 | 标记清除算法 | 复制算法 | 标记压缩算法 )

    文章目录 一. 内存优化总结 二. 常见的内存泄漏场景 三. 内存回收算法 四. 标记-清除算法 ( mark-sweep ) 五. 复制算法 六. 标记-压缩算法 一. 内存优化总结 内存泄漏原理 ...

  8. 【Android 内存优化】Android 原生 API 图片压缩原理 ( Bitmap_compress 方法解析 | Skia 二维图形库 | libjpeg 函数库 | libpng 函数库 )

    文章目录 一. 图片质量压缩方法 二. Skia 二维图形库 三. libjpeg.libpng 函数库引入 在博客 [Android 内存优化]图片文件压缩 ( Android 原生 API 提供的 ...

  9. 强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C(下)

    强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C 本篇实现一个基于A2C框架的PPO算法,应用于连续动作空间任务. import torch import torch.nn a ...

最新文章

  1. mysql centos 源码安装_centos7源码安装mysql8
  2. zip直链生成网站_安装网站程序
  3. springboot整合alibbaba-dubbo
  4. python在哪个方向岗位最多_Python就业方向这么多,哪些岗位最有发展?
  5. php 带$字符处理,thinkphp中的特殊字符处理
  6. VB6升级到VB2010之一:变量升级~
  7. vmware fusion 7 序列号
  8. android获取本地连接ip地址,参照第二步将本地连接改成自动获取IP地址即可
  9. 楷书书法规则_楷书的结构法则
  10. 概率论与数理统计-离散型随机变量基础知识
  11. 50岁的程序员还奋战一线,软件测试能干到多少岁?有年龄限制吗?
  12. PCB入门使用技巧——个人笔记
  13. 读书笔记都应该写成这样才牛叉!
  14. 阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
  15. SQL 难点解决:集合及行号
  16. MS Access 与 Excel区别与各自的优势
  17. H5全景视频VR视频
  18. Guava Predicate 用法整理
  19. MBA案例分析(行销与营销之营销五)
  20. SVN使用中的经验浅谈

热门文章

  1. jsp页面javascript没反应
  2. 使用jsp,tag提取字符串中的单词
  3. python 3.8 新特性_Python 3.8六大新功能
  4. android 长按 秒事件_原来手机长按2秒,能开启5个实用功能,一键提取图片上的文字...
  5. 两个空间点直接距离投影公式_HBAO(屏幕空间的环境光遮蔽)
  6. DEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。...
  7. Python-selenium-操作元素
  8. Roman and Browser-罗曼的浏览器 CodeForce1100A 暴力
  9. flask standrad class 使用
  10. 【转】Java和C++的区别有哪些?