Eclipse下配置OpenCV

https://jingyan.baidu.com/article/4f7d5712ca0a031a21192760.html

在Android上,有两种使用OpenCV的方法。方法一:使用OpenCV提供好的库文件,然后调用OpenCV的java api来进行图像处理。方法二:使用OpenCV的C++的api,这时需要先使用NDK创建动态库,然后在Android工程中间接调用动态库中的函数。

值得说明的是,如果仅是使用第一种方法,CDT和NDK是不需配置的,只需将OpenCV的库导入到工程中即可。

工具/原料

  • 可运行Android程序的Eclipse
  • OpenCV开发包
  • Windows OS(笔者使用Win 7旗舰版)

方法/步骤

  1. 首先下载OpenCV4Android。笔者在2015.06.18下载的最新版本是OpenCV-3.0.0-android-sdk.zip。将其解压到非系统盘里。

    然后创建一个新的文件夹,用于OpenCV的Android程序的开发。

    注意,该WorkSpace必须和解压的OpenCV-android-sdk在同一个盘符下,不然可能导致后期的导入库函数失败。

    效果如下图所示:

    Eclipse下配置OpenCV
  2. 导入OpenCV库和实例到Eclipse中。

    OpenCV Library的导入与一般的库的导入一致。具体如下:

    在“Package Explorer”->Import,进入到如下界面:

    Eclipse下配置OpenCV
  3. 按照引导,选择……\OpenCV-android-sdk\sdk,就可将OpenCV导入到Eclipse中。效果如下:

    Eclipse下配置OpenCV
  4. 这样,OpenCV就导入到Eclipse中了,接下来就是导入实例,并将该OpenCV库导入到实例中。实例的导入与一般的工程导入一致,这里不做介绍。

    需要说明的是,这里的实例没有使用OpenCV的C++的api,所以不需配置CDT和NDK。导入工程后,会给出如下无法识别opencv库中的内容的错误提示。

    这时,就需要为工程关联OpenCV库。

    Eclipse下配置OpenCV
  5. 关联OpenCV库,步骤见下图:

    Eclipse下配置OpenCV
    Eclipse下配置OpenCV
  6. 这样OpenCV库就正确导入了,程序错误消失。

    运行(run)例程,在AVD或手机上调试,可能会出现如下错误:“OpenCV manager package was not found”。

    出现这种错误的主要原因是,在源程序中使用到OpenCV Manager。给出两种解决方案:

    方案一:

    在AVD或真机上安装OpenCV Manager.apk。

    方案二:修改程序源码,将其转换成不需要OpenCV Manager。

    Eclipse下配置OpenCV
  7. 由于在下载的OpenCV-3.0.0-android-sdk.zip的解压文件的……\OpenCV-android-sdk\apk中包含需要安装到真机的版本,所以我们选择方案一。

     

    Eclipse下配置OpenCV
    END

注意事项

  • 这里使用的实例程序因为没有用到OpenCV 的C++ api,所以直接导入OpenCV的包,就可正确运行。如果你的实例程序中包含了对C++ api的引用,则简单地导入OpenCV的包是不能保证程序可调试的。