您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > ndk环境搭建及jni连接opencv教程
1.解压android-ndk32-r10-windows-x86.zip2.按照下图选择window-preferences配置eclipse;选择解压后的ndk存放路径新建android工程在根目录下建立jni文件夹创建Android.mk文件,内容如下LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)OPENCV_LIB_TYPE:=STATICifeq($(wildcard$(OPENCV_MK_PATH)),)#trytoloadOpenCV.mkfromdefaultinstalllocationincludeD:\OpenCV-3.0.0-android-sdk\OpenCV-android-sdk\sdk\native\jni\OpenCV.mkelseinclude$(OPENCV_MK_PATH)endifLOCAL_MODULE:=ImgFunLOCAL_SRC_FILES:=ImgFun.cppinclude$(BUILD_SHARED_LIBRARY)标黄的行是需要修改的,本例中为opencv的配置,正常的可以去ndk的例程里边找找,创建Application.mk文件,内容如下APP_STL:=gnustl_staticAPP_CPPFLAGS:=-frtti-fexceptionsAPP_ABI:=armeabiarmeabi-v7a10)新建并配置一个Builder点击Project-Properties-Builders-New,新建立一个Builder。在弹出的对话框上面点击Program,OK!如图所示在弹出的对话框【EditConfiguration】中,配置选项卡【Main】:Location中需要填入nkd-build.cmd的路径(NDK安装目录下)。WorkingDiretcoty中需要填入TestNDK的工程根目录。如图所示:注:不要漏了配置选项卡【Refresh】,如图所示:勾选“Refreshresourcesuponcompletion”,勾选“Theentireworkspace”,勾选“Recuresivelyincludesub-folders”。配置选项卡【BuildOptions】,如图七所示:勾选“Aftera“Clean””,勾选“Duringmanualbuilds”,勾选“Duringautobuilds”,勾选“Specifyworkingsetofrelevantresources”。点击“SpecifyResources…”勾选TestNDK工程的“jni“目录,Finish!当在console里面看到如图八所示的信息,则表示一切正常,此时就已经是自动编译代码了。注:如果不成功:Project-clean-选择工程-点击OK选择addNativeSupport...内容和自己的工程名子一样就可以了添加opencv支持库:选择工程的properties,添加android版本的opencv的三个库函数软件:eclipse编程语言:Javaopencv(图像处理函数)安卓:拍照---camera(自定义)no系统相机opencv(图像处理)android编程环境:参考链接和eclipse首先下载JDK,并配置环境集成的eclipse在网盘中,直接解压可以用调opencv:两种掉opencv的方式--任选,参考链接:和Eclipse是什么关系啊JAVA是在JVM也就是JAVA虚拟机上运行的,而通过JDK的编译可以使你编写的程序在JVM上运行,而eclipse的出现则是让你编写程序更加的轻松方便。说道运行环境和开发工具的区别就是:程序通过开发工具开发出来,而通过运行环境来运行没有说包含的关系,是相辅相成的,eclipse是开发工具,但是不用eclipse你直接使用记事本也是可以开发程序的,只是开发起来十分费劲。到底SDK是什么softwaredevelopkit,就是软件开发工具包。我相信您编程也知道,不是所有的功能都需要你自己完成的,比如说你要算个开发,会用到Math.sqrt(m);对吧?而这个sqrt和Math类其实都是某些大牛们写好的,然后你直接用。软件开发工具包其实就是这样,包括了这些函数和类(当然还有一些其他东西,比如说系统环境啊等等),让你可以直接使用大牛们写好的方法或叫做函数,你也能够更方便的开发程序。在上一篇转载的文章()中,已经对OpenCV在android环境的搭建进行了比较详细的说明,但文中所用版本为OpenCV2.3.1,与目前最新版OpenCV-2.4.3.2-android-sdk稍有差异。本文将在新版基础上进行OpenCV4android入门级说明。1.环境搭建进行android开发所需要的环境一般为:eclipse+androidsdk+ADT,而OpenCV的开发由于需要编写本地代码(C/C++),因此还需要安装以下工具:NDK,Cygwin,CDT。网上都有大量详细的安装讲解,本文只描述下其中关键步骤。1.1NDK的安装(1)NDK下载后解压到固定目录即可,无需安装。本文解压到D盘根目录下,其路径为:D:\android-ndk-r8d;(2)添加环境变量,将其安装路径添加到系统path变量中,并添加系统变量NDKROOT:D:\android-ndk-r8d。1.2Cygwin的安装(1)安装包当然可以选择全部,只是如此以来则比较耗时。你也可以只安装开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make;(2)将安装路径添加系统变量path中;(3)为了方便的在命令行下调用AndroidNDK,找到C:\cygwin\home\(你的用户名)这个目录,打开文件.bash_profile,在文件的最下面加上下面两行内容:NDK=/cygdrive/f/android-ndk-r6b-windows/android-ndk-r6bexportNDK1.3CDT的安装打开找到对应的repository地址,注意这个地址对应的Eclipse版本要与第二步中你下载的版本一致。接着,打开Eclipse软件Help-InstallNewSoftware菜单安装即可。2.OpenCV4Android2.1下载进入官网()下载OpenCV4Android并解压,其目录结构如下:图1OpenCV-2.4.3.2-android-sdk目录结构其中,sdk目录即是我们开发opencv所需要的类库;samples目录中存放着若干opencv应用示例(包括人脸检测等),可为我们进行android下的opencv开发提供参考;doc目录为opencv类库的使用说明及api文档等;而apk目录则存放着对应于各内核版本的OpenCV_2.4.3.2_Manager_2.4应用安装包。此应用用来管理手机设备中的opencv类库,在运行opencv应用之前,必须确保手机中已经安装了OpenCV_2.4.3.2_Manager_2.4_*.apk,否则opencv应用将会因为无法加载opencv类库而无法运行。2.2将SDK引入工作空间(1)选择一个路径,新建文件夹做为工作空间(我在E盘根目录下新建workspace目录来做为工作空间);(2)将OpenCV-2.4.3.2-android-sdk中的sdk目录copy至工作空间,并将其更名为OpenCV-SDK(是否更改名称无所谓,这是我个人习惯而已);(3)以新建的目录为工作空间,打开eclipse;(4)将OpenCV-SDK引入到工作空间中,如下图所示:图2图3图4图53开发实例在经过上述的环境配置之后,就可以进行opencv开发了。如所述,android中opencv的开发有两种方式:直接调用opencv中的javaapi;利用JNI编写C++OpenCV代码,通过AndroidNDK创建动态库。本文分别利用这两种方式实现图像的灰度处理操作。3.1工程一:通过调用OpenCV提供的javaapi实现灰度处理3.1.1创建工程(1)打开eclipse,创建android应用工程GrayProcess;(2)将测试图像lena.jpg添加到资源目录res/drawable-hdpi中;(3)在PackageExplorer中选择项目GrayProcess,单击右键在弹出菜单中选择Properties,然后在弹出的Properties窗口中左侧选择Android,然后点击右下方的Add按钮,选择OpenCVLibrary2.4.3并点击OK,操作完成后,会将OpenCV类库添加到GrayProcess的AndroidDependencies中,如下图所示:图6图7图83.1.2工程代码(1)字符串资源文件:strings.xml[html]viewplaincopyprint?1.resources2.3.stringname=app_nameGrayProcess/string4.stringname=hello_worldHelloworld!/string5.stringname=menu_settingsSettings/string6.stringname=title_activity_mainMainActivity/string7.stringname=str_procgrayprocess/string8.stringname=str_descimagedescription/string9.10./resources(2)布局文件:main.xml[html]viewplaincopyprint?1.LinearLayoutxmlns:android=:tools=:orientation=vertical4.android:layout_width=match_parent5.android:layout_height=match_parent6.7.Button8.android:id=@+id/btn_gray_process9.android:layout_width=fill_parent10.android:layout_height=wrap_content11.android:text=@string/str_proc/12.13.ImageView14.android:id=@+id/image_view15.android:layout_width=wrap_content16.android:layout_height=wrap_content17.android:contentDescription=@string/st
本文标题:ndk环境搭建及jni连接opencv教程
链接地址:https://www.777doc.com/doc-2889518 .html