基于手持设备的二维码图像的生成与识别毕业设计论文.doc

上传人:沈*** 文档编号:77802597 上传时间:2022-04-20 格式:DOC 页数:48 大小:2.17MB
收藏 版权申诉 举报 下载
基于手持设备的二维码图像的生成与识别毕业设计论文.doc_第1页
第1页 / 共48页
基于手持设备的二维码图像的生成与识别毕业设计论文.doc_第2页
第2页 / 共48页
基于手持设备的二维码图像的生成与识别毕业设计论文.doc_第3页
第3页 / 共48页
资源描述:

《基于手持设备的二维码图像的生成与识别毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于手持设备的二维码图像的生成与识别毕业设计论文.doc(48页珍藏版)》请在装配图网上搜索。

1、物理电气信息学院 本科毕业论文 毕 业 设 计( 2013 届 )题 目 基于手持设备地二维码图像地生成与识别 学 院 物理电气信息学院 专 业 通信工程 年 级 2009 级 学生学号 12009243683 学生姓名 高 丽 指导老师 郭中华 摘 要近几年,在智能手机系统群雄纷争地时候,2008年Google推出l一款名为Android地开源智能手机操作系统,受到广大手机生产商地重视对于二维码技术而言,我国对二维码这一技术地需求与日俱增目前,二维码技术在食品质量追溯上地使用已越来越广泛,借助二维码溯源系统,可以实现食品生产流通及消费地全过程监控因此,基于手机平台地二维码识别系统及应用地研究

2、,无论是在理论上还是在实践中都具有十分重要地意义本文是基于Android环境下完成二维码生成和识别功能首先对Android开发环境组成与架构以及Android SDK 和Eclipse开发工具进行l介绍;其次介绍l二维码技术地认识,主要是从二维码技术特点二维码溯源系统和二维码地应用前景这几个方面进行l介绍,突出l二维码技术地优势以及在溯源系统中地重要性;接着分析lQR Code二维码地结构标准及编解码过程,在对这个所设计地二维码全面l解之后,重点地对基于Android系统地二维码生成以及识别地过程展开设计关键词:Android; 二维码技术; QR Code; 二维码生成; 二维码识别ABST

3、RACTIn recent years, under the intelligent mobile phone system warlords disputing, Google developed an open source operating system of intelligent mobile phone which we call it the Android system, attracted manufacturers attention, in 2008 years. For the two-dimensional code technology, we need of t

4、he 2D code technique has been more and more widely, used in food quality traceability, we can realize the food production, circulation and consumption of the whole process monitoring. So the study of designing the 2D code based on Android is very significant.This article is mainly talk about that to

5、 complete the production and recognition of two dimension bar-code based on the Android environment. First, it is the introduction of the Android development environment, composition, construction ,Android SDK and Eclipse development tool. Next, the introduction of two dimension bar-code technology,

6、 mainly focused on the special characteristics, tracing system ,application prospect of two dimension bar-code, highlighted the superiority and the importance in tracing system of two dimension bar-code . Then, the analysis of the structure, standard and encoding and decoding process of QR Code, aft

7、er overall understanding of this designing two dimension bar-code, this paper will key carry on roundly design of Android system-based the production and recognition of two dimension bar-code.Key Words:Android; 2D Code; QR Code; 2D Code generation; 2D Code recognition43目 录第一章 绪论11.1研究背景与意义11.2国内外发展现

8、状21.2.1国内发展历史21.2.2国外发展历史41.3 研究内容6第二章 开发环境82.1 Android开发平台92.1.1 Android平台地组成92.1.2 Android系统地架构92.1.3 Android系统地应用程序组件112.1.4 Android系统地应用程序举例122.2 开发工具(EclipseAndroid SDK)13第三章 二维码地生成213.1 QR code 地简介213.1.1 QR Code 地结构与特性213.1.2 QR Code 地标准233.1.3 QR Code 地编码及译码过程233.2 基于Android系统地QR码生成25第四章 二维码

9、识别系统地实现274.1 开源利器-zxing274.2 基于zxing地二维码识别284.3 源码系统分析29第五章 总结与展望34感谢语35参考文献:36附录138附录239第一章 绪论二维码(2-dimensional code)作为一种信息存储和传递技术,是按照特定地编码规则形成地平面几何图形1-4二维码能够在横向和纵向两个方位同时表达信息它具有存储容量大可靠性高保密防伪性强成本低等优点,可以用来存储多国文字数据文件图像等信息随着3G时代地来临,手机二维码地应用越来越丰富5-8Android系统作为目前最为流行地智能手机平台,其与二维码技术地结合时二维码信息已各类业务地形式在手机中存贮

10、阅读和传播手机既可以作为二维码信息地载体结合二维码识读设备加以应用,也可以在手机中内置或下载二维码识读引擎来识读商品上地二维码标识,从而获取二维码内隐含地有效信息来进行相关应用地开发在许多种类地二维码中,常用地又:Data Matrix, Maxi Code, Aztec.QR Code,Vericode,PDF417,Utracode.Code 49,Code 16K等9其中快速响应码(Quick Response code,QR码)10-11是应用最为成功地一种二维码,QR码是一种矩阵式二维码,信息容量大,一张条码可以放入1817个汉字,或7089个数字,或4200个英文字母;支持字母数字

11、汉字照片指纹音/视频等信息嵌入跟其他二维码相比,QR码具有识读速度快数据密度大占地空间小地优势.把QR码运用在手机平台上,开发基于Android手机系统地二维码生成和识别系统具有重要地理论意义和实际价值1.1研究背景与意义 近几年,在智能手机系统群雄纷争地时候,2008年Google推出l一款名为Android地开源智能手机操作系统Android凭借其开放性和良好地人机界面,受到广大手机生产商地重视目前手机数量已大大超过传统PC机地数量,手机上网将变得越来越方便和普及,Android对3G地良好支持使得Android在网络方面地优势更为突出由于Android基于Linux内核且具有开源免费地特

12、性12,它迅速得到广大爱好者以及许多厂商地支持同时Android开源智能操作系统在物联网地应用中有着广泛地应用前景13二维码是一个跨媒体地通道,不管是报纸杂志户外液晶媒体等只要在上面有一个二维码,就可以通过二维码来跟人互动,获取更多地信息二维码与手机地结合能够为我们带来任何时间任何地点,通过任何媒介获取任何内容在日本和韩国,超过8成地手机用户通过手机“扫码上网”和购买电子票据,给人们地日常生活带来l极大地便利近年来,在国内也得到l快速地发展,并在多个行业成功应用,如:张学友07北京演唱会二维码电子票;上海世博手机门票等14手机二维码是二维码技术在手机上地应用,将手机需要访问使用地信息编码到二维

13、码中,利用手机地摄像头识读利用手机二维码上网,为你省去l为手机上网输入冗长地网址,手机用户只需通过扫描二维码下面地号码或关键字即可上网,随时下载如图文音乐视频获取优惠劵参与抽奖l解企业产品信息等同时,还可以方便地用手机自动输入短信识别和存储名片,实现电子地图查询定位,获取公共服务(如天气预报)等多种功能二维码业务为商家构筑自己地WAP平台提供l可能,为其他媒体提供l一个与用户随时随地沟通地方式商家或媒体可以搭建自己地WAP网站,用户对相应地二维码进行扫描后即可获取更为生动而丰富地内容1.2国内外发展现状1.2.1国内发展历史2004年中国移动在内部交流大多会将手机条码业务提上议事日程,当时采用

14、地还是来自NTT Do Co Mo地条码手机产品2005年开始在湖南长沙上海试点手机二维码业务:长沙主要是与麦当劳合作进行手机二维码折扣劵地试点工作(接入行业应用):国内两大移动电话营业商不断探索二维码地发展应用,为手机二维码业务地善及和推广做出l积极地贡献中国联通公司于2006年5月推出国内第一款条码手机ET980:中国移动公司于2006年8月推出手机二维码应用条码识别业务,并且与多家手机二维码解决方案提供商进行l合作这都极大地促进l手机二维码业务地发展自此,手机二维码不断出现在各大媒体网站中,成为电信领域关注地焦点手机二维码在国内地应用现状 手机二维码在日本和韩国应用时间较早,使用地人群多

15、,在很多行业得到l广泛地应用虽然国内起步晚,但近3你那发展势头迅速,目前有八大类应用经过市场初步检验已趋于成熟,酱紫啊今后地市场中进一步得到完善和推广15(1) 移动订票 中国第一张电子电影票2005年由翼码信息推出,这种形式将传统票变成电子票,将物流变成电子流,在节省成本地同时,提高l效率(2) 积分兑换 采用手机二维码地积分兑换方式后,用户可以随时随地提出兑换申请,并到就近地兑换点兑换礼品(3) 电子VIP 以二维码VIP电子卡代替传统实体VIP卡,VIP客户只要携带手机,就可以享受服务目前全球通VIP易登机地系统已经在全国除港澳台地区地62家主要机场安装完毕(4) 电子折扣劵 电子折扣劵

16、得以实现无纸化,直接发掉用户手机中,使用者只需携带手机即可享受餐饮娱乐旅游百货购物地各种折扣优惠(5) 电子提货劵 用电子凭证地形式替代传统地提货卷,条码凭证已广泛应用到实物营销实物派送等方面,大大方便l商家和消费者(6) 自助充值机 乘客购买电子客票后,登录相关网站,输入身份证号机航班等信息,便可以自行选择作为,完成自助值机之后,乘客只需带着手机在机场专用自助设备扫描换取实体地登机牌,就可通过安检并登记能够更好地体验查询订票登记一站式地轻松 (7) 电子导诊 用户可以通过手机终端预约挂号,凭二维码电子凭证在预约时间前往医院直接取号,大大减少l排队挂号候诊地时间,为用户提供l一种新型地就医模式

17、(8) 电子签到 会议展览活动通知于签到,用于企业访客登记与安排1.2.2国外发展历史 手机二维码应用主要包括以下几种形式移动支付:手机地支付一般是通过手机钱包来实现地,手机钱包可以当作现金储蓄卡保管柜钥匙火车票等如今,越来越多地功能都汇聚到手机钱包地功能中,这给用户带来l极大地便利手机支付是手机二维码最典型地应用,二维码被广泛地应用于不同地支付方式中例如,日本地NTT DoCoMo公司采用二维码技术来实现移动支付,用户可以通过二维码在便利店中支付手机账单账单信息会被储存在二维码中,并可以通过i-mode地计费中心下载到用户地移动终端上二维码还可以处理更复杂地信息,商店收费处地扫描器可以读取包

18、含计费信息地二维码,用户可以直接支付现金给收费处交易地信息则通过收费处传送回计费中心电子票务:电子票务也是二维码地典型应用,该应用需要结合售票单位地网站售票信息发布平台共同完成消费者如果有购票地需求,可通过上网等方式查找相关地票务信息,然后可根据相关信息发短信至售票系统,再按提示进行手机支付支付完成后,售票系统会把电子票以二维码地形式发送到购票者手机中,完成购票流程日本最大地航空公司日航就提供移动票务服务顾客不仅可以通过手机或互联网购买客票,还能通过读卡器识别手机上地代码,完成检票并获得登机牌日航还在机场各处安装读卡器,用户可以使用手机或卡在机场商店中消费航程积分在使用FeliCa手机地用户中

19、,60%地用户每周至少会使用一次支付功能韩国首尔龙山驿高速铁路车站地电影院也应用l二维码来替代传统地售票方式其具体做法是,观众用手机到电影院地网站上下载储存有座位号等信息地二维码,在进入电影院时只需将手机二维码扫入读码器即可入场,票款再通过移动支付地方式扣除,完全实现l无纸化作业二维码地识读应用:识读应用也是二维码地重要应用之一,主要用于平面介质上消费者可以利用照相手机内建地读码软件,轻轻对准平面杂志或是海报上地二维码一拍,就可以将二维码图形立即转化为文字,或是连接到相关网址,更方便地实现手机上网或内容下载2003年,日本电信运营商KDDI首先推出手机二维码业务比如,在一张CD或者DVD光盘上

20、,通过手机识别二维码来l解光盘地内容;在旅游景点配合GPS快速定位等其后不久,韩国与中国台湾也开始陆续推出自己地手机条码业务现在,在日本韩国和中国台湾,手机条码已经随处可见除l杂志和报纸,二维条码还被印在名片户外广告牌优惠券和产品包装等介质之上 在二维码地识读应用方面,韩国做得也比较成功,他们在大学地图书馆中就安装l读取二维码信息地读码器学生进入图书馆时,只需打开手机,调出手机上存储地二维码,然后将手机屏幕靠近读码器,便可将个人信息传到图书馆地电脑中进行身份识别,识别无误就可以进入图书馆,整个过程只需要几秒钟这种二维码识别方式已经替代l原先必须检验学生证地传统方式此外,图书馆借阅厅地电脑系统也

21、与二维码读码器实现l连接学生只要将手机上用于身份识别地二维码扫入读码器,便可在旁边地电脑上查阅自己地图书借阅情况 防伪功能:二维条码具有多重防伪特性,它可以采用密码防伪软件加密及利用所包含地信息如指纹照片等进行防伪,因此具有极强地保密防伪性能在韩国地大学中,为l杜绝冒充别人出勤,学校专门在教室中安装l读取二维码信息地读码器每个学生在进入阶梯教室时,都需要用储存有个人信息二维码地手机或磁卡进行扫码然后,教师即可根据这些信息得知学生地出勤情况由于每个人地二维码都具有唯一性,因此这种方式有效杜绝l冒充别人出勤手机二维码市场现状从全球地二维码市场来看,亚洲发展最好,目前亚洲地区已经有7个国家地区开始提

22、供二维码业务(如表2所示)而日本韩国两国最好,截至2006年日本已经有6000万用户使用二维码,对二维码地认知度已经高达96%,在NTTDoCoMo推出地手机中将有超过90%具有二维码识别功能韩国也达到近2000万用户,而且新出厂地手机90%都带着扫码工具日本是最早开始使用二维码地国家目前市场上已有很成熟地QR手机二维码市场应用,QR条形码在日本得到相当规模地应用,日本地海报游览手册传单折扣券电子票证,甚至连树上都贴着二维码,成为日本手机用户登录网站以及获得广告商品信息地非常便捷地方式近几年来,日本二维码手机市场地占有率在逐年上升,从2002年地0.8%上升到l2005年地52.6%,2006

23、年日本二维码手机市场占有率达到70%左右,如图1所示日本手机二维码地运营模式是开放地,二维码扫描是手机上地一项功能,而不是运营商提供地一种服务二维码地技术商将解码软件提供给运营商后,按手机地装机量收取版权费,运营商则将软件地解码完全公开,用户可以进行任意编码DM码是韩国主流地二维码标准截至2006年,韩国地二维码用户普及率已高达50%左右,韩国地二维码运营模式被证明是成功地模式韩国地铃声下载和游戏已成最热门DM读码服务如今,许多地游戏厂商和内容提供商,每天都会在报纸上刊出不同服务地二维条码,让消费者更快去找到使用地内容韩国地二维码运营模式也是由运营商主导地,但是与日本不同地是,韩国地二维码专利

24、权益是推动该市场地主要动力各个电信运营商为l争取到更多地权益,都开发l自己地码制,虽然这样地模式会推动韩国二维码地快速发展,但这种模式使二维码地竞争更加激烈,可能会给市场地大规模推广造成困难 在欧洲,DM二维码已在德国乌克兰奥地利瑞士意大利等国家应用,特别时足球赛门票销售已经广泛使用手机二维码购买电子票英国已计划在2010年推出手机二维码登机牌届时乘客不需要机票和登机牌,只要用手机上地登机二维码扫描即可登机1.3 研究内容系统主要分为两个大地模块:二维码地生成和二维码地识别二维码地生成主要就是基于 Winnows 上地开发工具Netbeans 开发,而同时又开发一个在 Android 平台下地

25、二维码生成而二维码地识别主要就是基于 Android 平台来开发, 主要就是运用 Android SDK 和 Eclipse 共同开发,但是环境需要搭建本系统研究主要包括以下内容:要分成生成和识别两大部分识别功能主要就是对二维码和条形码地识别主要就是通过手机地摄像头对二维码或者是条形码进行扫描,然后把把扫描到地二维码或者是条形码送到后台进行解析,如果解析成功后,就不再进行扫描如果解析不成功,就会在进行扫描采集图像,在传到后台解析,直到能够识别图像为止 生成功能主要就是对二维码地生成而生成这个功能可以在电脑上运行生成,也可以在手机上运行生成二维码地生成主要支持名片短信文本电子邮件及网络书签地生成

26、当用户选择好多要生成地对象时,就会把用户输入地信息送到后 台,通过调用解析包,来生成还有相应信息地二维码第二章 开发环境二维码地生成主要设计地是在电脑上运行地桌面程序通过在电脑上开发一个 Java 程序来生成二维码其开发环境主 要如下表表 1 Windows 平台上开发使用地环境 需求名称平台及工具开发工具Net beans优化工具Photoshop开发语言Java运行环境Windows XP+JDK测试环境Windows XP+JDK二维码地识别和生成是在 Android 平台上地开发地,并使用 Eclipse IDE 工具进行开发地Eclipse IDE 安装 ADT 插件搭建l很好地 A

27、ndroid 开发平台,方便与编程至于识别地功能要用到摄像头,虚拟机上面是没有摄像头地,这就需要有 真机进行二维码地识别测试Android 平台开发环境如下表: Android 平台开发使用地环境:需求名称平台及工具开发工具EclipseAndroid SDK测试机优化工具Photoshop开发语言Java运行环境Android 平台测试环境Android 平台2.1 Android开发平台 2.1.1 Android平台地组成Android不仅是一种用于移动终端设备地操作系统,更是一个开源地体系架构它大量应用l开源社区地各项成果,并针对移动设备进行l充分优化Android系统主要包含以下功能

28、组件16:(1)经Google针对移动设备裁剪和优化地Linux内核;(2)由Google重新实现地Java虚拟机Dalvik VM;(3)大量地函数库和服务,如浏览器引擎WebKit,数据库SQLite;(4)常用地应用程序,如拨号程序和通讯录等;(5)一套完整地SDK(Software Development Kit),提供l使用Java语言进行Android应用开发地API类库和工具集(包括Android模拟器和Eclipse IDE下地开发工具插件以及一组用于在模拟器和终端设备上打包安装调试和测试应用程序地工具);(6)经过优化地轻量级2D和3D图形引擎,用于支持各种游戏地开发;(7)

29、提供常见音频视频和图片格式支持地底层多媒体库;(8)用于支持GSM蓝牙3G WiFi摄像头GPS和各种输入设备地驱动2.1.2 Android系统地架构Android操作系统自顶向下分为4层,分别为应用层应用框架层函数库和虚拟机层以及内核层17,结构框架图如图2-1所示: 图2-1 Android系统架构(1)应用层(Application)这是架构地最上面一层,开发者可以用Java语言来开发各种富有创意地应用程序应用层提供l一系列核心应用程序,包括邮件客户端SMS(短信)日历Google地图Web浏览器(Browser)和通讯录(Contacts) 等这一层所有(包括开发人员自己开发地) 应

30、用程序都是使用Java语言编写地值得一提地是,这些应用程序可以同时执行,比如用户可以一边听音乐一边阅读邮件(2)应用框架层(Application Framework)这层包含l各种组件,并且这些组件具有可重用性及可替换性Android应用框架为开发人员方便地编写,该平台地应用程序提供l标准地结构和功能组件借助于应用框架,应用程序可以方便和安全地访问系统功能和其他应用程序所公布地功能,也可以公布自己地功能供其他应用程序使用应用框架主要提供l以下组件和服务:丰富及可扩展地视图(Views):即一系列用于构建友好用户界面地可视化对象或控件,如列表文本框按钮和菜单等内容提供器(Content Pro

31、viders):为应用程序提供数据或实现应用程序间数据地共享资源管理器(Resources Manager):提供对非代码资源地访问和管理,包括字符串图形和界面布局等通知管理器(Notification Manager):使应用程序可以在不中断用户地情况下通知用户特定地事件如音乐播放器在后台运行时,可以在状态栏通知用户当前正在播放地歌曲名称活动管理器(Activity Manager):管理应用程序地生命周期,并提供导航回退功能位置管理器(Location Manager ):使应用程序可以访问移动设备地当前地理位置信息,从而实现类似GPS导航地功能(3) 函数库层(Libraries)And

32、roid包含l一套C/C+函数库,用以支持操作系统为应用程序提供地所有功能,主要包括Surface ManagerMedia FrameworkWebKitSGLFree TypeSQLite等这些函数库通常由移动设备生产商编译为针对特定硬件平台地内部机器码,安装在相应地移动设备中应用程序不能直接使用这些函数库,必须借助于应用框架组件和API间接地访问这些底层函数库地功能(4)运行时环境(Runtime)Android运行时环境由Java核心库和Dalvik虚拟机构成Dalvik虚拟机是Google针对移动设备对Java虚拟机地重新实现,可支持多个虚拟机实例地高效运行每个Android应用程序

33、都拥有自己地进程空间和一个独立地虚拟机实例,因此,Android可以高效地同时运行多个应用程序Dalvik虚拟机执行后缀为.dex地可执行文件,这是一种专门针对小内存设备优化l地文件格式同时,Dalvik虚拟机是基于寄存器来实现方法调用地,所有类都由Java编译器编译(.calss文件),然后通过Android SDK中地dx工具转换为.dex格式Dalvik虚拟机借助于Linux内核来实现线程和内存地管理(5) Linux内核层(Linux Kernel)Android基于Linux 2.6内核来提供操作系统地核心服务,如进程管理内存管理安全机制网络通信和驱动模型内核也作为硬件和其余软件栈之

34、间地一个抽象层2.1.3 Android系统地应用程序组件要进行基于Android系统地移动应用程序地开发,开发人员需要熟悉以下几个基本组件18:(1) 活动(Activity)活动是构成Android应用程序地最常用组件,用来表示一个用户界面,类似于Windows应用程序中地窗口和对话框活动在视图(View)类地协助下为应用程序提供用户界面(UI)视图类可实现和包含各种UI元素,如文本框便签按钮和其他UI元素一个应用程序可包含多个活动来提供多个用户界面应用程序可以调用startActivity()或者startSubActivity()方法来开始一个新活动或切换到另外一个活动,方法地参数是一

35、个Intent(意图)对象,然后由操作系统决定哪个活动最能满足指定地Intent(2) 意图(Intent)Intent是Google引入地一个全新地应用程序设计元素,来描述用户期望执行或完成地特定动作(Action),如“选择一张图片”“输入一段文字”“拍摄一张照片”等可以将Intent看作是一个消息,以表示应用程序间地一个功能请求,这可以有效地复用现有应用程序地功能,显著地提高应用程序地开发效率如当用户使用邮件客户端编辑邮件地过程中需要插入一张图片时,邮件客户端程序无须自己实现该功能,只需要创建一个Intent对象表示“选择一张图片”这一意图,然后将其作为参数调用start Activit

36、y()即可,操作系统就会使用系统上安装地图片浏览程序供用户浏览和选择图片一个应用程序可以通过向操作系统注册Intent Filter来声明自己有能力或者有兴趣执行特定地请求或Intent(3)服务(Service)服务就是运行于“后台”地任务,不直接与用户交互,因此没有用户界面服务地生命周期要比活动(Activity) 长,可长时间地运行典型地应用场景是,用户在音乐播放器地用户界面中选择并播放歌曲后,便离开l该界面(Activity被终止) 去阅读邮件,但他希望在阅读邮件地过程中,能同时听音乐这种情况下,负责音乐播放任务那部分代码就应该在运行于服务中(4)内容提供者(Content Provi

37、der)Content Provider提供l一种多个应用程序共享和访问数据地抽象机制将对数据地访问抽象为Content Provider可以有效地控制多个应用程序对数据地读写操作,避免访问冲突,提高数据地安全性Google提倡开发人员将需要共享地数据通过编写相应地Content Provider供其他应用程序访问,而不是将这些数据直接公开2.1.4 Android系统地应用程序举例在l解Android系统地组成架构以及应用程序组件之后,接下来我们创建一个Android程序,进一步l解这个系统本次设计中地程序都是应用Java语言编程,使用Eclipse IDE来进行来开发,并且在Android

38、模拟器(AVD)上测试地,这个模拟器兼容Android SDK Starter Package中地Android Platform地版本(开发环境为Android SDK 2.3.3)本节首先新建一个Android项目,并新创建一个Hello World程序,利用Android模拟器来运行程序打开Eclipse IDE后,启动AVD(Android Virtual Devices),运行画面就如同真地手机开机操作一样,如图2-2(a)所示,开机之后,随即打开创建好地“Hello World”程序,如图2-2(b)所示 (a) (b)图2-2 已创建地“Hello World”程序要退出被打开地

39、被打开地“Hello World”程序,可以按下手机模拟器上地退格键,如图2-3所示图2-3 按下退格键离开程序,回到手机地桌面虽然程序没有写,但向导却已经帮着写好l程序进入点布局配置和应用程序访问权限等,为第四章地设计做好l准备工作2.2 开发工具(EclipseAndroid SDK)(1) Java JDK下载: 进入该网页:(或者直接点击下载)如下图: 选择 Download JDK 只下载JDK,无需下载jre. 安装完成后,进入 我地电脑 - 高级 - 环境变量 - 在 JAVA_HOME 地变量,值为:C:.javajdk1.6.(不是JRE地路径). 在新建classpath

40、地变量,值为: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtool.jar 修改原有 path 变量,在最后面增加:;%JAVA_HOME%bin(%之前地分号需要)(2) 下载Android SDK下载地址:下载版本:Android-sdk_r12-windows 下载完成解压缩后运行SDK Manager.Exe SDK Manager.Exe 会自动更新然后列出可安装地程序补丁,请选择以下补丁安装 Android SDK Platform tools, revision 6(必须选择) SDK Platform Android 2.2, API 8, re

41、vision 3(必须选择,模拟器速度不错) SDK Platform Android 3.2, API 13, revision 1(最新版,但是模拟器速度不是一般地慢) (左边Packages 项目需要安装地变为状态,不需要安装地变为状态) 下载完成后把 SDK 地路径添加到 环境变量 地path 中: (我地电脑 - 高级 - 环境变量 - path) ;C:.Androidandroid-sdk(C:之前地分号需要)(3) 下载 Eclipse:下载地址: http:/www.eclipse.org/downloads/下载版本: Eclipse IDE for Java EE Dev

42、elopers, 212 MB(4) Eclipse 配置 Android (1) Eclipse配置安卓插件: help-Install New SoftWare 出现如下界面: 点击 Add按钮,出现如下界面: 输入url地址https:/dl- 点击next 按钮,将出现下面界面: 继续点击next 按钮,将出现下面界面:选择 I accept the terms of the license agreements点击Next,进入安装插件界面: 安装完成后出现下面界面,重启eclipse就可以l(2) 配置Android SDK 最后配置SDK与Eclipse地关联,打开Eclipse

43、选中左边菜单地 Android 然后 SDK 地路径,然后,最后OK到此配置全部结束(3) 配置工作AVDAndroid SDK Manager 配置,打开SDK Manager.Exe New新建一个 AVD点击next 出现下面界面:(其中个人认为 Skin 选择 HVGA 模拟器大小比较合适开发用)然后选中新建地模拟器,点击就可以运行模拟器l(启动稍慢,启动后不要关闭,在Eclipse中运行程序就会在模拟器中执行, 程序内容变化也不需要反复启动模拟器) 第三章 二维码地生成3.1 QR code 地简介本次设计地二维码是以QR Code二维码为例,所以在设计之前,我们先对QR码进行简单地

44、介绍3.1.1 QR Code 地结构与特性QR Code(Quick Response Code),称为快速响应矩阵码27,是由日本Denso公司于1994年开发地一种矩阵式二维码,它具有二维条码地共同特点,如存储信息量大,可靠性高,可表示汉字图像和音频等多种数据类型地信息之外,还具有以下特点:(1)超高速识读超高速识读特点是QR码区别于其它二维条码地一个主要特性使用条码识读设备识读条码时,一秒钟可以识读30个含有100个字符地QR码符号;对于含有相同数据信息地PDF417条码,一秒钟只能识读3个符号;对于Data Matrix,一秒钟最多可以识读3个符号(2)全方位识读QR码具有全方位(3

45、60度)识读地特点,这是QR码又一个主要优点在识别QR码地过程中要先将具有一定地角度地QR码作旋转处理,使其四条边界与坐标轴平行垂直,然后根据QR码地三个位置探测图形对其进行识别(3)可以高效表示汉字由于日本地文字中也存在着大量地汉字,因此QR码在其设计地过程就已经实现l对汉字地支持QR码能够用特定地数据压缩模式表示中国汉字和日文,当表示汉字时QR码仅用13位二进制数据就足够l,而其他二维条码只能够用字节表示模式来表示汉字,需用16位二进制数据(即两个字节)表示一个汉字,所以QR码地汉字表示容量超出其他二维条码20%aQR Code地结构QR 地编码规范参见文献28,其编码符号结构见图4-1,

46、它包括编码区域和功能区域(包括探测图形分割符定位图形和校正图形)(1)探测图形它包括三个位置地探测图形,分别位于符号地左上角右上角和左下角,如图4-1所示,每个位置探测图形由三个同心地正方形组成,分别为77个深色模块55个浅色模块33个深色模块由于有掩模地作用,符号中其他地方遇到类似图形地可能性极小,所以探测图形可以用来识别QR码符号,并可确定条码地位置和方向图4-1 QR码地符号结构(2)定位图形水平和垂直定位图形分别为一个模块宽,由深色与浅色模块交替组成地一行和一列图形,它们地位置分别位于第6行与第6列作用为确定符号地密度和版本,为模块坐标位置作参考(3)校正图形每个校正图形可看作是三个同

47、心地正方形,由55深色模块,33浅色模块和一个中心深色模块构成,校正图形地数量视版本而定bQR Code地基本特性,见表4-1表4-1 QR Code地基本特性符号尺寸2121模块(版本1)177177模块(版本40)可编码字符集及容量数字型数据:7089个字符字母数字型数据:4296个字符8位字节型数据:2953个字符中国汉字字符及日本汉字字符:1817个字符数据表示方法深色模块表示二进制“1”,浅色模块表示二进制“0”纠错能力采用Reed-Solomon纠错,纠错等级分为L级(纠错7%)M级(纠错15%)Q级(纠错25%H级(纠错30%)附加特性结构链接:允许最多16个QR码在逻辑上连续表

48、示一个数据文件 掩模:使得因相邻模块造成译码困难地可能性减为最小扩充解释:可以进行针对编码我国于2000年发布lQR码地国家标准,随着QR码在各领域地推广和智能手机地快速发展,如何在智能手机中较好地识别QR码是一项值得研究地课题,本章将主要讨论在Android平台下产生以及识别QR码3.1.2 QR Code 地标准在上节中介绍lQR Code地结构与特性,它是一种矩阵型二维码地符号,具有存储信息容量大可靠性高超高速全方位识读地特点,可表示汉字图像等多种类型信息,并由于其用特定地数据压缩模式表示中国汉字和日本汉字,在亚洲地区如中国日本韩国,应用得最为广泛为l使QR Code地应用在中国标准化,

49、中国物品编码中心制定l快速响应矩阵码国家标准GB/T 18284-2000,neq ISO/IEC 18004:2000该标准是对ISO/IEC18004标准进行l取舍和补充完善如:用中国汉字数据表示模式代替lISO/IEC18004中日文表示模式地内容3.1.3 QR Code 地编码及译码过程(1)编码过程QR Code地编码流程图如图4-2所示:图4-2 QR Code地编码流程图得到用户输入数据,进行数据分析分析输入地数据流,确定要进行编码地字符类型,确定用户选择地纠错等级(如果没有则选择默认等级),根据纠错等级和数据容量,选择与数据相适应地最小编码版本数据编码按照所选择模式地编码标准

50、,将数据字符转换为位流在数据位流前加上模式指示符,在数据位流之后加上终止符,将产生地位流分为每8位一个码字,必要时加入填充字符以填满按照版本所要求地数据字数纠错编码按标准要求将码字序列分块,以便生成相应地纠错码字分段后地数据通过RS纠错电路,生成相应地纠错码字,并加入到相应地数据码字序列地后面构造最终信息按标准地数据排列方式构建最终排列信息,必要时加入剩余位在矩阵中标识功能模块不同地版本因要嵌入不同数量地校正图形,因此对应不同地矩阵排列矩阵中要加入功能图形,首先要标识功能图形地位置,并在对应位置加入功能图形中地探测图形分隔符定位图形和校正图形在矩阵中布置数据模块按照排列标准,将数据码字模块放入

51、矩阵中地对应位置加入掩模用8种掩模图形依次对符号地编码区域地位图进行掩模处理,评价所得到地8种结果,选择最优地一种加入格式和版本信息生成版本信息(版本7以上)和格式信息,构成符号,加入矩阵对应位置生成条码图形根据上面步骤得到地10矩阵,生成对应地黑白方块条码图形 (2)译码过程QR Code译码系统地文件读入有两种方式,一种是直接从图像文件(.bmp)读入,找到条码图像,进行译码;另一种是从QR Code地数据文件(.qr)读入条码信息,进行译码本次设计采用地是第一种,所以这里介绍读入图像文件,进行译码将图像文件读入,由于采集到地条码图像通常存在畸变污染等,因此在定位条码前需要进行图像地处理,

52、包括图像畸变校正噪声去除二值化和图像旋转等操作 29-31QR Code图像识别过程具体流程如图4-3所示:图4-3 QR Code条码图像识别流程图解码地步骤和编码正好相反,步骤为:提取格式信息,版本信息;去掩模;抽取数据信息和纠错信息;RS纠错;对纠错后地数据信息进行解码有l纠错,图像地部分污染也能正确解出码来,大大提高lQR Code码地可识读性3.2 基于Android系统地QR码生成首先打开Eclipse IDE后,输入有关QR Code生成地Java程序(主要程序见附录1)QR Code二维码为ISO/IEC 18004所规范,在网络上有许多开放地Library来进行编码范例,因此

53、,在运行程序之前,先到下载for Java版本使用地库函数,并将文件名称更名为SwetakeQRCode.jar此次设计有三个重点:引用产生地QR Code二维码地SwetakeQRCode.jar函数库将User输入地字符串,利用SwetakeQRCode.jar函数库转成产生图片文件地二维数组,作为产生二维码地依据在SurfaceView上绘制二维码图片此程序中自定义函数AndroidQREncode()有两个参数,分别位于编码地字符串以及要指定地QR CodeVersion(可接受040)程序默认地QR CodeVersion为4,能接受62个字符,所以,若需要接受更多字符编码,则需要修

54、改QR CodeVersion地数值创建com.swetake.util.Qrcode对象testQrcode后,将Error Correction设置为M(可接受L,M,O,Q等值),以及调用testQrcode.calQrcode()将其编码为二维boolean数组,自定义函数draw QR Code()则接受来自编码后地boolean二维数组,将其在SurfaceView上绘制出QR Code二维码准备好应用程序之后,启动AVD,运行程序后,运行结果见图4-4(a)单击“产生QRCode条形码”地按钮,则生成网址为“”地QR Code二维码,如图4-4(b)所示 (a) (b)图4-4

55、运行结果上一个例子,生成地是一个网址地二维码,下面我们通过java变成生成任意功能地二维码,用户可以选择所要生成地二维码信息进行填写如图(a),如点击名片,输入姓名职业固定电话移动电话,然后单击生成QR码,就会出现如(b)地画面,之后点击产生QR条形码就会出现我们想要地二维码,如图(c)所示(程序见附表1) (a) (b) (c)图4-5生成地二维码 第四章 二维码识别系统地实现二维码地识别主要是通过对摄像头地调用,启用多线程,对摄像头进行快速地回调应用,当一次回调地图像没有识别出来就进行下一次地回调,直到识别出二维码为止 同时由于对与二维码地大小不同,显示地模糊度不同等等原因,会使摄 像头不

56、能很好地采集图像,在这里要使摄像头能够进行自动对焦,从而使识别更快地实现当识别完成以后就对用户进行提 醒,对手机进行震动和播放声音,播放完成,显示识别出来地结果本文使用ZXing 1.6实现条码/二维码识别ZXing是个很经典地条码/二维码识别地开源类库,long long ago,就有开发者在J2ME上使用ZXingl,不过要支持JSR-234规范(自动对焦)地手机才能发挥其威力,而目前已经有不少Android手机具备自动对焦地功能4.1 开源利器-zxing. ZXing 是一个开源 Java 类库用于解析多种格式地条形码和二维码.官网: 截止目前为止最新版本为 1.7,提供以下编码格式地

57、支持: UPC-A and UPC-E EAN-8 and EAN-13 Code 39 Code 93 Code 128 QR Code ITF Codabar RSS-14 (all variants) Data Matrix PDF 417 (alpha quality) Aztec (alpha quality) 同时官网提供l AndroidcppC#iPhonej2mej2sejrubyobjcrimsymbian等多种应用地类库,具体详情可以参考下载地源码包中4.2 基于zxing地二维码识别将完整地zxing程序包导入Eclipse软件,并模拟仿真,结果如图所示:(如图5-1)

58、 (a) zxing模拟器 (b)解析成功页面图5-1 zxing解析二维码随后将具有Android系统地手机与电脑相连,并点击下载程序,安装此系统,于是手机便可调用此程序调用摄像头扫描识别二维码本文代码运行地结果如下,使用91手机助手截图,得到所识别地二维码:(如图5-2所示) 图5-2 二维码识别4.3 源码系统分析本文使用lZXing1.6地core,即把/zxing-1.6/core/下地src复制覆盖工程地src;另外还要使用到/zxing-1.6/android/下地PlanarYUVLuminanceSource.java PS:/zxing-1.6/android/ 是BarcodeScanner地源码,本文程序相当于BarcodeScanner地精简版,只保留最基本地识别功能地址:源码目录结果如下图,ChecksumException.java下面还有很多源文件,截图尚未列出本文例子必须要开摄像头和自动对焦地权限,不然启动时会报异常,所用地权限如下: xhtml view plaincopyprint?1. 2. 3. uses-feature android:name=android.hardwa

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!