【Android论文栏目提醒】:网学会员,鉴于大家对Android论文十分关注,论文会员在此为大家搜集整理了“Android平台图像处理软件框架的研究与设计 - 技术总结”一文,供大家参考学习!
Android平台图像处理软件框架的研究与设计 摘 要
android是google公司在2008年推出的一款手机平台操作系统对
android操作系统平台的体系架构与开发环境进行研究与分析并利用
android系统的camera类及相关接口技术建立一个具有图像采集、图像显示功能的图像处理框架。
关键词 移动互联网
android操作系统照相机 1 课题研究背景 随着web技术的不断发展互联网已经不再局限于传统的pc终端。
以3g技术为代表的移动互联网技术正在迅速发展。
这要求移动终端必须更加智能化、网络化。
目前移动终端平台主要有iphone os、symbian、blackberry os。
在2008年google公司推出了新的移动终端平台——
android。
android与上述三款系统有很大不同iphone os只为苹果的iphone所用并由苹果严格控制诺基亚、索爱各自运维着与自家硬件紧密结合的symbian办办而blackberry os是rim专用的操作系统。
android则采用了联盟的方式包括google、htc、摩托罗拉、三星、lg、联想、华为等知名企业都加入到了
android的阵营1。
android作为一款完全开放的移动操作系统。
不仅手机上可以使用这款操作系统
android同时也支持各种移动设备。
android系统底层采用c语言进行编写因此具备更好的移植性与兼容性。
应用层则采用目前非常流行的java语言进行开发。
正是由于
android的开放性与可定制性因此
android具有很大的市场潜力。
图像识别与处理技术作为人工智能的一个重要领域通过对复杂图像的识别与处理可从其中提取出所需要的信息。
近几年来随着移动平台的迅速发展越来越多的图像识别与处理技术被应用到智能手机、平板电脑上如诺基亚公司推出的图片浏览器支持脸部识别搜索多普达公司推出的来电图像识别软件。
因此在
android平台上搭建一个图像处理软件框架具有重要的实际应用意义。
本文通过对
android体系结构的探讨欲在
android平台上搭建一个可逐帧获取预览图像的软件框架。
在未来的研究工作中将利用该软件框架并借助图像匹配算法最终在
android平台上实现一个手势控制的照相系统。
2
android系统及其开发环境搭建方法 图1为
android的体系架构
android操作系统的体系架构分为四层由下而上依次是linux内核、类库包括运行时环境、应用程序框架和应用程序。
图1
android操作系统中包含一整套cc库提供给
android系统的各个应用层框架调用并通过应用层框架分发给开发者包括系统c库、媒体库、界面管理、libwebcore、sgl、3d库、sqlite。
其中sqlite为编写应用程序提供了数据库接口使得
android操作系统中的所有应用程序都可以使用该数据库2。
android开发环境的搭建流程是这样的下载
android sdk、下载安装jdk、下载eclipse、下载安装adt。
在
android sdk中有一个 tools目录该目录中包含了
android中的常用工具。
另外在platforms目录下针对不同的版本也有一个tools文件夹该文件夹下面也有一些工具。
例如aatp、dx等。
其中
android模拟器几乎提供了大多数物理硬件设备的硬件和软件特性。
本文通过该模拟器来进行开发和测试
android应用程序。
3 图像处理软件基本构建 3.1 camera架构 camera作为
android的子系统从物理结构的角度来看camera可以分为主控制器和摄像头设备。
从具体功能来看camera已经默认提供了一个拍照和录制视频的框架。
这个框架可以满足基本的功能需求。
当所需要的功能框架无法满足时可通过编写自定义的功能代码利用
android自带的camera类库来实现所需要的功能。
camera的体系架构自下而上可以分为内核层、库层、应用框架层和应用层。
内核层是camera与物理设备联系的桥梁。
它负责将camera的各种操作命令转化为物理设备可以接受的命令。
库层作为camera与物理设备的通信接口封装了底层的硬件接口。
其与应用框架层之间的通讯主要采用binder机制即为每一个进程保留一个可用的线程池用来处理ipc以及执行本地消息。
应用框架层则整合了
android自带的各种控件和类为应用开发提供高效、便捷的api。
应用框架层为应用层统一了接口同时也方便了各种类库的导入。
应用层位于camera的最顶层开发人员可以基于
android sdk所提供api完成各种开发任务最终生成可在用户机器上直接 安装的apk包。
由于本文所要搭建的图像处理软件框架并不需要涉及内核层和库层因此这里不再深入探讨它们相关的体系架构。
camera应用层的代码位于androidpackagesappscamere下主要封装了
android.hardware.camera类。
若要使用该类则需首先获得相关权限。
获得权限的方法是通过在manifest文件中添加相关声明如果需要设置自动对焦等功能则需另外添加一些元素。
camera应用框架层为应用层提供了统一的接口。
这么做的目的主要是为了使应用开发人员将注意力更多地放到应用开发上而不是关心库层和内核层是如何实现功能的。
对于应用层camera应用框架层以
android.hardware.camera类的形式提供调用对于库层及内核层camera应用框架层则以camerahardwareinterface.h头文件的形式为其提供了相关接口使其继承后得以使用。
camera应用框架层在整个camera架构中扮演了非常重要的承接作用。
使得camera不受底层硬件驱动改变的影响有利于在不同平台上移植代码而不对上层的代码产生影响。
3.2 camera功能实现 本文所要搭建的图像处理框架实现的主要功能是通过编写相关代码自定义camera的功能使其能够逐帧提取图像信息并与事先存储在数据库中的模板图像信息进行匹配。
一旦匹配成功则立刻调用摄像头自动将该帧图像捕获。
在这个逐帧匹配的过程中匹配的算法非常关键与复杂对其的研究工作将放在下一阶段进行。
本文的研究重点放在除匹配算法之外的部分为最终完成对手势控制照 相机的研究工作打下基础。
camera的功能实现流程如图2所示。
图2
android中调用摄像头的方法有两种。
一种是通过intent直接调用系统默认的摄像头。
本文采用的是第二种即先实例化一个surfaceholder类。
在surfaceholder类中有一个callback接口通过该接口可以实现三个方法surfacecreated、surfacechanged、surfacedestroyed。
这三种方法分别是在surface被创建后调用surfaceview发生改变时调用和surfaceview销毁时调用。
之后实例化surfaceview类通过surfaceview. getholder方法来获取surfaceholder对象。
surfaceholder对象的作用主要是用来控制surface。
为了显示预览图像首先调用surfacecreated方法来实例化camera对象。
通过调用camera对象中的parameters类可以对摄像头的各种参数进行设置。
这些参数包括预览帧收到的速率预览图像的图片格式图片大小等。
由于移动终端的处理机性能有限实现真正的逐帧匹配将会占用系统大量的资源并且这样做是没有必要的。
因此合理地设置预览帧收到的速率对于后续的性能优化有着重要的影响。
由于
android系统默认的预览图像的图片格式为yuv420。
yuv420格式的图片与硬件有很大的相关性。
此外yuv值存在着负 值以及取值范围上下限之差不为255等问题不利于计算机处理3。
为了便于对预览图像进行处理因此在通过picturecall back方法获取到图像的字节数组后有必要将其转换为rgb格式。
本文作者已经实现了在matlab平台上对rgb格式图片的识别功能可与模板图片进行匹配。
在完成以上设置之后调用camera.setparameter方法使之生效。
最后通过camera基类中提供的startpreview和stoppreview方法来达到控制预览功能的开启与关闭。
至此已完成了预览图像的获取工作。
接下来是通过图像匹配算法对获取到的每一帧预览图像进行匹配。
匹配的方法是对预览图像的字节数组进行处理提取出特征值后与数据库中的模板图像的特征值进行匹配。
如前文所述该部分不在本文讨论范围之内这里不再赘述。
本文假设该部分的研究工作已完成即预览图像与模板图像相匹配之后系统将调用camera.autofocus方法实现自动对焦功能。
最后自动调用camera.takepicture 方法完成拍照功能。
软件模拟运行效果如图3所示 图3 4 结束语 本文完成的主要工作 1对
android系统及其开发环境搭建方法进行了详细的分析包 括
android内核
android运行时andorid库和
android的应用程序框架并重点分析了系统软件开发环境的搭建过。
2对camera的接口与架构进行了深入的研究重点对利用camera捕获图像进行了分析完整描述了逐帧捕获图像的功能实现过程。
下一步的主要工作 1通过手势识别算法对camera捕获的图像进行分析。
2优化手势识别算法的效率。
3按照项目计划对各项功能进行优化与改进。
基金项目浙江省新苗人才计划 参考文献 1熊刚基于
android的智能手机武汉理工大学2010. 2和凌志、郭世平手机软件平台架构解析电子工业出版社2009. 3刘旭晖camera图像处理原理及实例分析. 作者简介 林晨1990-男浙江宁波人大三学生电子信息科学与技术专业张梦杰1990-男浙江海宁人大三学生电子信息科学与技术专业。