查看原文
其他

OpenCV3.2集成Android Studio2.2开发配置

lovelygirl OpenCV学堂 2019-03-29

主要知识点

  • OpenCV4Android3.2 SDK介绍与下载

  • AS2.2与OpenCV3.2集成

  • 程序演示与代码

  • AS集成OpenCV3.2配置常见错误

OpenCV4Android3.2 SDK介绍与下载

OpenCV是图像处理与机器学习的计算机视觉开源框架,其SDK支持Java、C++、Python、支持在Win系统、Android系统、苹果系统上开发编程。OpenCV3.2是OpenCV的最新Release,包含了大量的缺陷修正与新API使用,一个例子就是在二值化的时候OpenCV2.x对于自动阈值只有OTSU方法可选择,但是在OpenCV3.x中又多了一种自动阈值方法-三角阈值法。最新的OpenCV3.2 for Android SDK的下载地址如下: https://github.com/opencv/opencv/releases/tag/3.2.0

AS2.2与OpenCV3.2集成

  • 打开Android Studio新建一个Android项目

    从【File】->【New...】->【New Project...】开始,根据向导配置即可。

  • 导入OpenCV Java SDK支持

【File】->【importmodule】->【选择路径】确定之后看到如下:

点击【Next】

点击【Finish】按钮即可结束导入模块OpenCV320库。


  • 添加OpenCV3.2依赖

右键选择Android项目->【Open ModuleSettings】

点击右上角【+】

选择第三个【Module dependency】,导入opencv3.2依赖, 此刻打开build.gradle(app)可以看到依赖已经导入。


  • 修改gradle script支持opencv相关so依赖导入

打开build.grale文件在修改添加如下的脚本:


程序演示与代码

环境配置好之后, 在MainActivity里面添加一个方法初始化方法,以便加OpenCV相关OS文件,代码实现如下:

  1. private void iniLoadOpenCV() {

  2.    boolean success = OpenCVLoader.initDebug();

  3.    if(success) {

  4.        Log.i(CV_TAG, "OpenCV Libraries loaded...");

  5.    } else {

  6.        Toast.makeText(this.getApplicationContext(), "WARNING: Could not load OpenCV Libraries!", Toast.LENGTH_LONG).show();

  7.    }

  8. }

成功加载之后,就可以加载资源文件名为test的图片,加载成功显示如下:

然后就可以加载图像资源文件为Bitmap对象,转换为灰度,代码实现如下:

  1. // 获取资源文件对应的图像文件

  2. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);

  3. // 传给灰度转换方法

  4. private void convertGray(Bitmap bitmap) {

  5.    Mat src = new Mat();

  6.    Mat dst = new Mat();

  7.    Utils.bitmapToMat(bitmap, src);

  8.    Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);

  9.    Utils.matToBitmap(dst, bitmap);

  10.    src.release();

  11.    dst.release();

  12. }

效果显示如下:

AS集成OpenCV3.2配置常见错误

第一次运行的时候很多人就会得到这样错误,开玩笑,你没有遇到!可能是你很有预见性的重新build整个项目,恭喜你!

需要rebuild整个app项目,首先要【build】->【clean build】做完之后再选择【build】->【rebuild】,然后就可以真机运行,从此开始你的人工智能学习之旅啦!


======================

别人根本不会在乎你失败了什么,

只会记得你成功了什么

======================


关注【OpenCV学堂】

长按或者扫码二维码即可关注

+OpenCV学习群 376281510

进群暗号:OpenCV




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存