在Android中使用OpenCV 2.4.5库
2013-06-10 14:23
274 查看
虽然在OpenCV官网上有如何在Android中使用OpenCV库的文章,但是按照那个文章来根本没法成功调入OpenCV库。因此特撰写此文给出正确的挂载库的方法和挂载OpenCVManager时,函数调用的顺序。
首先本文不讨论如何通过static静态块的方法挂载OpenCV库(因为这个方法我没有成功),讨论的是通过实现 CvCameraViewListener 接口同步挂载OpenCV库,这也是OpenCV官网上推荐的做法:
Using async initialization is arecommendedway for application
development. It uses the OpenCV Manager to access OpenCV libraries externally installed in the target system.
通过此方法挂载的步骤为:
实现CvCameraViewListener 需要实现的虚函数,Eclipse中可以自动补全需要实现的虚函数。
定义BaseLoaderCallback回调函数接口,并实现这个类中的onManagerConnected()方法
覆写Activity中的OnResume方法,在调用默认OnResume后进行OpenCV库的同步挂载(2.4.5版本)
至此实现了OpenCV库的挂载,关键的问题来了,在OnCreate函数中不能使用OpenCV库相关的类和方法,因为此时OpenCV库还没有挂载上去!即使把initAsync方法放到OnCreate中也不行!博主在这里卡了很久通过各种调试才发现这个问题。可以使用Handler的方法延迟新的线程的启动以等待OpenCV库的加载
首先本文不讨论如何通过static静态块的方法挂载OpenCV库(因为这个方法我没有成功),讨论的是通过实现 CvCameraViewListener 接口同步挂载OpenCV库,这也是OpenCV官网上推荐的做法:
Using async initialization is arecommendedway for application
development. It uses the OpenCV Manager to access OpenCV libraries externally installed in the target system.
通过此方法挂载的步骤为:
实现CvCameraViewListener 需要实现的虚函数,Eclipse中可以自动补全需要实现的虚函数。
定义BaseLoaderCallback回调函数接口,并实现这个类中的onManagerConnected()方法
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { System.out.println("OpenCV loaded successfully"); } break; default: { System.out.println("OpenCV loaded Failed!"); super.onManagerConnected(status); } break; } } };
覆写Activity中的OnResume方法,在调用默认OnResume后进行OpenCV库的同步挂载(2.4.5版本)
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_5, this, mLoaderCallback);
至此实现了OpenCV库的挂载,关键的问题来了,在OnCreate函数中不能使用OpenCV库相关的类和方法,因为此时OpenCV库还没有挂载上去!即使把initAsync方法放到OnCreate中也不行!博主在这里卡了很久通过各种调试才发现这个问题。可以使用Handler的方法延迟新的线程的启动以等待OpenCV库的加载
相关文章推荐
- Android 使用OpenCV之编译环境非CygWin方式(Win7+Eclipse+ADT+CDT+NDK)
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- Android中使用OpenCV(二)
- Android 使用OPENCV实现图像实时对比
- 在Android中使用OpenCv 来处理图片
- Android 使用OpenCv,利用cmake
- Android上使用OpenCV处理图像
- [转]Android通过NDK调用JNI,使用opencv做本地c++代码开发配置方法
- Android中使用OpenCV
- Android Studio 2.2 让你5分钟配置好 OpenCV for Android(java层和native层都可以使用)
- android 使用NDK进行图像处理(openCV)时的图像转换问题(灰度图显示)
- 如何在Android中使用OpenCV
- Android上使用OpenCV处理图像
- Android OpenCV_face使用OpenCV3.20的一个免安装OpenCV Manager的脸部识别项目
- 如何在Android中使用OpenCV
- Android 使用OpenCV的三种方式(Android Studio)
- 在Android中使用OpenCv
- 【转+补充】在OpenCV for Android 2.4.5中使用SURF(nonfree module)
- android下使用opencv
- androidstudio opencv2.4.10下使用图像拼接,特征检测