Android-OpenCV

来源:互联网 发布:java面试宝典2017 编辑:程序博客网 时间:2024/05/01 10:23

         Android-opencv是opencv在Android手机上的移植版。本人花了很多时间,终于在今天将OpenCV成功生成了.apk文件,在手机上运行成功。

         

         在网上看到很多有关于这方面的文章,但感觉有很多地方说的并不详细。写此文的目的也就在于详细的介绍Android-OpenCV从下载一直到生成.apk的步骤。

         

(ps:编译Android-OpenCV的前提是Android平台已成功搭建。本人所使用的SDK为2.1,ndk为android-ndk-r4-crystax,其他的比如Cygwin,Eclipse等等属于平台搭建工作,我想读者们都已经开始学习OpenCV了,平台搭建应该早已成功了吧~  此文就不再赘述。)

 

下面我们就开始正式进入Android-OpenCV的编译。

 

          1.我们首先需要下载SVN。(一个版本控制工具,用于从Google Code上下载源代码。)

SVN下载地址:http://download.csdn.net/source/3357008

       

        安装后,在电脑桌面上点击右键,选择SVN CheckOut,用它来CheckOut

                              http://android-opencv.googlecode.com/svn/trunk

 现在的svn需要用户名和密码,因此该文件夹请在我发布的资源中免积分下载。地址如下: 

                                            http://download.csdn.net/source/3505737

         源码存放地址自定义,本文存于D:/CV1

 

CV文件夹中存放的便是我们所需要的所有源代码。

 

注意:

  • 在系统环境变量Path中必须包含cygwinbinandroid-ndk-r4-crystax的路径
  • 拷贝android-ndk-r4-crystax/cygwin/home/Administrator/android-ndk-r4-crystax,编译android-opencv时需要,编译成功之后可以删除这份拷贝

 

 

         2.下一步,启动Cygwin,通过CD命令进入D:/CV/opencv,输入sh build.sh,进行编译。

2

整个编译过程大约需要20分钟。成功后,会在D:/opencv/android/libs/armeabi和       armeabi-v7a两个文件夹生成.so文件。而这也就是我们下面所需要动态链接库。

 

          3.打开Eclipse,新建Android projects,选择Create projects from existing projects,导入刚才build的工程。如下图所示。

 3

 

 

 导入后选择run as Android application,进行编译。成功后在虚拟机上无任何反应。若显示如下信息则表示成功:4

 

 但可能会出现如下错误:

 

(1). Re-installation failed due to different application signatur

从而导致 launch canceled。

 

解决办法是用adb uninstall命令将opencv卸载,重新安装Opencv即可。

具体步骤为:启动cmd,输入adb uninstall com.opencv,成功后返回Eclipse,点击Run as Android application进行重新安装即可。

5

 

(2).adb命令为无效命令,最简单的做法是把Android SDK 文件夹Tools文件夹里面的 adb.exe 和 AdbWinApi.dll 两个文件放到系统盘的 windows/system32 文件夹里。

 

(3).com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read D:/Android 1/android-sdk-windows/AndroidManifest.xml: java.io.FileNotFoundException: D:/Android 1/android-sdk-windows/AndroidManifest.xml (系统找不到指定的文件。)

此错误经常出现在编译的最初两行。解决办法其实很简单。进入:C:/Documents and Settings/Administrator/.android
删除:debug.keystoreddms.cfg即可。

 

Opencv这个工程编译通过之后,就可以Export它,选择JAVA的JAR file,导出时去掉[obj]和[libs]这两个文件夹,AndroidManifest.xml和default.properties,输出文件名为Opencv.jar,Export设置如下图:

也就是export到自己的sample文件夹中。

 

若未遇到上述问题,那么恭喜你可以进入下一个步骤~

 

 

4.打开cygwin,去到/samples/CVCamera/,输入sh build.sh,(与build opencv类似)开始编译CVCamera的JNI,成功编译之后会生成libcvcamera.so

 

 

 

5.同样的方法导入CVCamera这个工程,编译CVCamera这个工程,生成CVCamera.apk(有6.06MB大小)

 

在这当中同样可能会出现一些错误:

 

 

7

 

 出现“Android library projects cannot be launched”时,检查工程属性中的Android选项,其Is library 单选框是不能打勾的。

 

 

6. 最后,虚拟机上出现CVCamera应用程序图标。当然,此程序在虚拟机上运行只会一闪而过。真正的测试需在真机上完成。

 

 至此,OpenCV及其例程CVCamera的编译便全部完成。

 

  

原创粉丝点击