版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IOS平台QR码识别系统的设计与实现63 / 71摘要二维条码的识别是图像识别领域的一个热门课题。二维条码是在横向和纵向两个方位,同时用黑白相间的特定几何图形来记录数据信息,具有密度大、纠错强、容量高、易携带等特点,可以用之表示大容量的数据文件,实现对信息的高效存储、自动识别和移动处理。作为二维条码的一种,QR码是建立在计算机图像处理技术、组合编码原理等基础上的一种特殊码制。由于二维条码的信息密度比较高,尤其对于QR码,其识别技术比一维条码的识别更为复杂,因此如何实现二维条码有效快速的识别成为当前重要的研究领域。基于图像处理的二维条码手机识别系统与其应用的研究无论是在理论上还是在实践中都具有十
2、分重要的意义。随着移动互联网和手机操作系统的发展,越来越多的手机应用出现在了windows phone、iOS、android等平台上,本人在国某互联网公司参加完成了一款iOS平台热门app的项目,负责其中图像识别功能模块的开发,本文结合该项目完成了以下几项容:第一、介绍了QR码的码字特点与编码相关理论。第二、详细介绍了在手机上进行二维条码图像处理的步骤和方法,包括灰度化、二值化、图像裁剪、再次二值化、投影、图像旋转、二值形态滤波等。第三、将QR码的检测、识别和解码的算法通过C实现,然后设计并实现了基于iOS平台的QR码识别系统,重点分析了iOS平台开发的特点,以与开发过程中所遇到的图像采集、
3、存泄露等多方面的技术问题和解决方法。最后本程序进行了详细的测试,证明在各种复杂环境下,程序都可以快速而准确的识别出QR码,具有非常良好的性能以与可用性。关键词:二维码,QR码,图像处理,iOS开发AbstractThe two-dimensional bar code recognition is a hot topic in the field of image recognition. Two-dimensional bar code in both horizontal and vertical orientation record data with the specific geom
4、etry of the black and white color at the same time. It has advantages of density, error correction, high capacity, easy to carry and can be expressed large amounts of data file.As a two-dimensional bar code, QR code is a built in computer image processing technology, combined coding theory on the ba
5、sis of a special code system. Two-dimensional bar code information density is high, especially for the QR Code recognition technology than the one-dimensional bar code identification is more complex, so how to implement the two-dimensional bar code effective and rapid identification of important res
6、earch areas. Processing two-dimensional bar code image-based phone recognition system and its applications, whether in theory or in practice, have a great significance.With the development of mobile Internet and mobile phone operating system, a growing number of mobile phone applications appear in t
7、he windows phone, iOS, android and other platforms. I participate in an Internet company completed a iOS platform popular app project, responsible for the development of functional modules of which the image recognition, this paper combined with the completion of the project the following content:Fi
8、rst, the introduction of QR Code the codeword features and coding theory.Second, details on the phone with two-dimensional bar code image processing steps and methods, including grayscale, binary, image cropping, again binarization, projection, image rotation, binary morphological filtering.Third, Q
9、R Code detection, identification and decoding algorithm through C, and then designed and implemented based iOS platform QR code recognition system, the focus of the iOS platform development features, and images encountered in the development processcollection, memory leaks, and many other technical
10、issues and solutions.Finally, the program has carried out detailed tests, to prove in a variety of complex environments, the program can be quickly and accurately identify the QR Code, has a very good performance and availability.Key Words: two-dimensional code, QR code, image processing, iOS develo
11、pment目录摘要iAbstractii图目录IV表目录VI第1章 绪论11.1 课题背景11.2 二维条形码简介21.2.1 二维条形码21.2.2 QR CODE快速响应码31.2.3 手机二维码应用模式与现状41.3 本文的主要研究工作和容安排5第2章 QR码的结构和相关编码理论72.1 QR码简介72.1.1 QR码基本特征72.1.2 QR码符号特征92.2 编码理论112.2.1 编码方法概述112.2.2 数据分析122.2.3 数据编码132.2.4 纠错编码162.2.5 构造最终码字162.3 本章小结17第3章 QR码图像预处理与校正算法研究183.1 图像处理简介183
12、.2 QR码图像灰度化193.3 QR码图像二值化213.3.1 图像直方图增强灰度化213.3.2 图像二值化223.4 剪裁图像233.5 旋转图像243.5.1 哈夫变换243.5.2 图像投影253.6 二值形态滤波263.7 本章小结27第4章 iOS平台的图像识别系统设计284.1 图像识别系统功能简介284.2 图像识别系统详细设计294.2.1 图像识别系统框架294.2.2 陀螺仪控制模块设计314.2.3 图像采集模块设计324.2.4 图像预处理模块设计334.2.5 QR码识别模块设计354.2.6 文字识别模块设计374.2.7 拍照识别模块设计384.3 图像识别系
13、统界面设计404.4 本章小结44第5章 iOS平台的图像识别系统的实现与测试455.1 iOS开发平台简介455.1.1 iPhone SDK简介465.1.2 Cocoa Touch层简介475.2 关键模块实现515.2.1 陀螺仪控制模块实现515.2.2 图像预处理模块实现525.2.3 QR码识别模块实现525.3 开发中遇到的问题和解决方案535.3.1 开发语言混编问题535.3.2 实时检测取景问题545.3.3 摄像头静止判断问题545.4 程序的发布与测试555.4.1 程序存泄露调试555.4.2 程序发布565.4.3 程序测试565.5 本章小结59第6章 结论与展
14、望606.1 工作结论606.2 前景展望60参考文献62作者简历65致66图目录图 1.1 QR 码示意图3图 2.1 QR码结构图8图 2.2 QR码寻像图形10图 2.3 QR码编码流程图12图 3.1 图像预处理流程图19图 3.2 图像灰度化流程图20图 3.3 原始QR码照片20图 3.4 灰度化后QR码照片21图 3.5 二值化后QR码照片23图 3.6 剪裁后QR码照片24图 3.7 旋转后QR照片26图 3.8 二值形态滤波后QR照片27图 4.1 系统功能流程图29图 4.2 图像识别系统架构30图 4.3 陀螺仪控制模块流程图32图 4.4 图像采集模块流程图33图 4.
15、5 图像预处理模块流程图35图 4.6 QR码识别模块流程图37图 4.7 文字识别模块流程图38图 4.8 拍照识别模块流程图40图 4.9 启动前过度场景图41图 4.10 实时检测界面41图 4.11 对焦不准界面42图 4.12 实时识别界面42图 4.13 识别结果界面43图 4.14 拍照界面43图 4.15 文字框选区域界面44图 5.1 iOS平台架构图45图 5.2 iOS层级图46图 5.3添加C库调用环境53图 5.4 C修改文件编译类型54图 5.5 iPhone虚拟器运行测试55图 5.6 Instruments追踪程序运行情况56图 5.7 QR码识别对象57图 5
16、.8 QR码识别结果57图 5.9 文字识别对象58图 5.10 文字识别结果59表目录表 2.1 QR码位于左下角的版本信息11表 2.2 QR码位于右上角的版本信息11表 2.3 模式指示符13表 2.4 字符计数的位数13表 2.5 字母数字模式编码表14表 2.6 混合模式数据结构15第1章 绪论本章主要介绍了论文的课题背景和二维码的国外研究状况,以与本人在撰写论文期间所做的工作。1.1 课题背景信息技术的飞速发展,促进了信息开发和信息服务产业的诞生和发展,计算机在性能上日臻完善。人们一直在研究如何改变手工数据输入,提高输入质量和输入速度。条码自动识别技术就是在这样的环境下应运而生的。
17、条码识别技术是以计算机、光电技术和通信技术的发展为基础的一项综合性科学技术,是信息数据自动识别、输入的重要方法。在众多自动识别技术中,条码技术越来越被人们所认识和接受,已经成为当今主要的计算机自动识别技术之一。一维条码给人们的工作和生活带来巨大的变化。然而,一维条码所包含的信息有限。随着商品种类的多样化和信息传输的高速要求,人们迫切希望能直接从条码中获得大量产品信息,而不需要从数据库中检索信息。二维条码正是为了解决这个问题而产生的。在有限的几何空间印刷大量的信息,这一问题的解决可用两种方法:一是在一维条码的基础上向二维条码方向发展,采用行排式结构,把几层一维条码叠在一起,如PDF417,Cod
18、e 49条码等;二是利用图像识别原理,采用新的几何图像和结构设计出二维条码码制,如 Maxicode、QR Code、Data Matrix等。快速响应矩阵码(QR Code)是一种矩阵式二维条码,具有信息容量大、可靠性高、超高速全方位识读、高效汉字表示等优点,广泛应用于工商、金融、税务、物流、海关等领域1。近来,随着手机的普与和配置的不断提高,特别是摄像功能越来越强大,使用围越来越广泛,手机摄像功能潜力开发越来越受到人们的关注。其中,利用手机拍摄条形码获取信息进而实现某种服务的应用模式特别受到青睐。在国外,已经开始了通过手机拍照对物品条码识别的研究与应用。手机二维码具有信息量大,纠错能力强,
19、识读速度快,全方位识读等特点,可以印刷在报纸、杂志、广告、图书、包装以与个人名片等多种载体上,用户通过手机扫描二维码或输入二维码下面的即可实现快速手机上网,随时下载图文、音乐、视频、获取优惠券、参与抽奖、了解企业产品信息。同时,还可以方便地用手机识别和存储名片、自动输入短信,获取公共服务(如天气预报),实现电子地图查询定位、手机阅读等多种功能。随着3G的到来,二维码可以为在线视频、网上购物、网上支付等提供方便的入口。条码识别应用为用户使用手机上网提供了极大便利,省去了输入较长地址的麻烦,同时也可直接进入自己想看的网页,节省了上网的费用。此外,条码识别应用也为平面媒体、增值服务商和企业提供了一个
20、与用户随时随地沟通的方式。条码识别的上网应用旨在进一步为用户提供便捷、高质量的移动互联网服务,同时打造有中国特色的手机二维码产业链,为企业和行业应用开辟空间,国各互联网巨头也在大力推动手机厂商对条码识别软件进行手机置。手机二维码与手机菜单、搜索引擎并称为手机上网三大入口,可以让用户在任何地点、通过任何媒体、获取任何容,同时通过这种平台服务,为媒体、企业、品牌创造价值。本课题研究来源于国某互联网公司基于iOS平台的搜索类应用,该应用需要实现图像识别功能模块,结合强大的服务端和本地图像处理库,对文字和条形码进行识别。为了缓解服务器的压力,需要尽可能精准的在本地库中将条码识别出来,由于识别设备采用手
21、机,故二维码识别存在一些困难,一是图像质量问题,手机拍出来的图片可能会对焦不准,造成图像模糊,或者光线较暗,造成图像噪点很多,或者环境光线复杂,造成图像难以识别等等。1.2 二维条形码简介1.2.1 二维条形码二维条码是用某种特定的几何图形按一定规律在平面分布的黑白相间的图 形,在代码编制上巧妙地利用构成计算机部逻辑基础的“0”和“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理,它具有条码技术的一些共性:每种码制有其特定的字符集,每个字符占有一定的宽度,具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、
22、与处理图形旋转变化等特点。二维条码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积表达大量的信息。目前,根据二维条码实现原理、结构形状的差异,可分为堆积式或层叠式二维条码和棋盘式或矩阵式二维条码两大类型。堆积式二维条码的编码原理建立在一维条码基础之上,按需要堆积成二行或多行。它在编码设计、校验原理、识读方式等方面继承了一维条码的特点,识读、设备与条码印刷与一维条码技术兼容。但由于行数的增加,行的鉴定、译码算法与软件不完全一样于一维条码。有代表性的堆积式二维条码有PDF417,CODE 16K等2。矩阵式二维条码是在矩阵相应元素位置上,用点的出现表示二进制“1”,点的不出现表示二进制的“
23、0”,点的排列组合确定了矩阵码所代表的意义。矩阵码是建立在计算机图象处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵码如QR CODE、 DATA MATRIX等3。1.2.2 QR CODE快速响应码QR Code是由日本Dens公司于1994年9月研制的一种矩阵式二维条码符号,它除具有一维条码与其它二维条码所具有的信息容量大、可靠性高、可表示汉字与图像等多种信息、防伪性强等优点外,还具有如下主要特点4:图 1.1QR 码示意图(1) 超高速识读从QR Code的英文名称Quick Response Code可以看出,超高速识读是QR码区别于PDF417、D
24、ata Matrix等二维码的主要特性。由于在用CCD识读QR Code时,QR码符号息的读取是通过QR Code符号的位置探测图形,用硬件来实现,因此,信息识读过程所需时问很短,它具有超高速识读特点。用CCD二维条码识读设备,每秒可识读30个含有100个字符的QRCode符号:对于含有一样数据信息的PDF417条码符号,每秒仅能识读3个符号;对于Data Matrix矩阵码,每秒仅能识读2到3个符号。QR Code的超高速识读特性使它能够广泛应用于工业自动化生产线管理等领域。(2) 全方位识读QR Code具有全方位(360度)识读的特点,这是QR Code优于层叠式二维条码如PDF417条
25、码的另一主要特点,由于PDF417码是将一维条码符号在行排高度上的截短来实现的,因此,它很难实现全方位识读,其识读方位角仅为110 度。(3) 能够有效表示汉字由于QR Code用特定的数据压缩模式表示中国汉字和同本汉字,它仅用13 位可表示一个汉字,而PDF417、Data Matrix等二维条码没有特定的汉字表示模式,因此仅用字节表示模式来表示汉字,在用字节模式表示汉字时,需用16 bit(两个字节)表示一个汉字,因此QR Code比其它的二维条码表示汉字的效率提高 20%。1.2.3 手机二维码应用模式与现状手机二维码技术是指以二维码标准为核心,将手机作为载体,而展开的码制编码、译码、识
26、别、被识别相结合的综合性技术。二维码技术的研究始于20世纪80年代术,目前二维码已经是一项非常成熟的技术,并有许多国家开始应用这项技术5。(1) 手机二维码应用主要包括以下几种形式移动支付:手机的支付一般是通过手机钱包来实现的,手机钱包可以当作现金、储蓄卡、保管柜钥匙、火车票等。手机支付是手机二维码最典型的应用,二维码被广泛地应用于不同的支付方式中。电子票务:电子票务也是二维码的典型应用,该应用需要结合售票单位的网站、售票信息发布平台共同完成。消费者如果有购票的需求,可通过上网等方式查找相关的票务信息,然后可根据相关信息发短信至售票系统,再按提示进行手机支付。支付完成后,售票系统会把电子票以二
27、维码的形式发送到购票者手机中, 完成购票流程。二维码的识读应用:识读应用也是二维码的重要应用之一,主要用于平面介质上。消费者可以利用照相手机建的读码软件,轻轻对准平面杂志或是海报上的二维码一拍,就可以将二维码图形立即转化为文字,或是连接到相关网址,更方便地实现手机上网或容下载。2003年,日本电信运营商KDDI首先推出手机二维码业务。比如,在一CD或者DVD光盘上,通过手机识别二维码来了解光盘的容;在旅游景点配合GPS快速定位等。其后不久,国与中国也开始陆续推出自己的手机条码业务。现在,在同本、国和中国,手机条码已经随处可见。除了杂志和报纸,二维条码还被印在名片、户外广告牌、优惠券和产品包装等
28、介质之上。在二维码的识读应用方面,国做得也比较成功,他们在大学的图书馆中就安装了读取二维码信息的读码器。学生进入图书馆时,只需打开手机,调出手机上存储的二维码,然后将手机屏幕靠近读码器,便可将个人信息传到图书馆的电脑中进行身份识别,识别无误就可以进入图书馆,整个过程只需要几秒钟。这种二维码识别方式已经替代了原先必须检验学生证的传统方式。此外,图书馆借阅厅的电脑系统也与二维码读码器实现了连接。学生只要将手机上用于身份识别的二维码扫入读码器,便可在旁边的电脑上查阅自己的图书借阅情况。(2) 手机二维码应用情况自2005年5月中国移动将分公司确定为手机二维码业务的试点单位以来,移动已摸索出一套条码凭
29、证业务发展的成功模式。目前,移动已成功开发并推出了“移动订票”,“电子VIP”等比较成熟的条码凭证业务。在移动订票业务中,采用手机电子回执充当“电子票”,可以取消纸质票的人工配送环节。对目标客户发送相关二维码电子票务信息,客户只要调出电影院发送给自己的电子回执短信,让二维码图形显示在手机屏幕的中央,发出“嘀”的一声后,机器就能自动把电影票打印出来,然后验票入场。在“电子VIP”方面,移动VI P卡用户到VI P服务场所后,只要出示手机上的电子VI P卡,就可享受VI P会员服务。1.3 本文的主要研究工作和容安排本课题源于本人在工作单位开发的iOS项目,最终实现的容是基于iOS平台的大型搜索类
30、应用中的图像识别模块,该模块可以通过手机摄像头识别QR码和文字,其中QR码的识读是通过手机端代码来实现的,文字识读是将文字图片传送给服务器进行识别,该模块在识别交互以与核心识别功能上做了很大更改,其用户体验和识别成功率在类似的应用中均属于佼佼者,目前已经在苹果的应用商店上架,拥有数百万用户,具有非常好的反馈。本文主要研究QR Code二维码的识别与应用,包括条码图像的采集、条码识别和应用、纠错编译码等各个部分,用iPhone手机摄像头在自然光环境下采集图像,从得到的噪声较高的图像分离出QR码并进行识别并给出结果,并且可以根据该结果自动从服务端请求相关的搜索信息。本文的分为以下几个部分:第一章是
31、对二维条码技术的概述,介绍了二维条码的起源、发展和当前应用现状,着重分析了目前国最主流的二维码类型QR Code,并介绍了本课题的研究背景与成果。第二章详细介绍了QR Code的符号特性、条码结构与相关编码理论。第三章主要是QR码检测和识别算法的研究。研究了图像预处理的算法,然后讨论了图像的旋转算法和矫正算法。第四章是基于iOS平台的QR码识别系统的设计。介绍了iOS手机操作系统的特点,设计了QR码的识别解码流程。研究了QR码图像预处理方法和识别方法在iOS平台上的实现,以与在iOS平台上实现的关键技术和解决方法。第五章是基于iOS平台的QR码识别系统的实现。实现了基于iOS平台的 QR码的识
32、别系统,研究了图像采集的方法,分析了系统的签名技术。然后,研究了本 QR 码识别系统的一些应用情况。最后,对本系统做了详细的测试,测试表明本系统能快速准确的识别QR码。第六章是总结和展望。对本文的主要工作进行总结,并展望了二维条码的发展前景和面对的新问题。第2章 QR码的结构和相关编码理论本章主要分析和研究QR 码的符号特性、条码结构与相关编码理论。2.1 QR码简介QR 码是由日本Denso公司于1994年9月研制的一种矩阵二维条码符号。每个QR码符号是由正方形模块组成的一个正方形阵列构成,它由编码区域和包括寻像图形、分隔符、定位图像和校正图像在的功能图像组成,功能图像不用于数据编码,符号四
33、周为空白区。QR Code条码符号共有40种规格,分别是规格1至规格40。,规格为21模块x21模块至177模块x177模块。编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。寻像图像包括3个一样位置探测图形,分别位于符号的左上角、右上角和左下角,每个位置探测图形可以看作是由3个重叠的同心的正方形组成,它们分别为7x7个深色模块、5x5个浅色模块和 3x3个深色模块,用于确定QR码符号图像的位置,每个位置探测图形和编码区域之间宽度为1个模块的分隔符,全部由浅色模块组成。位置探测图形的模块宽度比为1:1:3:1:1。符号中其他地方遇到类似图形的可能性极小,因此可以在视场中迅速地识
34、别可能是QR码符号。识别组成寻像图像的3个位置探测图形,可以明确地确定视场中符号的位置和方向6。2.1.1 QR码基本特征在每个位置探测图形和编码区域之间有宽度为一个模块的分隔符,全部由浅色模块组成。水平和垂直定位图形分别为一个模块宽的一行和一列,由深色和浅色模块交替组成,其开始和结尾都是深色模块。水平定位图形位于上部的两个位置探测图形之间,符号的第6行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第6列。它们的作用是确定符号的密度和版本, 提供决定模块坐标的基准位置。图2.1是QR Code的ISO标准中给出的结构图7:图 2.1 QR码结构图QR基本特性主要有以下五个方面:(1) 编
35、码字符集:数字型数据(数字09);字母数字型数据(数字09;大写字母Az;9个其他字符:space, $,%,*,+,-,/,:) ; 字节型数据; 日本汉字字符;中国汉字字符(GB2312对应的汉字和非汉字字符)。(2) 数据表示方法:深色模块表示二进制 “1”,浅色模块表示二进制 “0” 。(3) 符号规格:规格符号不包括空白区域,符号规格从21x21模块到177x177模块 (版本1到版本40,每一版本比前一个版本每边增加4个模块) 。(4) 符号的数据字符数: 每种符号的数据字符数如下面所列: 数字数据7089个字符; 字母数字数据4296个字符; 8位字节数据2953个字符; 中国汉
36、字数据1817个字符。(5) 纠错能力:L级:约可纠错7%的数据码字;M级:约可纠错15%的数据码字;Q级:约可纠错25%的数据码字;H级:约可纠错30%的数据码字;(6) 结构(可选)允许把数据文件最多用16个QR码符号在逻辑上连续地表示。以任意的顺序扫描,原始数据能正确地重新连接起来。(7) 掩模(固有)可以使条码符号中深色与浅色模块的比例接近1:1,使因相邻模块的排列而影响高效译码的可能性降为最小。(8) 扩充解释(可选)这种方式使符号可以表示缺省字符集以外的数据(如阿拉伯字符、古斯拉夫字符、希腊字母等),以与其它数据解释(如用一定的压缩方式表示的数据)或者根据行业特点的需要进行编码。2
37、.1.2 QR码符号特征(1) 符号版本和规格QR码符号共有40种版本,分别为版本1、版本2版本40。版本l的规格为2l模块x21模块,版本2的规格为25模块x25模块, 依此类推,每一版本比前一版本每一边增加4个模块,直到版本40, 其规格为177模块x177模块(模块指每一个黑色或白色小正方形)8。(2) 寻像图形寻像图形包括二个一样的位置探测图形,分别位于符号的左上角、右上角和左下角,如图2.l所示。每个位置探测图形可以看作是由3个重叠的同心正方形组成,它们分别为7x7个深色模块、5x5个浅色模块、3x3个深色模块。如图2.2所示,位置探测图形的模块宽度比为1:1:3:l:l。识别组成寻
38、像图形的三个位置探测图形,可以确定QR码符号的位置和和旋转角度8。图 2.2QR码寻像图形(3) 分隔符在每个位置探测图形和编码区域之间有一个宽度为1个模块的分割符。如图2.1所示8。(4) 定位图形水平和垂直定位图形分别为一个模块宽的一行和一列,由深色和浅色模块交替组成,开始和结尾都是深色模块。水平定位图形位于符号上部的两个位置探测图形之间,在第6行。垂直定位图形位于符号左侧的两个位置探测图形之间,在第6列。它们的作用是确定符号的密度和版本,提供确定模块坐标的基准位置。如图2.1示。(5) 校正图形校正图形可以看作是3个重叠的同心正方形,由55个的深色模块,33个的浅色模块以与位于中心的一个
39、深色模块组成。校正图形的位置数量视符号的版本号而定,如图2.1示。(6) 编码区域编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号区域。(7) 空白区空白区为环绕在符号周围的4个模块宽的区域,其反色率应与浅色模块一样。(8) 版本信息版本信息包含QR码符号的版本大小,在图形中出现两次,提供信息冗余。如图2.1示。(9) 格式信息格式信息包含QR码符号的纠错级别和掩模信息,在图形中出现两次,提供信息冗余,如图2.1示。版本信息共18位,前6位为数据位,后12位为通过BCH(18,6)编码计算出的纠错码。6位数据位是版本信息,第l位是最高位。版本信息的最高位模块编号为17,最低位模块编
40、号为0,如表2.1和表2.2所示9。表 2.1 QR码位于左下角的版本信息01234567891011121314151617表 2.2 QR码位于右上角的版本信息012345678910111213141516172.2 编码理论2.2.1 编码方法概述编码过程包括七步,分别为数据分析、数据编码、纠错编码、构造最终信息、布置模块、掩模与添加格式信息版本信息,流程如图2.3所示:图 2.3QR码编码流程图2.2.2 数据分析QR码的编码模式包括数字模式、字母数字模式、8位字节模式、中国汉字模式、混合模式、结构模式等。因此需要对输入码流进行分析,选择合适的编码模式。此外,还需根据需要选择相应的纠
41、错等级提高符号的可靠性。如果没有预先规定所采用的符号版本,则选择与数据相适应的最小版本。2.2.3 数据编码分析输入数据流,根据容选择采用缺省的或者其它适当的ECI与模式,将输入数据根据编码模式转换为一个位流。其中每个模式段以模式指示符的最高位开始,以数据流的最低位结束,整个符号的结束由4位终止符0000表示,当符号数据位流后所余的容量不足4位时,终止符将被截短。再将位流转换为一个码字流,即每8位构成一个字节,根据版本和纠错等级以与输入数据大小,选择是否要交替添加填充码字11101100和00010001,将数据位流扩展,以填充数据容量。表2.3给出了不同模式的指示符。因各版本规格不同,其所容
42、纳的数据量也不同,每个版本有一个最大信息量,表2.4定义了采用不同模式和符号版本的字符计数指示符的长度10。表 2.3 模式指示符模式指示符模式指示符ECI0111中国汉字1101数字0001结构0011字母数字0010FCN10101(第一位置)1001(第二位置)8位字节0100终止符0000表 2.4 字符计数的位数版本数字模式字母数字模式8位字节模式中国汉字模式1-91098810-261211161027-4014131612下面将依次介绍不同模式下QR码的编码方法。(1) 数字模式编码输入的数据按每3位一组的方式转换成10位二进制数。若输入的数据位数不是3的整数倍,所余的l位或2位
43、分别转换成4位或7位二进制数。将二进制数据连接起来并在前面加上模式指示符(0001)和字符计数指示符(即数据位数的二进制表示,长度随版本改变,如表2.3和2.4所示)11。例如,要编码的数字为1234567890,选择的版本为1-M。编码的数字每3个一组,即分为123,456,789,0。分别转换成二进制,即000111101l,0111001000, 1100010101,0000。添加模式指示符0001与字符计数指示符(长度为l0位)0000001010,故最后形成的位流是11l1011011 0000。(2) 字母数字模式编码字母数字型数据(数字09;大写字母A-z;9个其他字符:spa
44、ce, $,%,*,+,-,/,:),。将数据信息分为两个信息一组,用11位二进制数表示。将每组中的前面字符的值乘以45与第二个字符值相加,将结果转换为11位二进制数。如果所要表示的数据字符数不是2的整数倍,则将最后一个字符的字符值编码为6位二进制数。然后将二进制数连接起来,并在前面加上模式指示符和字符计数指示符,最后将形成的最终位流转化为码字流。例如:以输入信息“AC-42”,版本为1-H,编码流程如下: 从表2.5查出字符对应值:AC-42分别对应:10,12; 将字符值每两个分为一组:(10,12) (41,4) (2); 将每组转换位1l位二进制数表示: (10,12):10*45+1
45、2=462(0011 l0011 10);(41,4):41*45+4=1849(1l l00111001);(2):2 (000010); 构成一个二进制序列: 000010; 加入模式指示符与字符计数指示符,形成最终位流序列:00l000000010l 0011 1001110 1l10011 l001000010 0000; 然后将位流序列转换为码字序列:00100000 01110 111001l l 00100001 00000000 11 101100 00010001 11101100。表 2.5 字母数字模式编码表字符值字符值字符值字符值字符值字符值0088G16O24W32+
46、401199H17P25X33-4122A10I18Q26Y34.4233B11J19R27Z35*4344C12K20S28SP36:4455D13L21T29$3766E14M22U30%3877F15N23V31*39(3) 8位字节模式编码输入数据的每个字符依照ASCII字符集转换成8位的二进制数据。将二进制数据连接起来,并添加模式指示符(0100)和字符计数指示符。(4) 中国汉字模式编码GB23 12国家标准中规定了中国汉字和非汉字字符共7445个,其中汉字字符6768个。GB2312规定的字符由两个字节表示,字符值为 GB2312中图形字符的码值。将输入数据字符转换为13位二进制
47、数据,然后在二进制数据前添加模式指示符、中国汉字子集指示符和字符计数指示符。(5) 混合模式编码为增加编码密度或根据输入数据容的要求,可以从一种模式转换到另一种模式来表示数据。其基本结构为模式指示符/字符计数指示符/数据,再接下一段的模式指示符/字符计数指示符/数据。表2.6所示所示为n段数据的结构。然后将数据字符转换为二进制位流,再在其后添加终止符(0000)。若符号所余的容量不足4位时,截断终止符。按照8位一组将位流分为若干码字。若最后一个码字不足8位,则对该段码字后补0以填满8位。最后,必要时加入填充宁符(11101100和00010001交替)以满足相应版本所要求的数据码字数12。表
48、2.6 混合模式数据结构段1段2段n模式指示符1字符指示符1数据模式指示符2字符指示符2数据模式指示符n字符指示符n数据(6) 结构连接模式结构模式用于把一个数据文件分开表示为多个QR码符号的序列,要求所有的符号可以识读并且数据可以按正确的顺序重新建立,每个符号都要有一个结构头,以标识这个序列的长度与该符号在其中的位置,并且检验是否所有识读的符号属于同一个文件。结构模式的编码方法不在本文的研究围之,故不再详述。2.2.4 纠错编码根据版本和纠正等级,将数据码字序列分为1个或多个块,对每一个块分别进行纠错运算。添加在数据码字序列后,使得符号可以在遇到损坏时不丢失数据。QR码的纠错码生成算法中,多
49、项式的运算采用模2算法和字节的模100011 101算法。如果一个域只包含有限个元,称它为有限域或伽罗瓦域。如这个域包含q个元,则这个域简记为GF(q),如果任取一个素数p,若F(p) = o,1,2,p1,在F(p)上规定加法为mod p加法,乘法为mod p乘法,构成GF(p)域。设b为GF(p)的元,则满足=1的m的最小正整数,称为b的级。若在GF(p)中,某一元素a的级为p一1,则称a为本原域元素。任何一个GF(p)域至少包含一个本原域元素。GF(p)中所有非零元可以表示成本原域元素a的p1个连续幂13:, = 如果8阶的本原多项式G(x) = + + + + + 1,则任何超过8阶的
50、a的幂由等式 = + + + + 1,转化为8阶以下的a次幂,循环使用该等式,直到没有高于的幂。数据码字为多项式各项的系数,第一个数据码字为最高次项的系数,第一个纠错码字前的最后一个数据码字是最低次项的系数。纠错码字是数据码字被纠错码多项式g(x)除得的余数。余数的最高次数为第一个纠错码字,最低次项系数为最后一个纠错码字,也是整个块的最后一个码字。2.2.5 构造最终码字在计算纠错码时,把数据码字分成了m块,每块包含n个码字,生成了m块的纠错码字,每块包含k个码字。对于这m块的数据码字和纠错码字,按照数据块1的码字1,数据块2的码字1数据块m-l的码字n,数据块m的码字n,纠错块1的码字1,纠
51、错块2的码字1纠错块m-1的码字k,纠错块m的码字 k的顺序,排列出最终的码字。若该码字数量小于符号的码字容量,则在最终的码字后补0(剩余位)以填满整个符号。2.3 本章小结本章首先分析了条码技术的特点、分类和编码方法,在此基础上对二维条码技术的相关知识作了概述,主要包括二维条码的分类、识读设备以与二维条码的特点,重点研究了本课题要实现的QR码的码图结构和编码规则。第3章 QR码图像预处理与校正算法研究QR码图像的预处理在整个条码识别系统中起着至关重要的作用,关系到识别系统的效率和性能,是整个系统的核心。条码图像的预处理首先要充分考虑到要识别的条码图像的特点,做出相应的图像处理方案,对于iPh
52、one手机,还应该考虑到图像处理的速度是否满足实际的要求。3.1 图像处理简介QR码的图像预处理是QR解码的前置步骤,直接关系到解码的成功率,因为通过iPhone手机摄像头获取的图片,在大多数情况下不会是标准而清晰的QR码图像,主要有这样几个特征:一是除了QR图像主体以外,可能还会有一些杂质,需要过滤掉;二是图像噪声可能较高,或者图像不清晰,造成识别难度;三是图像会被拉伸、扭曲、旋转等等,需要将QR码图像还原然后进行识别。QR码的识别首先要确定符号在图像中的位置,就是图像中固定部分的识别问题,然后再进行数据的读取。只要识别出检测部分,读取就不是难事。所以将符号中的检测部分整体作为一个待识别模式
53、,对其进行识别就是要解决的主要问题。QR码图像的识别基本思路是首先要对采集的彩色图像进行灰度化,然后用适当的阈值T对灰度图像进行二值化,得到二值图像。然后探测到二维码在图像中的位置与其倾斜角度,将其旋转至水平位置,得到水平位置的二维码的位置坐标,以进行后续的判别和解码工作。本章对于图像预处理做出了两个方面的改进以提高识别效率:一是二值图像投影将二维码图像旋转至水平位置时,仅选取QR码的四个顶点进行投影运算,大大降低了CPU的处理时间;二是通过两次进行图像二值化的方法,降低了对二值化阈值的选取的复杂度。条码图像处理的基本流程如图3.1所示:图 3.1 图像预处理流程图3.2 QR码图像灰度化iP
54、hone手机摄像头采集的是彩色图像,处理彩色图像比处理灰度图像的时间要长很多。而QR码是按照黑白方式打印的,所以对于识读条码的过程而言,彩色图像的信息是没有什么意义的,因此把彩色图像转化为灰度图像,将会大大降低识别运算时间,同时也可以节省存的开支。通常假定象素彩色各分量值为(R,G,B),其中RGB的值为0至255,那么标准的灰度值W的计算公式为14:W = 0.3R + 0.59G + 0.11B (3.1)在iOS平台,通过摄像头获取图像以后,可以很方便的通过iOS的开发框架Cocoa Framework中的CoreGraphics.framework获取该图像的对象信息,一般为JPEG和
55、PNG格式,获取图像以后取得RGB值进行运算,流程图如下:图 3.2 图像灰度化流程图通过iPhone摄像头对准液晶显示屏拍摄一图片,可以发现由于液晶屏的关系,照片很不清晰,有很多干扰纹:图 3.3 原始QR码照片经过灰度化以后,颜色暗淡了很多,图片大小也从3.2M变成了1.7M,节省了接近40%的存储空间,如果图3.3的彩色像素更多的话,图片的压缩比会更大。图 3.4 灰度化后QR码照片3.3 QR码图像二值化3.3.1 图像直方图增强灰度化灰度直方图是数字图像处理中的最简单且最有用的工具,它概括了一幅图像的灰度级容。灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素个数:其横坐标是灰度级,纵坐标是该灰度出现的频率。假设连续图像D(x,y),它平滑地从中心的高灰度级变化到边沿的低灰度级。我们选定某一灰度级,然后定义一条轮廓线,该轮廓线连接了图像上所有的具有灰度级的点,所得到的轮廓线形成了包围灰度级大于等于的区域的封闭曲线。同样定义第二条轮廓线,并且,定义和分别为第一条轮廓线和第二条轮廓线所包围的面积。将一幅连续图像具有灰度级D的所有轮廓线所包围的面积,成为它的阈值面积函数A( D) ,则直方图可定义为15:H(D) = = A(D) (3.2)直方图均衡化后图像均衡化后增加了图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考物理总复习专题七电场第1讲库仑定律、电场强度、电场线练习含答案
- 专业混凝土分包合同范本
- 《平衡计分卡培训》课件
- 高中数学 2.2 直线的方程 2.2.3.1 两条直线相交、平行与重合的条件教案 新人教B版必修2
- 八年级物理下册 第九章 机械和功 第三节 功教案 (新版)北师大版
- 六年级品德与社会上册 科学技术的另一面教案 泰山版
- 高中数学 1.1.2 空间向量的数量积运算教学设计 新人教A版选择性必修第一册
- 2024年六年级品社下册《让科学技术走进生活》教案1 冀教版
- 厨房管理规章制度
- 租借手机的合同(2篇)
- 国开电大本科工程数学(本)在线形考(形成性考核作业4)试题及答案
- 外研版四年级英语上册 (We are going to visit Hainan)教学课件
- 卓有成效的管理者解读
- 岗位之间工作衔接配合的安全与职业卫生事项
- 外来施工人员入厂工作流程
- 感染性疾病临床诊疗规范2021版
- 堆垛机安装指南演示文稿
- 退休欢送会上本人感人讲话稿(5篇)
- 颈淋巴结结核的诊断与治疗
- 《一切都是最好的安排》读书笔记思维导图PPT模板下载
- 识图培训学习课件
评论
0/150
提交评论