Android studio 导入opencv3的samples(例程)——以小游戏15-puzzle为例

在网上根据教程配置好了opencv3.4.1,试了那个把彩色图变成灰度图的例子。但是想跑一下opencv里面的samples却是找了很久没找到怎么导(也可能是我太菜了),摸索出来了一条道路。。

1.首先可以先新建一个工程,然后file-new-import module:

opencv sobel源码 opencv sample_opencv sobel源码


2.按照下图选择15-Puzzle,点击ok

opencv sobel源码 opencv sample_小游戏_02


这里提示这个module需要用到opencvlibrary341,会自动导入,直接next

opencv sobel源码 opencv sample_灰度图_03


3.按照错误提示删掉以下两句话,分别在 openCVLibrary341,openCVSample15puzzle的AndroidManifest文件里

opencv sobel源码 opencv sample_小游戏_04

opencv sobel源码 opencv sample_opencv sobel源码_05


3.设置sdk版本什么的(常规操作),解释见博客需要把导入的module的build.gradle里面涉及到的东西和你本地的相对应

调整到project视图查看app里面的build.gradle,我的是这样的:

opencv sobel源码 opencv sample_灰度图_06


opencv sobel源码 opencv sample_灰度图_07


然后把openCVLibrary341和openCVSample15puzzle的build.gradle里面的值对应改一下(自己改就好啦~就不放图了)

opencv sobel源码 opencv sample_灰度图_08


4.另外虽然openCVSample15puzzle的build.gradle里面的dependencies是已经引入了库,但是还是建议删掉dependencies同步一下然后重新引入一次(有可能因为路径的原因,改成implemention也没用)

删掉这个:

opencv sobel源码 opencv sample_opencv sobel源码_09


重新引入库:file-project structure-dependencies,选中openCVSample15puzzle点击右边的+号,选择mudule dependency,选择openCVLibrary341打对勾

opencv sobel源码 opencv sample_opencv sobel源码_10


opencv sobel源码 opencv sample_灰度图_11


这里就变化啦

opencv sobel源码 opencv sample_灰度图_12


5.在src-main目录下新建一个文件夹jniLibs,将OpenCV中sdk下的native中的libs中的文件复制到该文件夹下。如下图所示(很幸运的是竟然按照我的预期只导入了***_java3.so文件哈哈哈)

opencv sobel源码 opencv sample_小游戏_13


6.在app-build.gradle中的android节点中加入自定义 jni的地址。(我的地址如下:)

sourceSets {

        main {

            jniLibs.srcDirs = ['src/main/jniLibs']

        }

    }

opencv sobel源码 opencv sample_opencv sobel源码_14


7.网上很多说下面这种方法可以不用再在安卓设备上安装opencvmanager,解释见博客,我试了。。不行,那个彩色图变灰度图的demo确实可以,但是这个不行

我就装了一下,在这里找到对应的版本(可以试一下),拷贝到安卓设备然后在安卓设备的文件管理里面找到这个安装包点击安装~

opencv sobel源码 opencv sample_opencv sobel源码_15


8.大功告成!

效果如图:其实就是一个小游戏,调用了后置摄像头,点击移动灰色小方块,只能相邻移动,直到1-15个画面按顺序排列好就能得到正常的完整画面了~

opencv sobel源码 opencv sample_灰度图_16