最新基于安卓的二维码扫描识别系统设计论文.docx
- 文档编号:28125299
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:36
- 大小:1.29MB
最新基于安卓的二维码扫描识别系统设计论文.docx
《最新基于安卓的二维码扫描识别系统设计论文.docx》由会员分享,可在线阅读,更多相关《最新基于安卓的二维码扫描识别系统设计论文.docx(36页珍藏版)》请在冰豆网上搜索。
最新基于安卓的二维码扫描识别系统设计论文
D.过程文件只包含过程,可以被其他程序所调用
3.1基础知识练习
C.select*fromTEACHERwhere职称in("教授","副教授")
991102数据库
29.在VisualFoxPro中进行参照完整性设置时,要想设置成:
当更改父表中的主关键字段或候选关键字段时,自动更改所有相关子表记录中的对应值。
应选择________。
use
C.数据库管理系统D.数据结构
settalkoff
【答案】关系
C.CLEARSCREEND.CLEARWINDOWS
晋中学院
本科毕业论文(设计)
题目基于安卓的二维码扫描识别系统设计
院系信息技术与工程学院计算机系
专业计算机科学与技术
姓名
学号
学习年限
指导教师
申请学位
年月日
基于Android的二维码的生成与识别系统的设计与实现
TheDesignandRealizationoftheQRCode
GenerationandRecognitionSystem
总计:
毕业设计(论文)28页
表格:
2个
图片:
24个
XXXX本科毕业设计(论文)
基于Android的二维码的生成与识别系统的设计与实现
TheDesignandRealizationoftheQRCode
GenerationandRecognitionSystem
学院(系):
X
专业:
X
学生姓名:
X
学号:
X
指导教师(职称):
X
评阅教师:
完成日期:
Xy
基于Android的二维码的生成与识别系统的设计与实现
软件工程XXX
1[摘要]随着二维码的广泛应用和Android智能手机的进一步普及,在本文中介绍了一个通过Android平台下的摄像和绘图功能,利用二维码的编码和解码原理,通过Android手机对二维码的数据进行解析和编码,实现对二维码识别和生成的系统。
[关键词]Android平台;二维码;二维码生成;二维码识别
TheDesignandRealizationoftheQRCode
GenerationandRecognitionSystem
SoftwareEngineeringMajorXXX
1Abstract:
AlongwiththewideapplicationofplanarbarcodeandAndroidsmartphonesfurtherpopularity.ThispaperintroducesacameraanddrawingfunctionintheAndroidworkbench.Usingofthetwodimensionalbarcodeencodinganddecodingprinciple,throughtheAndroidmobilephoneresolveandcodeplanarbarcodetorealizethedimensionalbarcodeidentificationandgeneratesystem.
1Keywords:
TheAndroidPlatform;QRCode;ThegenerationofQRCode;TherecognitionofQRCode
1.绪论
本章通过对二维码的诞生和其发展前景的介绍,主要结合二维码的背景与自己所选该课题,对课题的意义进行阐述和分析。
1.1本课题的背景
1.1.1二维码的诞生
一维条码自出现以来,得到了人们的普遍的关注,发展速度十分迅速。
它的使用,极大的提高了数据采集和信息处理的速度,提高了工作效率,并为管理的科学化和现在化做出了巨大的贡献。
由于受信息容量的限制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述,故一堆条码的实用,不得不依赖数据库的存在。
在没有数据库和不联网的地方,一维条码的使用受到了较大的限制,有时甚至变的毫无意义。
另外,要用一维条码表示汉字的场合,显得十分的不方便,且效率低下。
现代高新技术的发展,迫切要求用条码在有限的几何空间内表示更多的信息,从而满足千变万化的信息表示需要。
二维码正是为了解一维条码无法解决的问题而产生。
因而它具有高密度、高可靠性等特点,所以可以用它表示数据文件(包括汉字文件)、图像等。
二维码是大容量、高可靠性信息实现存储、携带并自动适读的最理想的方法。
1.1.2二维码在国外的发展
手机二维码的业务类型主要有两种:
一是识读,就是借助应用软件直接读出码上信息,它可以衍生出上网浏览、电子购物等多种应用;二是被读,就是由商家向手机用户发送二维码信息,通过设备识读,可作身份识别、电子凭证等之用。
根据网上资料显示二维码在日本和韩国的商用分别始于2002年和2003年。
短短几年的发展,截至2006年,日本使用手机二维码的用户已有6000万,二维码广告、二维码名片、二维码票券就像短信那样常见;韩国市面上约有1500万部手机支持韩国第一大手机二维码提供商Iconlab的条码业务,超市里售卖的蔬菜上也贴有二维码,消费者拍摄解码后,就可以获知产品的产地等信息。
由于使用二维码,给商家带来的收入非常可观,资料显示,2005年,日本的手机识别二维码应用已获得近千万美元的收入[15]。
1.1.3二维码在国内的发展
相关资料显示,手机二维码在国内的应用也开始崭露头角:
用二维码为“超女”投票、易初莲花超市印有二维码的购物袋、卓越网的二维码手机移动书店……网舟咨询预测,今年手机二维码用户量将超过1000万,市场普及率将达到2%,到2008年用户数将近5000万,普及率达到9%,到2009年,用户量将达到1.1亿,普及率达到28%,到2010年,用户量将突破2亿,增长率稳定在200%左右,市场普及率达到53%。
网舟咨询对该业务的收入增长作出预测,今年的收入规模可达2亿元,到2008年,收入规模达到4.8亿元,2009年将进入高速增长期,2010年收入规模预计超过16亿元[15]。
1.2本课题的目的和意义
二维码的使用已经是很普及的事情了,中国移动的广告里面有一个场景,就是买苹果的场景,一个人买苹果,拿出自己的手机,对苹果上面的二维码进行扫描,便能够知道苹果的产地和摘取过程等信息。
国内二维码的应用主要出现在电子凭证、防伪溯源、平面杂志以及数字出版等领域,技术服务方面可由易拍酷二维码服务平台提供。
应用案例非常广泛,各大会议活动中不断出现二维码签到,杭州,成都、北京公交站牌上的二维码指引市民方便出行;二维码火车票、飞机票等均属于二维码电子凭证类别。
对于二维码应用,我们不仅仅应该只是处于在广告中实现的地步,本系统结合了二维码的广泛应用和Android智能手机的普及,实现了Android手机对二维码的解析和生成,可以使那买苹果的场面不仅仅是在广告中看到。
2.开发环境及关键技术
二维码识别与生成基于Android平台,使用到了Android系统的关键技术有Android的Activity、Intent等主要组件,以下内容将进行Android平台以及相应的关键技术进行介绍。
2.1Android系统架构
由于该课题主要是基于Android平台,所以在此就简单的介绍下Android平台的主要架构。
如图2–1就是Google公司提出的一个架构图。
图2–1Android平台架构图[14]
2.2开发环境
本系统主要分为两个大的模块:
二维码的生成和二维码的识别。
二维码的生成主要就是基于Winnows上的开发工具Netbeans开发,用Java语言来实现,而同时又开发一个在Android平台下的二维码生成。
而二维码的识别主要就是基于Android平台来开发,主要就是运用AndroidSDK和Eclipse共同开发,但是环境需要搭建。
2.2.1ADT插件
EclipseADT插件:
Android开发工具(ADT)是一个为EclipseIDE的,旨在为您提供一个强大的,集成的环境中构建Android应用程序的插件。
ADT的扩展Eclipse的功能,让您快速建立新的Android项目,创建一个应用程序的用户界面,添加基于Android框架API的包,使用AndroidSDK工具调试你的应用程序,甚至出口签署(或符号).apk文件为了分发您的应用程序。
引导项目设置与提供,以及工具的集成,自定义的XML编辑器,调试输出窗格,ADT的为您提供了令人难以置信的提高,在开发Android应用程序。
2.2.2二维码的识别与生成开发环境
二维码的生成主要设计的是在电脑上运行的桌面程序。
通过在电脑上开发一个Java程序来生成二维码。
其开发环境主要如下表:
表2–1Windows平台上开发使用的环境
需求名称
平台及工具
开发工具
Netbeans
优化工具
Photoshop
开发语言
Java
运行环境
WindowsXP+JDK
测试环境
WindowsXP+JDK
二维码的识别和生成是在Android平台上的开发的,并使用EclipseIDE工具进行开发的。
EclipseIDE安装ADT插件搭建了很好的Android开发平台,方便与编程。
至于识别的功能要用到摄像头,虚拟机上面是没有摄像头的,这就需要有真机进行二维码的识别测试。
Android平台开发环境如下表:
表2–2Android平台开发使用的环境
需求名称
平台及工具
开发工具
Eclipse、AndroidSDK、测试机
优化工具
Photoshop
开发语言
Java
运行环境
Android平台
测试环境
Android平台
2.3关键技术
2.3.1Android五大部件
1、活动(Activities)
一个活动表示一个可视化的用户界面,关注一个用户从事的事件。
例如,一个活动可能表示一个用户可选择的菜单项列表,或者可能显示照片连同它的标题。
一个文本短信应用程序可能有一个活动,显示联系人的名单发送信息;第二个活动,写信息给选定的联系人;其他活动,重新查看旧信息或更改设置。
虽然他们一起工作形成一个整体的用户界面,但是每个活动是独立于其他活动的。
每一个都是作为Activity基类的一个子类的实现。
2、服务(Services)
一个服务没有一个可视化用户界面,而是在后台无期限地运行。
例如一个服务可能是播放背景音乐而用户做其他一些事情,或者它可能从网络获取数据,或计算一些东西并提供结果给需要的活动(activities)。
每个服务都继承自Service基类。
3、广播接收者(Broadcastreceivers)
一个广播接收者是这样一个组件,它不做什么事,仅是接受广播公告并作出相应的反应。
许多广播源自于系统代码,例如公告时区的改变、电池电量低、已采取图片、用户改变了语言偏好。
应用程序也可以发起广播,例如为了他其他程序知道某些数据已经下载到设备且他们可以使用这些数据。
4、内容提供者(Contentproviders)
内容提供者(contentprovider)使一个应用程序的指定数据集提供给其他应用程序。
这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式。
内容提供者继承自ContentProvider基类并实现了一个标准的方法集,使得其他应用程序可以检索和存储数据。
然而,应用程序并不直接调用这些方法。
相反,替代的是它们使用一个ContentResolver对象并调用它的方法。
ContentResolver能与任何内容提供者通信,它与提供者合作来管理参与进来的进程间的通信。
5、连接组件的纽带(Intent)
以上4种基本组件中,除了ContentProvider是通过ContentResolver激活外,其他3种组件Activity、Service和BroadcastReceiver都是由Intent异步消息激活的。
Intent在不同的组件之间传递消息,将一个组件的请求意图传给另一个组件。
因此,Intent是包含具体请求信息的对象。
针对不同的组件,Intent所包含的消息内容有所不同,且不同组件的激活方式也不同,且不同类型组件有传递Intent的不同方式。
Intent是一种运行时绑定(runtimebinding)机制,它能够在程序运行的过程中连接两个不同的组件。
通过Intent,你的程序可以向Android表到某种请求或者意愿,Android会根据意愿的内容选择适当的组件来处理请求。
2.3.2系统的实现的关键技术
1、摄像头操作,识别功能主要应用技术就是对摄像头的调用,能够使用摄像头来自动对焦,使用多线程来对摄像头捕获到的图像进行提交是关键的技术。
2、多线程的调用,使用多线程来对摄像头捕获到的图像进行提交给二维码解析器,是使识别时间降低的主要机制,运用多线程的提交,能够在更快的时间内识别用户需要识别的二维码。
3、绘画的调用,在二维码的生成功能里面使用到了Android的绘图功能,是用相应的功能包将要转换的字符串转换成二维码字符串,对输出的二维数组进行解析,按照排码规范使用Android的绘图功能,将二维码绘画出来。
2.4可能遇到的问题
基于Android平台下的二维码的识别与生成软件可能遇到的问题如下:
1、界面问题
对于手机上的应用,布局的合理与开发的人性化使得软件的欢迎度有很大的区别,一个漂亮的布局会吸引多数用户,前提是功能的实现,在功能相同的情况下当然是界面好看的会受到大家的欢迎。
2、摄像头调用问题
软件的识别要进行摄像头的调用,要对摄像头部分进行相应的了解,另外应对与用户的需求来说,时间观念要充实,应该启用多线程来进行识别的摄像头的调用,摄像头自动对焦问题,还有识别后预览的图像传递的问题。
3、数据量大小问题
二维码的容量是有限的,如果书写的内容过多的话,就会产生生成错误的二维码的错误流,对于二维码方面的生成容量问题应该好好的解决。
同时Android平台的资源是有限的,解析时需要将摄像头扫描到的大量图像数据向后台进行传输,这会消耗很多资源。
4、生成和识别中的若干问题
二维码的生成是将字符串转换成图像,这个过程要通过二维码的编码原理来进行转换,其中的转换可能会存在未知问题。
识别的时候使用解析后台进行图像的解析,数据量会比较大,解析过程的时间复杂度比较大,可能会出现不可预知到问题。
本章中提到关键技术是Android的核心技术,我会在编码和实现之前对以上提出的关键技术进行学习了解,工欲善其事必先利其器,先将自己充实起来。
通过对Android的学习,增加了我对上节提出来可能遇到的问题解决的信心,我相信在后面的编码和实现中,我会通过很好的利用网络资源和自己学习的积累对克服存在的问题的。
3.需求分析
经过前面章节内容的介绍,在本章中将对二维码的生成和识别的需求分析进行阐述。
主要包括系统需求概述、系统需求分析、系统的可行性分析。
3.1系统需求描述
现在二维码是越来越流行,当然人们对二维码也越来越感兴趣。
出于对二维码的好奇,很多人都开始研究二维码。
人们不断的提问,二维码到底是怎么生成和识别的呢?
我想很多的人都不知其中的原理。
而在本论文中主要介绍的就是二维码的生成和识别。
对于二维码的生成与识别提出如下需求:
1、二维码的生成要能够生成包含一定信息的二维码,生成后的二维码能够被二维码的识别软件很好的识别出来。
同时二维码的生成能够支持多种功能信息的生成。
2、二维码的识别要能够很好的识别出来一些二维码的中多包含的信息,在识别的过程中能够对各种二维码进行识别,也包括条形码。
3.2系统需求分析
系统总体需求如下图所示:
图3–1系统总体需求图
本论文是基于Android平台,设计开发一款识别与生成二维码的软件(能兼容的识别条形码),很重要的一点就是本系统是基于Android手机上面的摄像头来对二维码的识别的,所以要使用二维码的识别功能便需要Android手机或者是平板,带有摄像头。
系统总体功能业务可以描述为以下几点:
1、一个友好的欢迎界面
2、功能的选择(识别功能,生成功能)
3、能对二维码(包括条形码)识别解析
4、能够生成用户所需的二维码
3.3系统需求说明
根据系统的主要需求进行分析,总结功能需求做如下说明:
1、实现对二维码的生成功能。
主要就是能够正确的生成客户需要的二维码,就是说能够正确无误的将用户的输入信息转换成二维码。
经过分析,要实现最常用的功能,即名片的生成、短信的生成、文本的生成、电子邮件的生成、网络书签的生成。
2、实现对二维码的是识别功能。
主要就是系统要能够识别二维码(包括条形码),并能够对二维码(包括条形码)进行正确的解析。
然后把所解析出来的信息以文字的信息输出来。
3、生成和识别的过程中,速度要快。
不能是用户等待很久才生成和识别出来,这样一方面说明该系统是失败的,另一方面会对浪费用户的时间,造成不可估量的后果。
3.4系统的可行性分析
以前我们进入超市买东西,都知道商品上面是有条形码的,我们也知道,条形码的识别机器是像红外线的东西,我们在信息的时代下,手机的发展越来越广阔,我们中国人平均一个人就有一个半手机,随着智能手机的流行,手机更是发展红火,特别是Android系列的智能手机发展更为广阔,随着Android手机的流行到现在,Android手机已经很普遍了,据调查显示Android手机的市场占有率达到60%以上,二维码的流行的到来,是人们特别的感兴趣,那么结合Android手机和二维码的流行,应该有一个方便与二者之间的软件来使之得到双赢,手机上面有摄像头,是不是能够通过摄像头来进行二维码的识别呢?
答案是肯定的,所以,基于Android系统的二维码的识别与生成软件系统是可行的,并且是很有市场需求的。
经过上述需求的分析和现在手机上的一些二维码扫描的出现,本论文中提到的各项系统功能的实现是可行的,在后续章节中将于一一介绍。
4.系统设计
根据上面章节中系统的需求描述,本章将进行系统的设计。
系统设计主要从提供的整体到各个功能部分的设计入手,本节中将分为:
系统框架设计、二维码生成设计、二维码识别生成。
4.1系统框架设计
本系统框架结构主要分成生成和识别两大部分,针对二维码的生成部分,我感觉不仅仅要局限于Android手机,也可以编写一个可以在电脑上生成二维码的软件,这样大家使用起来会更加的方便,至于识别方面,在电脑上也完全可以实现,可以调用系统的摄像头进行识别。
而本课题主要是基于Android平台,所以在Android平台上二维码的识别主要就是调用Android的摄像头模块,对摄像头进行对焦,回传图像信息,对图像信息进行识别等。
生成模块主要是应用了Android的绘图功能,将二维码进行绘制。
其中识别的判断是系统自动完成的,而生成的判断是根据用户的选择会进行相应的显示和生成功能。
系统功能结构如下图所示:
图4–1系统功能模块图
该系统的识别模块方面主要是通过Android手持设备上的摄像头进行图像采集,经过系统的分析识别,来进行二维码(包括条形码)的辨别功能。
生成方面的内容相对多,包括名片的生成,短信的生成,文本的生成,电子邮件的生成,网络书签的生成。
生成功能主要就是对二维码的生成。
而生成这个功能可以在电脑上运行生成,也可以在手机上运行生成。
二维码的生成主要支持名片、短信、文本、电子邮件及网络书签的生成。
当用户选择好多要生成的对象时,就会把用户输入的信息送到后台,通过调用解析包,来生成还有相应信息的二维码。
识别功能主要就是对二维码和条形码的识别。
主要就是通过手机的摄像头对二维码或者是条形码进行扫描,然后把把扫描到的二维码或者是条形码送到后台进行解析,如果解析成功后,就不再进行扫描。
如果解析不成功,就会在进行扫描采集图像,在传到后台解析,直到能够识别图像为止。
4.2二维码生成
二维码的生成,支持多种形式内容的二维码生成。
所以用户要先进行选择要生成的类型,当选择类型以后,系统将转入到多选该类型的生成界面给用户,用户将相应的信息填写完成,点击生成二维码,会跳转到生成界面,显示生成的二维码。
二维码生成详细流程设计如下图所示:
图4–2二维码生成功能流程图
4.3二维码的识别
二维码生成主要是通过对摄像头的调用,启用多线程,对摄像头进行快速的回调应用,当一次回调的图像没有识别出来就进行下一次的回调,直到识别出二维码为止。
同时由于对与二维码的大小不同,显示的模糊度不同等等原因,会使摄像头不能很好的采集图像,在这里要使摄像头能够进行自动对焦,从而使识别更快的实现。
当识别完成以后就对用户进行提醒,对手机进行震动和播放声音,播放完成,显示识别出来的结果。
二维码生成部分的功能流程图详细如下图所示:
图4–3二维码识别功能流程图
到此系统的基本设计已经完成,下一步将进行系统的代码的书写。
5.编码与实现
打开软件显示软件的logo和版本版权信息。
然后就是功能的选择界面,包括生成和识别两个功能,选择识别功能系统便会进入识别状态,将手机摄像头对准要识别的二维码或者是条形码,手机便开始识别,当识别结束,手机会发出声音和震动提示。
生成方面,选择相应的生成选项填充内容,点击生成按钮,系统便能生成相应的二维码,当输入字符过长超过二维码的容量时会显示一个超出容量的图片。
系统流程设计如下:
图5–1系统总体流程图
根据上一章中的设计,本章中将进行系统的编码和实现,主要分为三大部分,识别功能的实现、生成功能的实现、系统总体的实现,下面将对其逐一进行介绍。
5.1识别模块的实现
二维码的识别功能主要体现在后台的处理,调用摄像头,打开摄像头进行扫描。
将摄像头扫描的数据传给后台,然后后台对扫描来的图像进行处理,进行识别。
识别成功就将识别出来的内容显示出来,识别不成功就继续识别。
5.1.1二维码识别的功能实现
系统在手机上实现图像的采集是重要的一步,在Android平台上,是使用Camera类来完成摄像头的调用和图像采集使用CameramCamera=Camer-a.open()获得Camera的实例,然后使用Camer-a.Parameters来设置获得图像的大小,最后通过实现Camera.Preview-Callback的接口onPreviewFrame(byte[]data,Cameracamera)来获得摄像头的图像数据data。
为能够较快地获得清晰的图像,提高识别速度,文中使用了自动对焦技术。
另外还应该对对焦进行定时操作,这就需要设置一个定时器对自动对焦进行定时调用。
后台对摄像头传过来的图像数据data进行解码处理,如果能够解析出来,则上面的对焦调用,摄像头回传图像数据调用等将暂停。
如果解析不成功,则继续轮回调用。
节约解析的时间。
主要实现代码如下:
publicvoidhandleMessage(Messagemessage){
switch(message.what){
caseR.id.auto_focus:
//当一个自动对焦传递结束后,开始另一个。
这是最接近
//连续自动对焦。
它似乎打猎了一点,但我不知道还能做什么。
if(state==State.PREVIEW){
CameraManager.get().re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 基于 二维码 扫描 识别 系统 设计 论文