美文网首页Android OpenCV
Android平台下的图片处理---OpenCV的使用(1)

Android平台下的图片处理---OpenCV的使用(1)

作者: 善笃有余劫 | 来源:发表于2019-01-19 15:46 被阅读83次

    OpenCV是什么

    百度百科:

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

    正如提到音视频处理不得不提ffempg 说到图像绘制不等不提openGL一样。在图像处理方面,就不得不提OpenCV了。

    选择OpenCV的几个可能的理由:

    1.开源 2.跨平台 3.使用范围广 4.轻量高效 5.使用方便

    导入工程

    导入OpenCV工程 选择Android_SDK 工程

    下载页面: OpenCV 版本下载页面

    image.png

    下载解压就行

    image.png

    AndroidStudio 打开工程

    下载NDK和Cmake资源文件 链接好 轻松跑起来

    跑起来跑起来

    导入的工程文件列表:

    image.png

    点击任意一个工程:

    如你所愿,跑起来了 但是没成功

    image.png
    "It seems that you device does not support camera (or it is locked). Application will be closed."
    

    原因很简单,手机版本太高了 相机需要动态申请权限

    动态权限申请

    申请库

     implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
    

    Activity 继承 修改 FdActivity extends FragmentActivity

    private RxPermissions rxPermissions;
    private String[] permissionList = new String[]{Manifest.permission.CAMERA};
    rxPermissions = new RxPermissions(this);
            rxPermissions.request(permissionList).subscribe(new Consumer<Boolean>() {
                @Override
                public void accept(Boolean aBoolean) throws Exception {
    
                }
            });
    

    完工 重启工程 一个人脸识别的DEMO

    image.png

    区分使用混合c++源码 和 直接使用so库

    使用opencv_java.so文件

    我没来看下这个opencv库

    image.png

    分为so库文件和java文件

    so是已经封装好的c++方法 对应 java的调用

    java代码则是c层代码的调用和封装 便于使用

    核心java文件在core包下:

    image.png

    其他的文件像android包下面的:

    基本的加载类 opencv加载类 相机类 等

    image.png

    具体使用还是看文档吧:

    最新的还是在 官网 虽然是英文的 翻译翻译还是能看的

    opencv_4.0 文档

    除了这种使用方式还有一种直接下载C++源码 通过混合编译的方式调用

    这种方式可以获得更加自由的使用,也可以将核心方法放在c++层。
    相对于java,使用c层视乎能获得更大的性能提升。如果你对速度要求很高的话,建议自己写c层代码 通过混合编译 调用(NDK)

    而且能获得最大的功能支持,当然你需要学习更多关于混合编译的知识。包括 NDK开发 c++代码编写

    不过这些代价是值得的。

    我这次重点还是OpenCV的使用 所以会直接使用这个opencv 模块作为整个opencv的依赖。至于NDK什么的,有空再有需求的时候再回来说。

    写一个测试的DEMO

    且看下一篇文章:

    文档资料推荐

    SDK包的sdk文件夹下面自带了文档:

    百度云分享---OpenCV
    opencv-4.0.1-android-sdk\OpenCV-android-sdk\sdk\java\javadoc路径下面

    image.png

    点开:index.html即可

    image.png

    最新的文档英文资料:官网Opencv 4.0 文档

    翻译的中文资料(17年的翻译版本):https://www.w3cschool.cn/opencv/

    这个都是2017年了,居然还是用eclipse演示Android项目开发

    我的建议是 先看 中文文档 再看 opencv 官网的 更新了什么新的东西

    相关文章

      网友评论

        本文标题:Android平台下的图片处理---OpenCV的使用(1)

        本文链接:https://www.haomeiwen.com/subject/mwoodqtx.html