Android Studio 接入OpenCV 3.2.0 并不使用OpenCV_Manager_3.2.0的APK包来进行图像处理
来源:互联网 发布:淘宝怎样隐藏订单 编辑:程序博客网 时间:2024/06/09 21:09
2016年,公司让我做个手机号码识别功能,主要是快递运单上面的机打手机号码,当时研究了好长时间的OpenCV 也没有接入成功,主要是想把手机号码那块区域提取出来直接让Google的开源Tesseract OCR库来进行识别.因为OpenCV这个玩意儿里面的代码全是C++写的,当时的进度又比较赶,我一看C++的代码看都看不懂就没仔细研究,只把拍出来的照片进行了宽高限制,所以最终对准备号码就比较麻烦了,导致被领导说了一通,显得我这一年里面没什么进步,工资也没加多少。所以心情不开心!
为了能让自己的工作能得到领导的认可,在过完年后的工作里,我特意抽时间再研究了下OpenCV,终于把这个难题解决了。
上面都是我说的废话,看下面:
网上找了很多办法,大多在Activity中OnResume这个方法中写的是下面这串代码:
不用担心,这个SO库就在你从OpenCV官网上下载的包中:C:\Users\kb82\Desktop\open_cv\OpenCV-Android-sdk\sdk\native\libs 当然了,这个只是我存放在电脑上的目录。
---【图一】
--【图二】这个就是你需要的.so库了
好了,废话不多说了!下面是重点:
Step1:下载OpenCV下载地址 http://opencv.org/点击打开链接
【图三】
点击进入后等待几秒便开始下载了。下载到哪儿需要自己设置找一下,一般在系统下载目录里可以找到。
由于下载的包里存在【图二】中的.so库我们就不配置NDK了~
Step2:导入OpenCV的sdk
2-1 AS中执行-->File->New->Inport Module,找出OpenCV-android-sdk目录下sdk中的Java文件夹。
导入成功以后如下图:
2-2导入libopencv_java3在项目app/src/main目录下新建文件夹jniLibs,然后将OpenCV-android-sdk目录下的
\sdk\native\libs对应的各个平台.so文件放进去。
导入成功以后如下图:
2-3到这里,我们还没有结束-需要在app-build.gradle中的android节点中加入自定义 jni的地址。(我的地址如下:)
2-4在我们的项目Module下的build.gradle中添加依赖目录,只有这样我们才能在代码中使用Opencv包中的代码
这样,我们的工作就算完成了。这样我们就算配置好了该有的资源了。
那么有的人又会问,我这样配置好了为什么系统还是存在需要安装manager 的APK文件呢?原因出在我们初始化openCV的时候!
Opencv 在初始化的时候需要执行这样一个API:
进入到initOpenCV方法中我们可以看他是如何处理的:
我们看注释Loads and initializes OpenCV library from current applicationpackage.Roughly,it's an analog of system.loadLibrary("opencv_java").
这说明,我们可以把所需要的包放到本地,但是是哪个包呢,从注释里可以大概知道应该是libopencv_java3.so这个包,即我们之前放在jniLibs中对应的.so。
我们跟进代码看一下
Step3:最后一步
说到这里,还差最后一步了,就是使用本地so库。
在你使用界面的OnResume界面直接加一句下面的代码:
上面那两个基本相似的initDebug()一个是使用cuda利用gpu跑算法的,一个是不用的,从他的名字可以看出来.
这样不装Manager也就可以使用了。
结束~
- Android Studio 接入OpenCV 3.2.0 并不使用OpenCV_Manager_3.2.0的APK包来进行图像处理
- Android Studio 接入OpenCV 3.2.0 并不使用OpenCV_Manager_3.2.0的APK包来进行图像处理
- android 使用NDK进行图像处理(openCV)时的图像转换问题(灰度图显示)
- 使用Android Studio打Andorid apk包的流程
- Android Studio使用Opencv实现图像的实时处理
- 使用Android Studio的9patch来进行切割图片
- Android 对打包的 apk 进行反编译
- android开发在jni中使用Opencv进行图像处理,环境搭建篇
- Android上使用OpenCV处理图像
- Android上使用OpenCV处理图像
- OpenGL使用OpenCV处理图像进行纹理映射的使用范例
- Android Studio + NDK JNI调用openCV图像处理
- Arm下使用Qt和Opencv进行图像处理的入门例程和遇到的问题
- C#中使用OpenCV等库进行图像处理
- C#中使用OpenCV等库进行图像处理
- 对比使用C# unsafe代码和OpenCV进行图像处理的效率(上)
- android studio打apk包
- android---------SurfaceTexture----------通过SurfaceTexture来对预览的图像进行处理
- 100层高的大楼,丢玻璃球的问题
- memcached初学总结
- NullPointException 利器 Kotlin 可选型
- Java并发编程与技术内幕:线程池深入理解
- dovecot+mariadb
- Android Studio 接入OpenCV 3.2.0 并不使用OpenCV_Manager_3.2.0的APK包来进行图像处理
- 信号高级特性
- 后台传来毫秒格式日期换成年月日时分秒显示在前台
- xlistview刷新 加载方法
- 阻塞和非阻塞系统调用
- flexigrid插件增加复选框
- opencv findContuors 详解
- 总结:让一个div垂直水平居中
- I