最近工作需要这样的功能 如下图 要在类似功能在android上实现
然后实现成这样
这两张图来自博客:图像校正—透视变换
可惜他用的是C/C++语言写的调用opencv,我参考了下他写的方案就想到了android 的jni方式加载opencv
所以就看到了这个:
jni调用 [安卓开发笔记一]Android开发配置opencv环境超详细教程
首先如果你的对你的C/C++很有自信的话可以尝试这个方式
但对于很久没用过C和对OpenCV第一次了解的人来说,这种方式简直寸步难行。
所以我就用了使用Java的方式来进行导入.
那么我们就首先做个准备工作吧:
1.安装android studio (会来看这个文章的,这个我觉得大家都会装了)
2.下载opencv sdk 我这里的版本是3.2 下载地址:http://opencv.org/releases.html
做好了这个那么就开始吧
首先我们看下opencv SDk的文件目录
这里的有个sdk文件夹点进去,会看到下图然后打开android studio
导入moudule,找到上面的java文件夹导入
然后打开
之后打开app 的 build.gradle 然后打开OpenCVLibrary320的build.gradle 有些地方需要一致
把app中的复制一下
覆盖原来的openCVLibrary320中
接下来需要导入库了,找到复制里面的所有文件夹
粘贴到工程的这个地方
然后别急,先去配置一些东西打开app的build.gradle,写入下列代码
然后构建下算是导入opencv4Java 了.
为了方便复制:
compile fileTree(dir: "$buildDir/native-libs",include: 'native-libs.jar')
task nativeLibsToJar(type: Jar,description:'create a jar archive of the native libs'){ destinationDir file("$buildDir/native-libs") baseName 'native-libs' from fileTree(dir: 'libs',include: '**/*.so') into 'lib/' } tasks.withType(JavaCompile){ compileTask -> compileTask.dependsOn(nativeLibsToJar) }
如果有问题这样操作下
这边有个opencv加载到android中的视频教程地址需要挂个VPN : https://www.learn2crack.com/2016/03/setup-opencv-sdk-android-studio.html
有个开源项目可以使用看看:https://github.com/pqpo/SmartCropper