在Android上,有两种使用OpenCV的方法。方法一:使用OpenCV提供好的库文件,然后调用OpenCV的java api来进行图像处理。方法二:使用OpenCV的C++的api,这时需要先使用NDK创建动态库,然后在Android工程中间接调用动态库中的函数。
值得说明的是,如果仅是使用第一种方法,CDT和NDK是不需配置的,只需将OpenCV的库导入到工程中即可。
https://jingyan.baidu.com/article/4f7d5712ca0a031a21192760.html
在Android上,有两种使用OpenCV的方法。方法一:使用OpenCV提供好的库文件,然后调用OpenCV的java api来进行图像处理。方法二:使用OpenCV的C++的api,这时需要先使用NDK创建动态库,然后在Android工程中间接调用动态库中的函数。
值得说明的是,如果仅是使用第一种方法,CDT和NDK是不需配置的,只需将OpenCV的库导入到工程中即可。
首先下载OpenCV4Android。笔者在2015.06.18下载的最新版本是OpenCV-3.0.0-android-sdk.zip。将其解压到非系统盘里。
然后创建一个新的文件夹,用于OpenCV的Android程序的开发。
注意,该WorkSpace必须和解压的OpenCV-android-sdk在同一个盘符下,不然可能导致后期的导入库函数失败。
效果如下图所示:
导入OpenCV库和实例到Eclipse中。
OpenCV Library的导入与一般的库的导入一致。具体如下:
在“Package Explorer”->Import,进入到如下界面:
按照引导,选择……\OpenCV-android-sdk\sdk,就可将OpenCV导入到Eclipse中。效果如下:
这样,OpenCV就导入到Eclipse中了,接下来就是导入实例,并将该OpenCV库导入到实例中。实例的导入与一般的工程导入一致,这里不做介绍。
需要说明的是,这里的实例没有使用OpenCV的C++的api,所以不需配置CDT和NDK。导入工程后,会给出如下无法识别opencv库中的内容的错误提示。
这时,就需要为工程关联OpenCV库。
关联OpenCV库,步骤见下图:
这样OpenCV库就正确导入了,程序错误消失。
运行(run)例程,在AVD或手机上调试,可能会出现如下错误:“OpenCV manager package was not found”。
出现这种错误的主要原因是,在源程序中使用到OpenCV Manager。给出两种解决方案:
方案一:
在AVD或真机上安装OpenCV Manager.apk。
方案二:修改程序源码,将其转换成不需要OpenCV Manager。
由于在下载的OpenCV-3.0.0-android-sdk.zip的解压文件的……\OpenCV-android-sdk\apk中包含需要安装到真机的版本,所以我们选择方案一。