欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    Android移动终端的手势识别与控制系统毕业论文.doc

    • 资源ID:2364026       资源大小:1.08MB        全文页数:38页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Android移动终端的手势识别与控制系统毕业论文.doc

    Android移动终端的手势识别与控制系统毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日摘要:本系统基于android 2.3.5版本,是一个能通过手势对手机等android设备进行操作的系统。手势与自然语言相同,能表达复杂信息,选择手势进行人机交互,不存在信息交流的困难。主要的手势识别是通过色觉来实现的,通过肤色检测,在采集到的yuv格式图像进行条件判别,能确定手势的区域,得出二值化图像,这种方法比RGB和HSV省去了转换过程,提高了识别精度和速度。得到的二值图像是一个很大的数据,首先是信息提取,从中提取出W*H像素点的得到量化区域,对量化后的数据进行边缘确定,边界是用一种简单有效的边缘算法进行检测,最后通过边缘轮廓确定指尖位置,对指尖位置进行跟踪和处理,可完成操作。采用指尖进行操控,指尖的轨迹和不同指尖间的配合,可以完成目前常用的操作。不采用整个手势进行识别,因为目前的针对复杂手势的识别方法还不成熟,无法进行精确的复杂手势识别,而对于移动终端,也不需要进行很复杂的操控,这样既增加了识别速度,也简化了操作。关键词:移动终端 手势识别 android 边缘检测 指尖控制 目录1引言32现状及作品介绍42.1 现状42.2 作品介绍(核心)53 Android平台及其camera框架73.1 android平台构架分析7应用程序层8应用程序框架8Android运行时9Linux内核93.2 camera框架93.2.1 框架概况103.2.2 框架代码结构114手势分割策略134.1 手势分割常用方法134.2 色彩空间选取144.2.1 RGB色彩空间144.2.2 YCrCb色彩空间154.3 边缘检测204.3.1 canny 边缘检测204.3.2 原创边缘检测算法225指尖检测策略256 部分算法26(1):边缘检测:26(2):二值化:297创新点30(1)应用创新30(2)分割方法30(3)指尖控制30(4)算法318附录311引言人对手机的依赖已经越来越严重,这种现象在大学校园尤为普遍。吸引人们关注手机的,早已不只是简单的收发信息,打电话着一些基本功能了,应用的爆发式增长,满足了人们对手机各种功能上的需求,而满足人们感官上需求的,就是良好的人机交互了。在目前广泛使用的图形接口中,主要的输入方式还是物理键盘和触屏输入,当然,触屏技术凭借其优点在移动终端占据主流。然而,社会依然在发展,尤其是计算机领域,发展的尤为迅速,就像2007年那样,谁也没想到过触屏和智能会带来手机行业那么巨大的变化,研究人机交互技术变得异常活跃,也取得了巨大的成就,人机交互迅速受到了各大厂家的重视,并成为计算机竞争行业的又一竞争领域。手势作为自然的交互方式,在计算机领域取得了可喜的发展。而现在,移动终端的硬件也日趋强大,多媒体技术也在迅速发展,将手势应用到移动终端似乎成了一个顺水推舟的事。用手指的形态来进行标记和识别,从而达到控制的目的。手势的直观性和强大的语义使得人机交互变得尤为轻松。但由于识别的性能有待提高,目前还未得到很广泛的应用。2现状及作品介绍2.1 现状根据设备采集数据资料的不同,目前的手势识别可以大体分为两种,基于数据手套的手势识别和基于视觉的手势识别。基于数据手套的识别系统优点是识别效率高,但由于其要求使用者必须穿戴极不方便的设备,而且设备的造价不菲,所以此种识别方式不会是未来的主流。而基于视觉的手势识别系统凭借良好的适用性以及不需要其他的硬件设备,只是通过普通的摄像头,因而成了发展的主流(本系统就是基于视觉的识别)。但基于是觉得手势识别由于识别度一直不高,成为了其发展的瓶颈,国内外一些相关人士一直都致力于其发展,目前效果显著。国外的发展是比较长久的。(1)1991年富士通实验室完成了对46个手势符号的识别工作。(2)Davis和Shah将戴在指间具有高亮标记的视觉手套的手势作为系的输入,完成了对七种手势的识别。(3)Grobel和Assam从视频录像中提取特征,采用HMM技术识别262个孤立词,正确率达到91.3%。(4)Stamert51等人使用隐马尔科夫模型(HMM)对输入视频序列中的是美国手势带有词性的40个词汇随机组成的句子进行了识别,其中HMM参数的估计采用的是EM算法。系统对分离的单词和5个单词组成的句子进行识别,正确率高达90%。我国对手势识别的起步较晚,但近年来也取得了显著的成果。(1)中科院的单彩峰提出了结合均值漂移的粒子滤波(The Mean ShiftEmbedded Particle Filter,MSEPF),通过在时序模板中引入时空轨迹,提出了时序模板轨迹概念,将跟踪得到的手势运动轨迹压缩到单幅图像中,实现了对预先定义的动态手势的识别。(2)山东大学的徐立群等提出了一种基于颜色概率模型并融合运动信息进行手势跟踪的新方法,利用肤色概率查找表将图像序列转换为肤色概率分布图,用运动信息和肤色概率分布对搜索窗口进行初始化,然后对肤色概率分布图进行迭代运算,得到手势的位置和大小,从而实现了对六种孤立手势的识别。2.2 作品介绍(核心)本作品是一个基于移动终端的人机交互技术,它通过识别人手的关键点,并跟踪其轨迹,通过轨迹来识别人手势的意图,从而触发事件,并在屏幕或其他显示设备上做出反馈,达到交互目的。下面从作品的个特点做出分析:(1)与现在的pc端手势识别技术相比,本作品注重的是手势的关键点位置变化信息,并且将其应用在了移动终端。众所周知,移动终端的人机交互技术发展最为迅速,新的交互技术往往能改变行业发展方向。(2)从应用范围分析,全键盘由于携带不方便或占据较大空间,在移动终端很少使用了,触摸屏虽然是现在的主流,但其只能用在有介质的交互技术中,在未来的虚拟现实技术等一些无介质交互技术中还是有很大限制的,而手势操作,对介质要求不大,是可以适用在各种终端的一种新型的交互技术,本作品的核心就是微手势的应用,不仅是现在的手机,更是站在未来的角度,打造未来移动终端交互技术的雏形。(3)本作品强调的是微手势,即手势中的关键点及其运动轨迹组成的一套简化后的手势,其能更好的应用在移动终端,是交互变得更加简约和自然。(4)本作品的完成完全由本人独立编码设计,未借助其他任何辅助工具,从手势的分割,边缘检测,质心、指尖检测,都是自己独立通过代码进行试验分析,其中手势的分割检测等,更是原创了一套适合处理能力不强的移动终端的方法。(5)特色应用。本作品灵感是来自谷歌眼睛。谷歌眼睛是应用虚拟现实技术的一种未来移动终端的雏形,其显示是在一块眼镜镜片上,操作主要靠右手边镜框上的一个触摸板。笔者正是感觉触摸板式的人机交互已经不太适合一些已经到来的虚拟显示终端设备,而手势正好完美适用,所以才提出这种微手势的移动终端交互技术,应用了这种交互技术之后,许多科幻电影中的一幕不再是科幻,而且马上就会到来。3 Android平台及其camera框架Android系统是一个开放性的手机和平板的操作系统,目前的发展势头十分迅猛。虽然android面世的时间不长,但目前已经发展到了巅峰,取代了symbian等传统手机平台,成为了目前应用最广泛的手机等移动终端的操作系统。3.1 android平台构架分析Android系统的底层建立在linux系统之上,该平台由操作系统、中间层、用户界面和应用软甲四层构成,它采用一种被称为软件叠层(software stack)的方式进行构建。这种软件叠层技术使得层与层之间相互分离,明确各自的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层外发生变化时,上层的应用程序无需任何改变。 应用程序层Android系统将会包含系列的核心应用程序,这些程序包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等。这些应用程序都由java编写的。应用程序框架开发Android应用程序,就是面向底层的应用框架进行的。在一定意义上,android所有应用都是平等的,不管是系统的还是开发者的。应用程序框架除了作为开发的基础外,也是软件复用的重要手段,任何一个应用程序都可以发布他的功能模块只要遵循框架的约定,那么其他应用就可以使用这个功能模块。 Android运行时Android运行时由两部分组成:android核心库集和Dalvik虚拟机。其中核心库提供了java语言核心库所包含的大部分功能,而虚拟机负责运行Android程序。Linux内核Android系统建立在Linux 2.6之上,Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。3.2 camera框架Android的SDK中提供了底层硬件的接口,其中包括底层的头文件、驱动、库文件,因此更方便系统的开发和移植。Camera工作流程:景物Scene传感器SensorADCDSPSD cardCamera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过IO接口传输到CPU中处理,通过DISPLAY就可以看到图像了。3.2.1 框架概况Android的Camera子系统提供一个拍照和录制视频的框架。 它将Camera的上层应用与Application Framework、用户库串接起来,而正是这个用户库来与Camera的硬件层通信,从而实现操作camera硬件。 框架图:3.2.2 框架代码结构Android的Camera代码主要在以下的目录中: (1)Camera的JAVA部分 packages/apps/Camera/。其中Camera.java是主要实现的文件。这部分内容编译成为目标是Camera.apk com.android.camera这个包,几个主要的类文件如下: PhotoViewer:GalleryPicker.java(所有图片集)->ImageGallery.java(某个Folder下图片列表)->ViewImage.java(看某张具体图片) VideoPlayer:GalleryPicker.java(所有视频集) ->MovieView.java(看某一个视频) Camera:Camera.java(Camera取景及拍照) VideoCamera:VideoCamera.java(VideoCamera取景及摄像)(2)Camera的framework供上层应用调用的部分base/core/java/android/hardware/Camera.java这部分目标是framework.jar(3)Camera的JNI部分 frameworks/base/core/jni/android_hardware_Camera.cpp 这部分内容编译成为目标是libandroid_runtime.so。 (4)Camera UI库部分 frameworks/base/libs/ui/camera 这部分的内容被编译成库libcamera_client.so。 (5)Camera服务部分 frameworks/base/camera/libcameraservice/ 这部分内容被编译成库libcameraservice.so。 (6)Camera HAL层部分 hardware/msm7k/libcamera 或 vendor/qcom/android-open/libcamera2 为了实现一个具体功能的Camera,在HAL层需要一个硬件相关的Camera库(例如通过调用video for linux驱动程序和Jpeg编码程序实现或者直接用各个chip厂商实现的私有库来实现,比如Qualcomm实现的libcamera.so和libqcamera.so),实现CameraHardwareInterface规定的接口,来调用相关的库,驱动相关的driver,实现对camera硬件的操作。这个库将被Camera的服务库libcameraservice.so调用。4手势分割策略 所谓手势分割,后就是将对识别有用的区域从摄像机得到的图像中分割出来,为后面的手势特征提取等做准备。手势分割是进行手势识别的第一步,其分割效果的好坏直接影响后面的识别效果,因而好的分割策略是最重要的第一步。在这个方面,已经有不少前人得到的方法。4.1 手势分割常用方法(1) 基于肤色模型的方法:chai和habibi的YCrCb颜色模型,将Du和Lew均一化的RGB模型,这些方法是用肤色信息来实现手势和背景的分离,本系统就是基于肤色的分割。(2) 增加限制方法:如使用白色和黑色等色差较大的背景,通过加强前景来实现手和背景区域的划分,加深两者间的对比,此方法的缺点是限制了手的自由区域。(3) 建立手势数据库方法:建立一个数据库,其中有各种手势类在各个时刻、不同位置、不同比例下的手型图像,通过匹配的方法实现手势的分割。缺点是费时间。(4) 轮廓跟踪方法:典型的又基于Snake模型的手势分割,利用Snake模型对噪声和对比度的敏感度来有效跟踪目标的形变和非刚性的复杂运动,打到将目标从复杂背景中分割出来的目的。这个方法比较好,但费时,不利于实时系统。(5) 差影法:差影法就是讲目标图像和背景图像相减,此方法对消除背景有很明显的效果。但也有一个很明显的缺点,就是一定要保证背景图像和手势图像的对影像点唯一空间同意目标上,也就是视角和位置不能改变,否则误差极大。 经前人经验得知,在色彩和对比度中,人眼对前者的敏感度要高于后者。原因是彩色图像具有很多的信息。在手势图像中肤色信息占主导,将肤色进行进行有效的提取可以得到分割图像。4.2 色彩空间选取4.2.1 RGB色彩空间RGB颜色是红色(Red)、绿色(Green)和蓝色(Blue)三基色的字母缩写。RGB色彩模式是通过三种基本颜色的不同程度的迭加来产生各种各样的不同颜色。这个标准能够涵盖人类视力所能感知的所有颜色,是目前运用广泛的颜色系统之一。RGB色彩模式使用的RGB模型。该模型为图象中的每个像素的RGB各个分量分配一个0255的灰度值。因此RGB图象只要使用三种颜色,按不同的比例混合就可以产生256*256*256=16581375种颜色。RBG颜色的表示语法是(Red, Green, Blue), 因此各种颜色的标识值可以由公式计算得:65536*Blue+256*Green+Red。各个分量的数值越小,亮度越低;数值越大,亮度越高。(0,0,0)为黑色;(255,255,255)为白色。RGB的格式有RGB565,RGB555,RGB24和RGB32等等。4.2.2 YCrCb色彩空间YCrCb即YUV,主要用于优化彩色视频信号传输。Y表示明亮度(LUMA)。U和V表示色度(Chrominance或Chroma),由于从android摄像头提取到的帧图像就是YUV色彩空间的,而其正好可作为一种优于RGB空间的一种色彩识别方法,因此YCrCb是我们所使用的色彩空间。在YCrCb空间下,强度Y对色彩在CrCb平面的分布影响很小,由于肤色样本中存在很大的噪音,一般用线性近似值的办法找出肤色空间边界。一个(r,g,b)表示下的像素点与一个(Y,Cr,Cb)表示下的像素点的转换方法为:Y=0.2990*R+0.5870*G+0.1140*B;Cr=0.5000*R-0.4187*G-0.08143*B+128;Cb=-0.1687*R-0.3313*G+0.5000*B+128;在YUV空间中,最常用的肤色标准为: 77<=Cb<=127; 133<=Cr<=173;在多次试验的基础上可得知,手机对浮点运算的速度很差,因此对肤色检测方法做了一些改进: a= (50*R-8*B-41*G); b= (17*R+33*G-50*B);约束条件: a>500,a<4500; b>100,b<5100;试验结果: 二值化之前:二值化之后:试验过程分析:参数: 版本:android 2.3.5 Cpu:1G 内存:256M 图像:1536*2048 运算时间:768ms分析: 根据试验可知,手机配置主流的情况下,对一副300W像素的图像的二值化时间达到了0.77S,而视频的常用帧频率为25fps,所以这种情况下不足以进行实时识别。为了改进速度,而又兼顾识别度的情况下,对图像进行了量化操作,在常用的480*800的显示屏上,量化为100*200,这样既加快了速度,有可以去除部分噪声。改进后的图像为:参数: 版本:android 2.3.5 Cpu:1G 内存:256M 图像:1536*2048 运算时间:86ms分析:可以看出运算速度已经可以达到每秒10帧以上,而噪音仅为几个孤立的红点,手势部分全部覆盖;4.3 边缘检测4.3.1 canny 边缘检测Canny边缘检测算子在灰度图像中得到广泛应用。根据边缘检测的有效性和定位的可靠性,canny研究了最优边缘检测器所需特性,推导出最优边缘检测器的数学表达式。实现步骤为:(1):用高斯滤波器平滑图像,去除图像噪声。一般选择方差为1.4的高斯函数模板和图像进行卷积运算。 (2):用一阶偏导的有限差分来计算梯度的幅值和方向。使用 的梯度算子计算x和y方向的偏导数 和 ,方向角 ,梯度幅值 。 (3):对梯度幅值应用非极大值抑制。幅值M越大,其对应的图像梯度值也越大,但这还不足以确定边缘,因为这里仅把图像快速变化的问题转化成求幅值局部最大值问题,为确定边缘,必须细化幅值图像中的屋脊带,只保留幅值局部变化最大的点,生成细化的边缘。 (4):用双阈值算法检测并且连接边缘。双阈值法使Canny算子提取的边缘点更具有鲁棒性,高低阈值分别表示为Hth和Lth,对于高阈值Hth的选折,基于计算出的图像梯度值对应的直方图进行选取。在一幅图像中,非边缘点数目在总图像像素点数目中占的比例表示为Hratio,根据图像梯度值对应的直方图累加,累加数目达到总像素数目的Hratio时,对应的图像梯度值设置为Hth,在文中设定Hratio为0.7。低阈值Lth的选择通过Lth=Lratio*Hth得到,文中Lratio设定为0.4。最后通过对边缘点的标记和领域关系进行连接得到最后的边缘检测图。 试验结果: 参数: 版本:android 2.3.5 Cpu:1G 内存:256M 图像:1536*2048 运算时间:1234ms分析:根据试验结果可知,canny虽然是一个很好的边缘检测算法,但对性能有限的手机,运算时间不尽人意,超过1S,对此,针对上节讲到的量化二值化,我设计了自己的边缘检测算法。4.3.2 原创边缘检测算法 针对一个量化后的二值图像,观察其边缘分布及噪声情况,可得知下面特点:图像: (A) 二值化矩阵: 0000000000010000001001011001100001111110001111111000111111100001111100000011110000001111000000000000(B)tlttflmflbbbf(C)(1)假设图B中1标注的为待分割区域,图B为m点周围各个点的值,观察图B中的区域,可发现1.边缘具有以下特性: t+l+f+b+tf+bf+lb+tl>2;t+l+f+b+tf+bf+lb+tl<7; 2.内部区域特性: t+l+r+f=4; 3.孤立的,不成区域的点具有特性: t+l+f+b+tf+bf+lb+tl<=2;根据以上特点,可得住位于边缘的像素点提取方法: t+l+r+f!=4;t+l+f+b+tf+bf+lb+tl>2;t+l+f+b+tf+bf+lb+tl<7;根据上述方法,提取到的区域边缘为: 参数: 版本:android 2.3.5 Cpu:1G 内存:256M 图像:1536*2048 运算时间:79ms 分析:由结果可看出,边缘已较好的分割出,对噪声的处理也很理想,切运算速度快。 5指尖检测策略由上面提取到的图像可知,提取到的人手轮廓可能同时包含几个弯曲度较大的值,因此,运用一般的曲率检测方法难免会有误差,比如会把检测到的任何曲率大的点都当做指尖。因此,要想准确的判断指尖,还得结合质心距来检测;设P=p0,p1,p2,pn的质心为pc,质心距dis=d1,d2,d3dn;曲率k=k1,k2,k3,kn判定是否为指尖的阈值为k*dis,最大者为指尖。为了判定未伸出指尖的情况,还得设定K*dis的范围,低于质心距平均值者不认为是指尖。实验图像: 6 部分算法(1):边缘检测:public static int tocal(Bitmap bo,int ww,int hh) final int h=bo.getHeight();final int w=bo.getWidth(); int back=new intwwhh; int xc,yc;if(w%ww=0)xc=w/ww;elsexc=w/ww+1;if(h%hh=0)yc=h/hh;elseyc=h/hh+1; int l=0,m=0; / final int rgba = new inth*w; for(int y=0;y<h;y=y+yc) l=0; for(int x=0;x<w;x=x+xc) int color=bo.getPixel(x, y); int R =Color.red(color); int G = Color.green(color); int B = Color.blue(color); int a=(int)(50*R-8*B-41*G);/a为100*v /U =0.436*B-0.147*R-0.289*G /V =0.615*R-0.515*G -0.100*B / int b=(int)(17*R+33*G-50*B);/b为-100*u int b=R+2*G-3*B; if(a>500&&a<4500)&&(b>5&&b<300) backlm=1; else backlm=0; l+; m+; int back1=new intww+1hh; for(int x1=0;x1<ww+1;x1+) for(int y1=0;y1<hh;y1+) back1x1y1=0; int fig=0; for(int x2=1;x2<ww-1;x2+) int xx=0; for(int y2=1;y2<hh-1;y2+) if(backx2y2=1&&isBorder(back,x2,y2) back1x2y2=1; y2+; while(backx2y2=1&&isBorder(back,x2,y2) back1x2y2=1; y2+; xx+; if(xx%2!=0) fig+; return back1;private static boolean isBorder(int data,int l,int m) boolean re=false;int t1=datalm-1+datal-1m

    注意事项

    本文(Android移动终端的手势识别与控制系统毕业论文.doc)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开