返回介绍

Android 开发:安装 NDK,移植 OpenCV2.3.1,JNI 调用 OpenCV 全过程

发布于 2025-02-26 12:46:18 字数 2684 浏览 0 评论 0 收藏 0

开发环境:Fedora14 , 操作中以 root 权限操作,这年头 Android 移植上 OpenCV 就强大了,可以做很多复杂的视频分析、图像处理工作了!如火灾、人脸、视频行为的分析等。欢迎 Android OpenCV 爱好者,加入 OpenCV4Android 联盟群:66320324。备注:yanzi

一:NDK 的安装

首先是安装 NDK,安装之前需要安装 CDT,具体的参照 http://blog.csdn.net/yanzi1225627/article/details/7736364 这里来完成。这里再详细记录下 NDK 的安装过程。google 下载 NDK,也可以点击这里下载: http://download.csdn.net/detail/yanzi1225627/5015893,下载后输入 tar -jxvf android-ndk-r8-linux-x86.tar.bz2 -C /usr/local/android/将其解压到/usr/local/android/ 目录。『注,我的 android 相关文件都安装在这里。这个目录不是死的。』然后 gedit /etc/profile,在里面添加:export PATH=$PATH:/usr/local/android/android-ndk-r8,从安装 JDK 到 eclipse, android, NDK,在/etc/profile 文件里,添加的命令一共有如下三条:

export JAVA_HOME=/usr/local/android/jdk1.7.0_04
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:/usr/local/android/android-ndk-r8

只要这三条就行了。然后 source /etc/profile 使刚才的设置生效。

在终端里输入:ndk-build,可以测试出 ndk 安装成功了么有。

注:有的时候也可以通过在线安装方式,在 eclipse 里点 help-install new software,网址输入这个:ADT - https://dl-ssl.google.com/android/eclipse/ ,也会看到安装 NDK Plugins, 如果经过上面的步骤,NDK 不能用就把这个也装上。 但如果只装这个,好像不中,找不到 ndk 安装的目录,也无法配置路径。

二:OpenCV 的移植

这里的移植不是像在 qt 下那么麻烦,这是因为 OpenCV 退出来直接支持 Android 的版本,所以不需要自己编译。直接下下来,解压缩就可以了。我用的 OpenCV2.3.1,需要的可以直接到 csdn 资源里下载,链接: http://download.csdn.net/detail/yanzi1225627/5013701 ,也可以自己到 sourceforge 上下载,链接: http://sourceforge.net/projects/opencvlibrary/files/opencv-android/ ,从这里可以看出从 OpenCV2.3 开始就有编译好的 android 版本。最新的是 2.4.3 版本,在 2012 年 12 月 24 发布的。牛逼阿 !

接下来就是配置。事实上有两种方法在 Android 里调用 OpenCV,一种是使用 OpenCV java Api,一种是通过 JNI 的方式。这里是针对后者。将 OpenCV-2.3.1-android-bin.tar.bz2 解压缩,然后将里面的 OpenCV-2.3.1 拷贝到 Eclipse 工作空间的平级目录。图示:

为此,我们现先建一个工作空间。新建文件夹/home/yan/TestOpenCV,点 eclipse 里的 File---Switch workspace---other,选中这个目录。切换到这个工作空间后,点 Window---Preference--android,选中自己的 android-sdk 的安装目录,我的是:/usr/local/android/android-sdk-linux。然后就可以在这个工作空间里正常 android 开发了,如果不设置这个,新建的工程全是红叉叉。

新建一个项目 HaveImgFun,包名是 package com.testopencv.haveimgfun; 然后将刚才解压缩出来的 OpenCV-2.3.1-android-bin\samples"下的 includeOpenCV.mk 文件拷贝到和项目 HaveImgFun 同一级目录 中。图示:

在 eclipse 里选中那个项目,新建一个文件夹 jni,然后新建文件:Android.mk,里面的内容是:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include ../includeOpenCV.mk
ifeq ("$(wildcard $(OPENCV_MK_PATH))","")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文