




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录iii目 录第一章 绪论11.1 条码简介11.2 二维码技术发展11.2.2 二维码国内应用研究情况31.2.3 QR码的简介41.2.4 QR码的图形特征41.3 本文的研究意义和内容6第二章 QR码编码与解码的理论研究92.1 QR码编码理论92.1.1 QR码的图像特征92.1.2 QR码的编码方法122.2 QR码解码理论162.2.1 QR的图像预处理162.2.2 条码定位192.2.3 纠错和译码21第三章 QR码识别的图像算法253.1.QR码检测方法概述253.2常用的QR码检测方法253.3基于仿射变换快速识别QR码的方法263.3.1仿射变换概述263.3.2 仿射变换概述273.3.3 实验结果27第四章 Android平台上QR码生成与识别系统的搭建294.1Android平台简介及开发环境搭建294.1.1 Android系统架构294.1.2 Android开发平台搭建304.1.3 ZXing库314.2 QR码生成系统314.2.1需求分析314.2.2 系统实现324.3 QR码识别系统334.3.1 需求分析334.3.2 系统实现34第五章 总结与展望375.1 总结375.2 展望37致谢40参考文献42参考文献41第一章 绪论1.1 条码简介条形码技术 杨郁. 条码与自动识别技术J.企业标准化.2002,Vol.6:35-36.是当今最热门的一种自动化识别技术和信息化处理技术。条形码是基于计算机技术与信息技术基础而发展起来的一门结合了识别、编码、数据采集和处理、印刷于一体的新技术。条码技术的使用大大提高了信息自动输入的速度,并且使得计算机在处理信息时能提供准确及时的信息来支持不同的管理系统,。目前条形码技术被广泛应用到各个领域,如交通运输业、商业贸易、生产制造业、医疗卫生、仓储业等。条形码目前主要分为一维条形码和二维条形码。通常所说的条形码指的是一维条码 中国标准出版社.条码国家标准汇编S.中国标准出版社,2004.,它是由一组排列规则的条、空以及对应的字符组成的标记,这些条和空组成的数据包含了一定的信息,并能够用特定的设备识读,转换成计算机兼容的二进制和十进制信息。一维条形码自出现以来一直备受人们的广泛关注,但是由于受到信息容量的限制,一维条形码通常只是对物品的标识,却不包含对物品的任何描述。而且一维条形码使用时需要连接数据库,只有通过访问后台的数据库,提取出相应的信息才能识读物品标识的具体含义。一维条形码已经表现出了它的局限性,它已经无法满足实际应用系统的需求。首先,一维条码对信息的具体描述依赖于预先建立的后台数据库或网络,必须通过连接访问后台数据库的方式提取到对应的信息才能识读条码所表达的事物的信息含义,因此在没有数据库和不便联网的地方它的使用受到了极大的限制,有时甚至变得毫无意义;其次,一维条码只能表达字母和数字,而不能表达文字和图像或者多媒体,因此在有文字的场合使用显得十分不方便且效率很低;另外,在某些场合下,大信息容量的一维条码通常受到标签尺寸的限制,给产品的包装和印刷带来了不便。现代高新技术的发展,迫切要求条码能在有限的几何空间内表示更多的信息,从而满足千变万化的信息的需要,于是二维条码技术应运而生 矫运起 , 张成海 . 二维条码技术.北京:中国物价出版社.1996.12。1.2 二维码技术发展二维码 Sriram T,Rao V K. Application of Barcode Technology in Automated Storage & Retrieval Systems. Industrial Electronics Conference Proceedings. Taipei,Taiwan,1990.1:5-10.的发展最早起源于日本,它是采用一种特定的几何图形按照一定的规律通过二维方向的平面分布的黑白相间图形来记录数据符号信息的,在代码编制方面巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用多个与二进制相对应的黑白几何形体来表示文字数据信息,通过光电扫描设备或者图象输入设备来自动识读以实现信息自动处理。二维条形码具有条形码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。二维码是一把万能锁,它适用于所有的信息数据。在信息发达的现代商业市场中,可实现的应用十分广泛,如:广告推送、产品防伪/溯源、网站链接、数据下载、商品交易、定位、导航、铁路订票系统、车辆管理等等。在种类繁多的二维条码中,常见的二维条形码有:Data Matrix, ,QR Code, PDF417,等。1.2.1二维码国外应用研究情况国外对二维条码技术的研究开始于20世纪80年代末。在二维条码符号表示技术研究方面,已经研制出多种码制,常见的有PDF417,QR Code,Code 49,Code 16K,Code One等。这些二维条码的信息密度都比传统的一维条码有了较大的提高,如PDF417的信息密度是一维条码Code 39的20多倍。在二维条码标准化研究方面,国际自动识别制造商协会(AIM)、美国标准化协会(ANSI)已完成了PDF417,QR Code,Code 49,Code 16K,Code One等码制的符号标准。新成立的国际标准化组织国际电工委员会第1联合委员会的第31分委员会,即条码自动识别技术委员会(ISO/IEC/JTC1/SC31),已制定了QRCode的国际标准自动识别与数据采集技术条码符号技术规范QR码,起草了PDF417,Code16K,DataMatrix,MaxiCode等二维条码的ISO/IEC标准草案。二维条码作为一种全新的信息传递、存储和识别技术,自诞生以来就得到了世界上许多国家的关注。在二维条码设备开发研制、生产应用方面,美国、日本等国的设备制造商生产的图像识读设备、符号生成设备,已广泛应用于各类二维条码应用系统 王毅.二维条码技术应用及标准化状况介绍J.中国标准化,2006年5月,18-20.。美国、德国、日本、墨西哥、埃及、哥伦比亚、巴西、新加坡、菲律宾、南非、加拿大等国,不仅已将二维条码技术应用于公安、外交、军事等部门对各类证件的管理,而且也将二维条码应用于海关、税务等部门对各类报表和票据的管理,商业、交通运输等部门对商品及货物运输的管理,邮政部门对邮政包裹的管理,工业生产领域对工业生产线的自动化管理。1.2.2 二维码国内应用研究情况我国对二维条码技术的研究开始于1993年。中国物品编码中心对几种常用的二维条码PDF417,QR Code,Data Matrix,Maxi Code,Code 49,Code 16K,Code One的技术规范进行了翻译和跟踪研究。随着我国市场经济的不断完善和信息技术的迅速发展,国内在原国家质量技术监督局和国家有关部门的大力支持下对二维条码这一新技术的需求与日俱增,中国物品编码中心对二维要码技术的研究要不断深入。我国在吸收了解国外相关技术资料的基础上,制定了两个二维条码的国家标准:GB/T17172-1997四一七条码 、GB/T18284-2000快速响应矩阵码。为使二维条码技术能够在我国的证照管理领域得到应用,在国外应用软件平台的基础上,我国物品编码中心开发了人像照片和指纹数据压缩软件。目前,二维条码技术已在我国的汽车行业自动化生产线、涉外专利案件收费、医疗急救服务卡、珠宝玉石饰品管理、铁路售票系统及银行汇票上得到了应用;1999年3月在北京举行的全国人大第九届三次全体会议和全国政协第九届三次会议期间,在随行人员证件、记者证、旁听证上成功地应用了二维条码技术,引起了与会代表和新闻界的极大关注;更值得一提的是我国香港特别行政区已将二维条码应用在特别行政区的护照上。可见二维条码随着我国信息化产业的发展应用越来越广泛。QR码最初是为了在汽车制造厂的零件库中便于追踪和记录汽车零部件而设计,当今QR码已广泛使用在各行各业的存货管理。用户通过使用智能手机或者扫描终端便可以轻松的对二维码进行扫描识别,生活中已经得到了广泛的应用,如应用在食品物流、隐形眼镜、服装等商品标签领域。在我国已有把二维条码用于人员管理和物品管理的实例。例如上海汽车销售中心已经在车辆信息的跟踪管理上使用二维条码,中国银行北京分公司开始将二维码应用于汇票上。公安部门尝试将二维条码应用于身份证和流动人口管理上,进出境管理部门在探讨将二维条码应用在护照上,海关也预想将其用在报关单上,如果这些想法都得以实施,那么我国在人员、物流管理上又有了新的提升。同时,QR码被越来越广泛地应用于电子票务领域,电影票、电子优惠券、电子会员卡等给人们的日常生活带来无数便利。在国外电子机票登机已经普及了,我国也在推广电子机票。2009年12月,广州机场已经开始使用电子机票了,无需登机牌,一条二维码短信就可以轻松登机。铁道部于2009年12月10日开始改版铁路车票, 新版车票采用QR码作为防伪措施,取代以前的一维条码。电子票务一般是通过短信方式发送一张包含相关信息的二维码图片到用户手机,使用时用户只需在指定地点的二维码识别终端上照一下,相关信息被读取出来,十分方便。目前使用比较广泛的电子票务二维码识别终端是上海夏浪科技的SL-QC15S,春秋航空、海南航空也已将此设备运用于其系统中。与此同时,中国移动也推出了QR码的离线业务,此举使QR码从企业级的应用走向平民的生活,可以预见在不久的将来,QR码将会越来越贴近普通人的生活。1.2.3 QR码的简介QR码 中国物品编码中心.二维条码技术与应用M.北京:中国计量出版社,2007-07:1-5.最早是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码所具有的识别功能以及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象等各种文字信息、保密防伪性强等优点。QR码中的“QR”指的是Quick Response 的缩写,即快速响应。顾名思义,这种二维码能够快速被读取。与之前的条形码相比,QR 码还能存储更丰富的信息,包括对文字、URL 地址和其他类型的数据加密。在2000年6月,QR码对应的ISO国际标准ISO/IEC18004获得批。根据Denso Wave公司的网站资料,QR码是属于开放式的标准,QR码的规格公开,而由Denso Wave公司持有的专利权益,则不会被执行。除了标准的QR码之外,还存在一种被称为“微型QR码”的条形码,是QR码标准下的缩小版本,主要是为了无法处理较大型扫描的应用而设计。微型QR码同样有多种标准,最高可储存35个字元。1.2.4 QR码的图形特征由于QR码不再使用线性扫描的方式工作,而是使用CMOS摄像头或者CCD扫描仪进行二维码图像的采集工作。由于二维码具有很高的纠错能力,所以二维码图像采集设备甚至能直接对液晶屏幕上显示的QR码进行扫描、识别,但是位于屏幕上的条码上方时容易因采集设备的红外光源在屏幕上的反光而影响识别,所以在识别过程中的图像预处理的鲁棒性决定了QR码识别率的高低。QR 码呈正方形,只存在黑色和白色两种模块。在正方形的4个角存在3个,印有较小的类似“回”字的的图案,分别位于左上、右上、和左下角,如图1.1所示。这 3个图像的主要功能是为了帮助解码软件快速的定位QR码的图像区域,使得图像采集器不需要精确的对准QR码,无论以任何角度扫描,QR码仍可正确被读取识别。图1.1 二维码的组成部分QR码比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。QR码的三个角上有三个寻象图形,使用CCD识读设备来探测码的位置、大小、倾斜角度、并加以解码,实现360度高速识读。图1.2 QR码和一维码的比较每秒可以识读30个含有100个字符QR码。QR码容量密度大,可以放入1817个汉字、7089个数字、4200个英文字母。QR码用数据压缩式表示汉字,仅用13bit即可表示一个汉字,比其他二维条码表示汉字的效率提高了20%。QR具有4个等级的纠错功能,即使破损或破损也能够正确识读。QR码抗弯曲的性能强,通过QR码中的每隔一定的间隔配置有校正图形,从码的外形来求得推测校正图形中心点与实际校正图形中心点的误差来修正各个模快的中心距离,即使将QR码贴在弯曲的物品上也能够快速识读。QR码可以分割成16个QR码,可以一次性识读数个分割码,适应于印刷面积有限及细长空间印刷的需要。此外微型QR码可以在1厘米的空间内放入35个数字或9个汉字或21个英文字母,适合对小型电路板对ID号码进行采集的需要。从应用平台来分,二维QR码的生成与识别技术可以分为基于PC平台和移动平台。基于PC平台的生成与识别技术可以在Windows、Linux、Mac OS操作系统下的程序。PC平台上的生成与识别算法除了有良好的识别率,还有速度快、实时性高等优点。然而基于PC平台的识别技术因为不能随时移动而无法满足实际的应用。基于移动平台的二维QR码的生成与识别技术就很好的解决了这个问题。常见的移动平台有苹果公司的iOS平台、Google公司的Android手机平台以及微软的Windows Phone平台。在二维码生成与识别的技术上,目前已经有不少鲁棒性高,稳定的第三方工具库,如ZXing库 宋永生基于Android的商品比价系统的设计与实现J.电脑知识与技术2011 18,4359-4361是一个开源Java类库,用于解析多种格式的一维和二维条形码,并提供了多种平台下的客户端包括:J2ME、iOS和Android,以及ZBar库等。1.3 本文的研究意义和内容由于QR Code二维条码的专有高效的汉字编码模式非常适合我国应用,如果能够研究出属于我国自己的更为高效的QR码编译码算法,并将其实现,使之实用化,将是条码技术在我国应用的创新,也将推进二维条码在我国的普及过程。本文在充分了解条码技术的发展现状及趋势的基础上,认真研究QR Code二维条码国家标准GBT 182842000,详细介绍了二维QR码的结构和编解码规则,分析了QR码的编码流程,并结合QR码的编解码技术,纠错编码理论,在Android平台上用实现了QR码的编解码。在QR码的译码过程中需要对摄像头采集的图像进行预处理,特别是针对畸形的二维码需要进行校正,因此本文在二维码识别上重点研究了基于仿射变换快速识别QR码的方法,并分析比较了实验结果。本论文的具体章节内容安排如下:全文内容安排如下:第一章是绪论,首先阐述了二维码的国内外技术的研究和发展情况。然后简单的介绍了QR码的特性。第二章是QR码的结构以及编码、解码的介绍。本章首先介绍了QR码的图像特征和结构,然后简单叙述了QR码的编解码理论,以及图像的预处理方法。第三章是基于仿射变换快速识别QR码的方法。本章首先介绍了QR码的检测原理以及常用方法。然后重点研究仿射变换的方法以及基于QR码特征的仿射变换方法。第四章是二维QR码识别系统在Android手机平台上的应用。本章首先介绍了Android操作系统的结构和特点以及其环境的搭建。然后设计了QR码的生成与识别流程需求进行分析,并对QR码识别系统在Android平台下进行了完整的实现。第五章是总结和展望,对文本所做的工作和不足进行总结,对QR码的发展前景作出预测并且提出可能面对的新问题。第二章 QR码编码与解码的理论研究2.1 QR码编码理论2.1.1 QR码的图像特征QR码符号包括两大部分:编码区格式和功能图形。编码区格式包括了由格式信息、版本信息以及数据信息和RS生成的纠错码字,其中大部分是数据信息和纠错码字;而功能图形是指符号中用于符号定位与特征识别的特定图形,由位置探测图形、分隔符、定位图形以及校正图形组成。QR码符号区域被空白区包围,空白区不打印任何信息,四周空白区的宽度为四个模块的宽度。以版本7的QR7的QR码为例,它的符号结构图如图2.1所示 国家质量技术监督局GBT 18284-2000快速响应矩阵码国家标准M北京:中国标准出版社2001: 图2.1 QR码符号的结构(1)QR码的寻像图形QR码的寻像图像由三个处于相同的位置探测图像 张海成,郭卫华QR Code快速响应矩阵码M,北京:中国标准出版社2001:2325组成,分别位于符号的左上角、左下角和右上角,如图2.2所示。每个位置探测图形由3个黑白交替的重叠的同心的正方形组成,分别为77个黑色模块、55个白模块和33个黑色模块,如图22所示。位置探测图形的模块宽度比为1:1:3:1:1。采用此图形是由于在符号中其他地方遇到类似图形的几率极小,所以可以在图片中迅速地识别可能的QR码符号,明确符号的位置和方向。图2.2 位置探测图形的结构(2)分隔符在每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,它全部由白色模块组成,如图2.1中所示。(3)定位图形定位图形为一个模块宽的一行和一列,水平定位图形位于上部的两个位置探测图形之间,符号的第6行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第6列。,由黑色和白色模块交替组成,其开始模块和结尾模块都是黑色。它们的作用是确定符号的密度和版本,提供决定模块坐标的基准位置,如图2.1中所示。(4)校正图形每个校正图形由3个黑白交替的重叠的同心正方形组成。形状似小型位置探测图形,由内到外依次为11个黑色模块,33个白色模块和55个黑色模块,如图21所示。校正图形的数量依QR码的版本而定,版本2以上的符号均有校正图像。(5)格式信息格式信息位于符号的第9行和第9列,在符号中出现两次以提供冗余,因此它的正确译码对整个符号的译码至关重要,如图2.3中所示。图2.3 格式信息格式信息为15位,其中有5个数据位,10个是用BCH(15,5)编码计算得到的纠错位。在前5位数据位中,第1、2位代表符号的纠错等级,如表2.1所示。第3到第5位的内容为掩模图形参考,后10位为纠错位。格式信息的最低位编码为0,最高模块编号为14。表2.1 纠错等级指示符 纠错等级 二进制指示符L 01M 00Q 11H 10(6)版本信息版本信息位于符号的右上角的位置探测图形左侧的6行3行,和左下角的位置探测图形上部的3行6行处。版本信息的正确译码对整个符号的译码也很重要,因此在符号中也出现两次以提供冗余。如图2.4所示。图2.4 版本信息版本信息共18位,前6位为数据位,后12位为通过BCH(18,6)编码计算出的纠错码。6位数据位是版本信息,第1位是最高位。版本信息的最高位模块编号为17,最低位模块编号为0。(7)编码区域与空白区编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。空白区为环绕在符号四周的4个模块宽的区域,其反射率应与白色模块相同,同时也将QR码符号和图像背景分割开来。2.1.2 QR码的编码方法QR码的编码过程如图2.5所示步骤进行。图2.5 QR码编码流程图(1)数据分析首先对输入的数据流进行分析,确定编码字符的类型。QR码可以支持对多种不同的数据模式进行编码,包括数字、字母和中国汉字等。分析数据的目的是为了能够对不同的数据模式进行高效的编码。同时根据需要选择相应的纠错等级来提高符号的可靠性。在没有预先设置所要采用的符号版本的情况下,默认选择与数据相适应的最小版本。(2)数据编码按照所选择模式的编码标准,将数据字符转换为位流。同时在数据位流前面加上模式指示符,在数据位流之后加上终止符,将产生的位流分为每8 位一个码字,必要时加入填充字符以确保填满按照版本所要求的数据字数。 数据编码举例。当输入数据为:01234567,数字模式。按如下步骤编码:1)分为3位一组:012/345/67;2)转换二进制:012-0000001100,345-0101011001,671000011;3)连接得到一个序列:000000110001010110011000011;4)字符数为8个,得到字符指示符(长度为10位):8-0000001000;5)加入模式指示符0001,字符计数指示符0000001000和终止符0000得到最终序列:0001 0000001000 0000001100 01010110011000011 0000。(3)纠错编码纠错编码 黄宏博,肖峻岭,佟刑娟基于ReedSolomon算法的QR码纠错编码J计算机工 程,2003(1),29期:9395即为根据需要将码字序列分块,生成相对应的纠错码字,一并加入到相应的数据码字序列的后面。QR码的编码采用ReedSolomon错误控制码来实现纠错功能,纠错面积高,可同时纠正突发错误和随机错误,使得符号在局部污损甚至缺失时仍然可以被正确解码。RS纠错算法可以纠正两种类型的错误:拒读错误(错误码字的位置已知)和替代错误(错误码字的位置未知)。可纠正的替代和拒读错误的数量如下式所示:式中:e表示拒读错误数;t表示替代错误数;d表示纠错码字数;P表示错误检测码字数。纠错具体步骤如下:1)依据版本和纠错等级,将数据码字分成块,分别计算每一块的纠错码;2)构造降幂的多项式h(x),多项式的系数为分块后得到的数据码字。第一个数据码字为多项式中幂次最高项的系数,而最后一个码字为幂次最低项的系数;3)多项式h(x)除纠错码后生成的多项式g(x)的余数就是纠错码。余数的幂次最高项为第一个纠错码字,幂次最低项就是最后一个纠错码字。纠错码的运算是在本原多项式:的伽罗毕域GF(28)内进行的。其中加减法为逐比特的异或运算,乘除法为幂指数的模255加减法。(4)构造数据码字和纠错码字当所有数据块的纠错码字都生成后,只需要把纠错码字添加到数据码字后面即可形成最终位流序列。在块序列中,所有的数据码字置于第一个纠错码字之前。通常情况下数据块和纠错块之和刚好可以填满符号的码字容量,而在某些版本中,则需要在最终的信息位流末尾添加3,4或7个剩余位。(5)置入功能模块和码字模块寻像图形、分隔符、定位图形、校正图形和码字模块一同放到矩阵当中。其中每个8位码字,按2个模块的宽度从符号的右下角开始蛇形排列。位序列从右到左,从最高位到最低位按模块的排列方向排列。图2.6为一个版本为2的符号字符布置,图2.7和图2.8为其中部分模块的位的序列。图2.6 版本2-M符号的符号字符布置 向上 向下 0 12 3 4 5 5 76 7 4 5 2 3 0 1 图2.7 向上或向下的规则字符的位的布置由向上变成向下 由向上变为向下2345016701234567 图2.8 布置方向改变的符号字符位布置示例(6)加入掩模 掩模的目的 Vanggils W J Two-dimensional dot code for product identification J IEEE Trans Information Theory 1 987:620-63 1尽可能避免与位置探测图形相同或者相似的图形出现在符号的其他区域。掩模的本质就是对符号进行异或(XOR)操作,并对根据相应的规则对异或后的结果图形记分,最后选择得分最低的图形。掩模过程如图2.9所示。图2.9 掩模过程(7)格式与版本信息格式信息由5位数据位和10位纠错位组成,与掩模图形101010000010010进行异或运算后,所得结果填入相应位置。版本信息由6位数据位和12位纠错位组成,同样放入符号的相应位置。2.2 QR码解码理论QR码解码过程就是对图片所包含信息的识读过程,二维码的解码过程可分为图像预处理、条码定位及纠错译码等几个主要步骤。参考国家质量技术监督局发布的 QR 码的参考译码方法如下:(1) 定位并获取符号图像。深色与浅色模块识别为“ 0”与“1”的阵列。(2)识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考。)(3) 识读版本信息,确定符号的版本。(4)用掩模图形掩模图形参考已经从格式信息中得出对编码区的位图进行异或处理消除掩模。(5)根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。(6)用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。(7) 根据模式指示符和字符计数指示符将数据码字划分成多个部分。(8)最后,按照使用的模式译码得出数据字符并输出结果。2.2.1 QR的图像预处理图像的预处理在解码过程中是不可或缺的。它将解决图像存在的失真,歪斜,缺损,以及QR 码图像背景中常常存在与识别条码无关的噪声等问题。预处理流程如下图2.2.1所示。图2.10 预处理的基本步骤采集和处理二维条码图像的方式有扫描式和摄像式两种。由于QR码是矩阵式二维条码,所以采集和识读QR码图像只能采用摄像式方式。摄像式图片采集方式又分电荷耦合元件(CCD)和互补金属氧化物半导体(CMOS)两种。CCD采集方式的图像质量高,感光速度快,但硬件开销较大,图像采集成本较高。近年来随着半导体技术的快速发展,CMOS的性价比日益提高,正在逐步占领市场。采集二维条码图像时,首先,通过光学透镜把二维条码图像成像在图像采集传感器上,然后,通过模一数转换或者直接数字化图像采集传感器上的图像,最后采用数字图像处理技术提取和识别数字图像。面向小型嵌入式设备的应用时,如手机、PDA等,还应该考虑图像处理的速度是否满足实时性要求,检测和处理QR码的效率是制约QR码识别系统应用范围的关键。本文所用数据全部是采用摄像式方式采集的包含背景的QR码彩色图像,然后,进行灰度化处理。由于光照条件复杂,灰度化后的图像背景的像素值往往变化较大,QR码符号图像与背景常常不具有很好的分离性。由于检测和识别的是图像中的QR码,所以,在检测和识别QR码之前,需要对图像进行预处理,突出QR码符号图像。QR码图像预处理的步骤如下:(1)读取含有QR码的灰度图像,若为彩色图像,则先进行图像灰度化处理;(2)采用适当的滤波方法平滑灰度图像,去除部分噪声;(3)利用适当的二值化算法,二值化灰度图像;(4)检测QR码图像的边缘,并使用Hough变换求出图像的倾斜角度;(5)根据求出的倾斜角度,使用双线性插值法校正倾斜的图像;(6)寻找深色浅色模块的比符合为:1:1:3:1:1的位置探测图形。嵌入式系统所采集的图像为彩色格式图像。由于彩色图像包含有大量的颜色信息,在存储和处理上的运算量和开销很大,故先对采集的图像进行灰度化处理。典型的图像灰度化的处理算法有:分量法、最大值法、平均值法、加权平均值法。其中分量法是将中分某个分量当成灰度值,最大值法是将分量中最大值当成灰度值,平均值法是将的值取平均当成灰度值。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此本文采用下式对RGB三分量进行加权平均能得到较合理的灰度图像: 二值化是图像预处理中的关键的步骤,二值化后图片的质量高低关系到了解码识别率的高低。选择一个合适的阈值是二值化的效果好坏的重要因素。基于QR码图像的特征:只包含黑色和白色模块。在采集的图像中快速定位和提取QR码信息的方法经常采用图像二值化的方法。二值化的主要思想是:设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。将大于T的像素群的像素值设定为白色,小于T的像素群的像素值设定为黑色。转换公式如下:目前针对不同图像、不同目标,求取阈值的方法有20几种,主要分为三类:全局阈值法、局部阈值法、动态阈值法。其中动态阈值法中主要有:最大类间方差法(OSTU算法)、迭代法、最大直方图熵阈值分割法(ENT)。全局阈值法在光照不均匀的条件下二值化的效果不理想。针对实际应用平台和环境采本文提出了一种基于图像分块的局部阈值方法,该方法在光照不均匀、背景复杂的环境下有很好的保留QR码特征的效果。具体步骤如图下:(1)将含有QR码的图片进行分块,每块大小的长和宽均为8,含有64像素。(2)以5*5的网格采样分别计算每块区域的阈值Ti,j (3)根据求得阈值Ti,j对每块区域进行二值化图2.11 阈值求取算法流程图根据1.2.1中二值化公式(2)及利用1.2.2中算法1求解得到的阈值矩阵T,对灰度化的图像进行二值化,由于QR码中黑色模块表示1,白色模块表示0.故灰度图像中小于阈值(黑色像素)的置为1,大于阈值(白色像素)置为0.不同二值方法的效果如图2.12所示:图2.12(a)原图图2.12(b) 采用全局阈值二值图图2.12(c)采用本文方法的二值图2.2.2 条码定位QR的图片上的信息分布如图2.13所示。如何将QR码从图片正确定位和提取出来可以有多种方法:参考文献 孙明,傅隆生,杨延信.用于QR码自动识别的图像分析方法J.电子科技大学学报.2009.38(6):1019-1020提出了基于条码边缘的特性通过不同的边缘检测算子对图像进行边缘检测而后通过Hough变换进行图像校正。参考文献 卫晋伟,戴曙光,穆平安.基于形态学和Hough变换的QR码校正定位方法J.电脑与信息技术.2010.18(6):33-35提出了挖空QR码内像素点的方法,从而获得QR码的外边缘,最后采用Hough 变换将畸形的图像进行校正。通过形态学的开闭运算对QR码进行图像处理后寻找探测图形。但是以上几种方法分别使用了边缘检测和Hough变换增加了运算量和累加定位的像素误差,图像校正和处理效果不明显。本文提出了采用基于三个探测图形和右下角校正图形的进行图像仿射变换进而提取和校正QR码。图2.13 QR码信息分布示意图基于探测图形黑白模块比例:1:1:3:1:1的特征对二值化图像进行搜索定位并获得三个探测图形的中心坐标:,, 。当QR码版本大于1时,QR码存在校正图形。基于校正图形黑白模块比例其分布位置:1:1:1的特征图像进行搜索定位并获得最右下角校正图形的中心坐标。当QR码版本等于1时,QR码没有校正图形。通过三个探测图形的几何关系计算出右下角假象的第四个探测图形中心坐标,可以认为该点为。假设QR码探测图形分布如图2.14所示,根据勾股定理及2.1求得的探测图形位置:,的几何关系可以求得探测图像的正确位置顺序、,如图2.14所示图2.14(a)检测到的探测图形 (b)探测图形正确位置2.2.3 纠错和译码编码和解码的不同之处在于解码加入了图像的纠错步骤,如果图像残缺或部分被污染,也能正确的进行译码,加大了译码的可识别性。二维码的译码步骤是编码程序的逆过程,其流程图见图2.15。图2.15译码流程图BCH的译码主要分为三个步骤:首先由接收多项式计算机伴随式,然后又得到错误模式,最后得到假设符号解除掩模后的码字是: 即:其中,是上的一个元素。(1)计算伴随式找伴随式其中,是的基元。(2)找错误模块 用上面的公式,找每一错误位置的变量,然后用变量代替下列多项式,并逐个代替上的每一个元素。即可找出错误出现在元素的第个位置上,从0开始计数,并且使。(3)找出错误值假定一个错误出现在上述第(2)中的第的位置上,那么可以通过下列表达式计算错误值:解上述方程的每一错误的值。(4)纠错将所得到的错误值的补数追加到每一个错误位置上来实现纠错。第三章 QR码识别的图像算法3.1.QR码检测方法概述由于通过摄像头拍摄图片过程中造成QR码倾斜、几何失真,所以要对QR码进行校正,本文未采取先通过旋转图片,然后进行几何畸形校正。因为如果进行旋转校正需要用到的三角函数和浮点运算,这样会引入新的误差,造成图像的二次失真。本文直接通过仿射变换对倾斜、几何失真、畸形的图像进行校正。3.2常用的QR码检测方法针对图像预处理中图像的几何校正,传统的QR码提取方法为模块比例检测方法。传统模块比例检测方法大概分为确定寻像图形,确定版本,确定采样网格。尽管对于像素点比较的多的QR码模块,使用传统模块检测提取方法效果显著。但是像素差的图像效果却不明显。它存在以下几点不足:(1)对于图像中满足要求的模块,由于相邻行列之间的模块像素差异比较大,可能造成漏检或错检的情况。(2)对于图像中不满足要求的模块由于控制点变换引入的噪声,可能使得符合比例要求而错误采样。(3)由于算法的实现需要在图像进行四次行列方向上的扫描,导致算法运算时间较长。与此同时,还有很多有关QR码检测的方法,比如:基于图象处理的QR码识别;基于图像投影直方图法的二维码在线检测与识别;基于相关匹配的QR码识别方法;基于形态学和Hough变换的QR码校正与定位方法;基于游程编码的QR码图像识别等,重点研究讨论另外一种检测方法:基于仿射变换快速识别QR码的方法。3.3基于仿射变换快速识别QR码的方法3.3.1仿射变换概述对于具有几何失真的图形可以根据特征点进行仿射变换还进行复原,仿射变换的一般表示方法如下: 其中 , 。通过给定四个已知点(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3)和四个目标点(x,0,y,0) (x,1,y,1) (x,2,y,2) (x,3,y,3)可以求得上述变换矩阵A的参数值,从而建立起四边形到正方形、正方形到四边形、四边形到四边形的仿射变换映射矩阵。仿射变换示意图3.1所示:图3.1仿射变换示意图由于条码在获取过程存在几何失真,本文提出了基于三个探测图像和一个校正图形的仿射变换理论的图像校正方法,变换过程如图7所示,具体算法步骤如下:(1)根据2.1求解得到的三个探测图形的中心坐标及校正图形的中心坐标,通过3.1获得正确的位置信息,建立仿射变换公式,并求得变换矩阵A的参数值。(2)根据QR码图像特征信息及其分布位置,求解得到QR码的版本号,并建立该版本的标准QR码数据空矩阵。(3)将标准QR码中的网格采样点通过求解得到的变换矩阵映射到原图像中,并得到相应坐标位置和数值。图3.2 仿射变换实现3.3.2 仿射变换概述根据3.2仿射变换得到的结果参数矩阵,采用如下算法对原图像进行搜索,并确定标准矩阵的值,最后完成QR码的检测。QR码检测算法如下: 图3.3 获取QR码数据矩阵3.3.3 实验结果为了验证本文方法的识别率和速度,本文实验普通CMOS摄像头采集环境分别是:均匀光照、不均匀光照。版本选用常用的版本1至版本10各10张含有QR码图片,采样分辨率为480*800。分别采用国标方法和含有本文预处理的方法对QR码进行识别。实验得到的识别数和识别率的数据如下表2所示:表2拍摄条件国标方法本文方法 均匀光照 不均匀光照 81%63%89%84%第四章 Android平台上QR码生成与识别系统的搭建4.1Android平台简介及开发环境搭建Android是基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。Android系统最新版本为Android 4.2 Jelly Bean4.1.1 Android系统架构 Android的系统结构如图4.1所示。从图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下:(1)应用程序层Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。(2)应用程序框架层应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提 供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。(3)系统运行库层从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,其中系统库应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。(4)Linux内核层 Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。图4.1 Android系统架构示意图4.1.2 Android开发平台搭建在进行Android开发之前,首先要搭建开发环境,Android开发环境的搭建主要步骤如下:(1) Java JDK 的下载和安装(2) 开发工具Ecplise 下载和安装(3) Adroid SDK 的下载和安装(4)ADT(Android Development Tools) 的下载和安装正确的配置好上述开发工具和开发环境就可以进行Android的应用开发了。4.1.3 ZXing库ZXing库是一个开源的支持多种一维和二维条码格式的图像处理库。ZXing库主要使用Java语言实现并且提供其他多种语言的程序接口,可以再多种不同的平台上使用。ZXing库的重点是在使用手机的内置摄像头设备的对条形码进行扫描识别和编码,而不与服务器通信。但是ZXing库仍然可用于PC机或者服务器上的进行条形码的编码和解码。ZXing库支持条码有QR码、PDF417、DataMatrix等。 4.2 QR码生成系统本文应用为目的,使用Ecplise和Android SDK及ZXing第三方库,搭建Android平台上的二维码生成与识别系统。4.2.1需求分析QR码的生成主要是将用户输入不同的信息,如纯文本信息、联系人信息、网址信息等内容编码成相QR码图片并让用户选择保存和分享QR码。Android 平台上QR二维码生成流程图如下图4.2:图4.2 二维码生成流程图4.2.2 系统实现图4.3 编码模块UML图如图4.3所示,QR码编码的操作封装在QRCodeWriter,进行二维码编码时,需要将编码内容、条码格式、图片宽高传递给MultiFormatWriter类对象。生成QR码的0、1矩阵数据,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年航空器材维修工程师职业技能认证试题及答案
- 2025年航空企业机械师安全生产知识考试试题及答案
- 2025年主厂房检修班技能培训试卷及答案
- 3.1 DNA是主要遗传物质教学设计-2023-2024学年高一下学期生物人教版必修二
- 高速公路沥青施工合同(3篇)
- 安徽导游证试题及答案
- 爱尔三基考试题库及答案
- oppo会计笔试题目及答案
- 互联网房地产投资合作框架协议范本
- 2025国税公务员面试题及答案
- 2024年云南怒江州州级事业单位选聘工作人员67人管理单位遴选500模拟题附带答案详解
- 《老年康复护理》帕金森康复护理自测题
- 市国资公司信访维稳工作应急预案
- SMT印刷工艺培训资料
- 2024年个人之间清账协议书模板
- 给水管道停水碰口专项施工方案
- 2024年人教版九年级英语单词默写单(微调版)
- 2024年东南亚解热镇痛类原料药市场深度研究及预测报告
- 中建企业定额2023版
- 《计算机网络实验教程》全套教学课件
- 间隔记录数据表
评论
0/150
提交评论