嵌入式系统开发技术设计报告

上传人:碎****木 文档编号:220862321 上传时间:2021-12-09 格式:DOCX 页数:13 大小:522.55KB
返回 下载 相关 举报
嵌入式系统开发技术设计报告_第1页
第1页 / 共13页
嵌入式系统开发技术设计报告_第2页
第2页 / 共13页
嵌入式系统开发技术设计报告_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《嵌入式系统开发技术设计报告》由会员分享,可在线阅读,更多相关《嵌入式系统开发技术设计报告(13页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统开发技术设计报告组长: 成员:中国石油高校华东计算机及通信工程学院计算机科学系二 0年 12 月3 / 12设计名称OpenCV 在 Android 环境下的移植及应用完成时间20*年 12 月验收时间20*年 12 月本组成员状况姓名学号承担的任务成 绩张71216制定方案,工程进度支配,移植 OpenCV 到android,开发OpenCV 在安卓中的应用郑71309搜集资料,学习 Opencv 程序设计,开发OpenCV 在安卓中的应用林71214 配置安卓开发环境,学习安卓中 jni 的使用方法,开发OpenCV 在安卓中的应用一、引言OpenCV 的全称是:Open Sou

2、rce Computer Vision Library 。OpenCV 是一个基于开源发行的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效由一系列 C 函数和少量 C+ 类构成,同时供给了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。它的应用领域格外广泛,包括人机互动、物体识别、图像分割、人脸识别、机器视觉、汽车平安驾 驶等。随着手机性能的不断提高,OpenCV 往安卓上移植已经成为可能,安卓设备移植上OpenCV 之后将能够进展简单的图像处理和视频分析工作,人们不必拘泥于使用固定

3、的设备进展图像以及视频的处理,从而增加了处理 的机敏性。本课程设计实现的就是OpenCV 到安卓的移植以及在安卓上实现一个简洁的图像处理应用。Android 应用程序是通过Android SDKSoftware Development Kit利用 Java 编程语言进展开发,同时也可以通过 JNI 调用C 动态库,不过这种开发方式存在技术障碍,伴随着 Android NDK(Native Development Kit )的问世,使得“JAVA+C” 的开发方式走向成熟。二、总体设计1、功能描述本课程设计分为以下四个模块,各模块功能介绍如下:Android-OpenCV 工程:OpenCV 中

4、大局部重要API 在该工程中已经封装成了JAVA 接口,为安卓上的OpenCV 开发供给C、C+函数支持。Android NDK:它包括从C / C+生成原生代码库所需要的工具和build files,能够将全都的原生库嵌入可以在Android 设备上部署的应用程序包文件application packages files ,即.apk 文件中,支持全部将来Android 平台的一些列原生系统头文件和库。在本课程设计中担当重要角色,包括穿插编译OpenCV 源代码、编译测试程序等。Cygwin:Windows 下模拟Linux 操作环境,在其中执行NDK 编译。Eclipse:Android

5、开发环境,开发android 程序,生成可执行的.apk 文件,连接真机或虚拟机进展调试。2、设计特色本课程设计的特色在于成功的将android-opencv 移植到eclipse 开发环境中去,实现了在android 设备开发图像处理、视频分析应用,提高了android 设备的使用价值。编译环境承受Android NDK+Cygwin,便利开发者在windows 环境下开发“java+c”程序。Cygwin 模拟 Linux 环境Android NDK 穿插编译工具C 程序代码的编辑、编3译/、12 生成库文件。3、体系构造Eclipse 安卓开发环境生成可执行的apk 文件。Eclipse

6、 安卓开发环境Java 代码编辑、编译。C 代码开发环境:Java 代码开发环境:三、具体设计1、Android NDK 开发环境搭建(1) 、NDK 下载本课程设计使用的NDK 版本是 android-ndk-r4-crystax,这是一款面对android 的编译工具,下载后解压,存放位置自己定义,我放在G 盘根名目下。(2) 、Cygwin 下载由于 NDK 编译代码时必需要用到make 和gcc,所以必需搭建一个Linux 环境,下载Cygwin,安装时要留意一下几点:安装名目最好不要放在有中文和空格的名目里;在选择需要下载的包时,由于不清 楚各个包的用途,为了避开出错,所以选择了全部

7、下载;由于是从国外站点下载资源,速度略微有些慢, 大约 12 个小时,期间应确保网络通畅。安装后在系统环境变量Path 中参加cygwin 的 bin 和android-ndk-r4-crystax 的路径,检测是否安装成功,翻开 Cygwin Terminal,在命令行输入“cygcheck-c cygwin”,会打印出当前cygwin 的版本和运行状态,显示status 是“OK”,那么表示安装成功,否那么需要重新安装。下面需要配置NDK 环境变量,配置文件为.bash_profile,我的文件名目是D:cygwinhomezhangyu.bash_profile,在文件末尾添加“NDK=

8、/cygdrive/”,为了区分该NDK 版本,我写的是:ndk_r4=/cygdrive/g/android-ndk-r4-crystax export ndk_r4,“ndk_r4”这个名字是自己定义的,便利记忆。保存后,关闭终端,重启,终端,可能会消灭一下错误:12 / 12导致这个错误的缘由是使用了windows 环境下的编辑环境,在 Linux 下存在不兼容的问题,在该文件名目下输入“dos2unix .bash_profile”,以 Unix 标准标准该文件即可消退错误。输入“cd $ndk_r4”,假设跳到该名目下,那么说明ndk 环境变量配置成功。下面对NDK 所带的一个例子进

9、展编译,如以下图所示:编译后生成libhello-jni.so 文件,将该工程导入eclipse,编译运行,结果如下:至此,Android NDK 开发环境搭建完毕。2、Android-OpenCV 移植移植方法参照CSDN 的一篇博文,下载Android-OpenCV 源码包,存放到G 盘根名目下,该源码包已经写好了穿插编译Opencv 的 Makefile 文件和Opencv 的Android Library Project,用于本课程设计,需要修改以下几个地方:(1) build.sh 文件将“ndk-build”替换为“cygdrive/g/android-ndk-r4-crystax

10、/ndk-build”,用于明确所使用的 ndk-build 的具体路径。(2) clean.sh 文件同上。将 android-ndk-r4-crystax 整个文件夹拷贝到 D:cygwinhomezhangyu 下,由于在 opencv 源码包中的 local.env 文件中指定的ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax。或者在此处更改 NDK 名目,总之目的就是正确的找到NDK 工具所在名目。下面编译 Opencv,翻开 Cygwin 终端,进入 opencv 名目,运行 build.sh,编译大约持续 30 分钟,编译成功后,在

11、android/libs/armeabi和armeabi-v7a 两个文件夹下生成libandroid-opencv.so文件,用于Android 开发的opencv 库文件生成成功。翻开 eclipse,将android 文件夹下的工程导入到eclipse 工作空间中,导入后运行该工程,在虚拟机上无任何反响,eclipse 把握台输出如下信息:下面运行opencv 源码包自带的android 应用,启动cygwin 终端,进入例子程序CVCamera 名目下:编译成功,将该工程导入eclipse,连接手机,选择在真机上运行,运行结果如下:表示 androi-opencv 移植成功,该ecli

12、pse 开发环境具备了使用opencv 进展android 应用开发的功能。3、Android-OpenCV 应用实例我们自己开发了一个简洁的图片处理的应用,功能是对彩色图片进展灰度处理和参加噪点处理。新建 android project,导入 opencv 库工程 bin 名目下的 opencv.jar,这样新建的工程就可以调用 java 封装的opencv 函数。该工程用到了一个activity 和一个layout,布局界面代码如下: Activity_main.xmlButtonandroid:id=“+id/btn_gray_process“ android:layout_width=

13、“fill_parent“android:layout_height=“wrap_content“ android:text=“string/str_grayproc“/Buttonandroid:id=“+id/btn_salt_process“ android:layout_width=“fill_parent“android:layout_height=“wrap_content“ android:text=“string/str_saltproc“/Buttonandroid:id=“+id/btn_restore_process“ android:layout_width=“fill_parent“android:layout_height=“wrap_content“ android:text=“string/str_restoreproc“/ImageViewandroid:id=“+id/image_view“ android:layout_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号