课程大作业实验报告二维条码(QRCode)的认识和识别课程名称:数字图像处理组长:舒明学号:200730540116年级专业班级:07通信1班成员二:丘晖学号:200730590123年级专业班级:07通信1班成员三:张旋学号:200730590131年级专业班级:07通信1班指导教师邓继忠报告提交日期2010年5月31日项目答辩日期2010年6月1日I摘要二维条码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。本实验研究对象是二维码之一QRcode,完成对其的定位,实现统计模块数、获取版本号、标志图像的功能。关键词:二维码特点QR码定位模块数版本号标志图像实现图IIABSTRACTTwo-dimensionalbarcodeisaspecificgeometryaccordingtocertainrulesintheplane(two-dimensionaldirection)distributionofblackandwhitegraphicrecordoftheinformationdatasymbolsinthecodeonthecleveruseofthepreparationoftheinternallogicofthecomputer-basedcomposition01bitstreamoftheconcept,usingthebinarynumbercorrespondswiththegeometricshapetorepresentthetextvalueofinformation,throughtheimageinputdeviceortheopticalscanningdeviceinordertoachieveinformationliteracyautomaticallyprocessedautomatically.Theexperimentalstudyisoneofthetwo-dimensionalcodeQRcode,tocompletetheirpositioning,toachievestatisticalmodulenumber,toobtaintheversionnumber,logoimagefeatures.Keys:Two-dimensionalcodeQRCodeLocateModuleNumberVersionnumberLogoimageImplementationplanIII目录1.项目要求.................................................................12.项目原理说明.............................................................12.1二维条码与一维条码..................................................................................12.2二维条码的分类.........................................................................................12.3了解QRcode码......................................................................................22.4编码.............................................................................................................63.系统分析...............................................................73.1系统的主要功能分析...............................................................................73.2系统的关键问题及解决方法......................................................................74.系统设计.................................................................84.1程序流程图及说明.....................................................................................84.2程序主要模块介绍...................................................................................135实验结果与分析..........................................................145.1实验结果...................................................................................................145.2项目的创新之处.......................................................................................165.3存在问题及改进设想................................................................................166.心得体会................................................................1611.项目要求1)自行查找资料,了解二维条形码(QRCode)的编码原理;2)从网上或图书馆搜集一些而为条形码的样本图像,挑选一些简单的(内含较少汉字信息)样本用于识,样本不少于10个;3)编写识别二维条码的程序;4)调试与验证程序。2.项目原理说明2.1二维条码与一维条码二维条码和一维条码都是信息表示、携带和识读的手段,但是一维条码是对“物品”的标识,二维条码则是对“物品”的描述。二维条码除了左右(条宽)的粗细及黑白线条有意义外,上下的条高也有意义,因此与一维条码相比,二维条码可存放的信息量较大。二维条码具有信息量大、安全性高、读取率高、纠错能力强等特点。2.2二维条码的分类二维条码可以分为堆叠式/行排式二维条码和矩阵式二维条码。堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成;矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,由“点”和“空”的排列组成代码。2.2.1堆叠式/行排式二维条码行排式二维条码(又称:堆积式二维条码或层排式二维条码),其编码原理是建立在一维条码基础之上,按需要堆积成二行或多行。它在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识2读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定、其译码算法与软件也不完全相同于一维条码。有代表性的行排式二维条码有CODE49、CODE16K、PDF417等。2.2.2矩阵式二维码短阵式二维条码(又称棋盘式二维条码)它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维条码有:CodeOne、MaxiCode、QRCode、DataMatrix等。2.3了解QRcode码2.3.1QRcode的主要特点(1)超高速识读:从QRCode码的英文名称QuickResponseCode可以看出,超高速识读特点是QRCode码区别于四一七条码、DataMatrix等二维码的主要特性。由于在用CCD识读QRCode码时,整个QRCode码符号中信息的读取是通过QRCode码符号的位置探测图形,用硬件来实现,因此,信息识读过程所需时间很短,它具有超高速识读特点。用CCD二维条码识读设备,每秒可识读30个含有100个字符的QRCode码符号;对于含有相同数据信息的四一七条码符号,每秒仅能识读3个符号;对于DataMartix矩阵码,每秒仅能识读2~3个符号。(2)全方位识读:QRCode码具有全方位(360°)识读特点,这是QRCode码优于行排式二维条码如四一七条码的另一主要特点,由于四一七条码是将一维条码符号在行排高度上的截短来实现的,因此,它很难实现全方位识读,其识读方位角仅为±10°(3)能够有效地表示中国汉字、日本汉字:3由于其特定的数据压缩模式表示中国汉字和日本汉字,它仅用13bit可表示一个汉字,而四一七条码、DataMartix等二维码没有特定的汉字表示模式,因此仅用字节表示模式来表示汉字,在用字节模式表示汉字时,需用16bit(二个字节)表示一个汉字,因此比其它的二维条码表示汉字的效率提高了20%。2.3.2QRcode的符号结构每个QRcode码符号由名义上的正方形模块构成,组成一个正方形阵列,它由编码区域和包括寻像图像、分隔符、定位图像和校正图像在内的功能图像完成。功能图像不能用于数据编码。符号的四周由空白区包围。如图1所示:图1QRCode的图形结构2.3.3符号版本和规格共40种规格,分别为版本1、版本2„„版本40。版本1为21*21模块,版本2为25*25模块,每一版本比前一个版本每边多4个模块,以此类推,模块为177*177模块。如图2、图3、图4所示:4图2版本1的结构图3版本2的结构图4版本7的结构52.3.4寻像图形QRCode图像具有三个位置探测图形,分别位于条码的左上、左下角。位置探测图形如下图所示,形特征是黑白条。比例为:黑∶白∶黑∶白∶黑=1∶1∶3∶1。由于位置探测图形具有特殊的比例,同时在掩模作用下,在QRCode条码的其他位置不可能出现这样比例的图形,所以可以通过找到三个位置探测图形来精确定位条码,如图5所示:图5位置探测图形的结构2.3.5定位图形水平和垂直定位图分别为一个模块宽的一行和一列,由深色浅色模块交替组成,其开始和结束都是深色模块。水平定位图形位于上部的两个位置探测图形之间,符号的第六行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第六列。它们的作用是确定符号的密度和版本,提供决定模块坐标的基准位置。见图1。2.3.6校正图形每个校正图形可看做是三个重叠的同心正方形,由(5*5)个的深色模块,(3*3)个的浅色模块以及位于中心的一个深色模块组成,校正图形的数量视符号的版本数而定,在模式2的符号中,版本2以上(含版本2)的符号均有校正图像。见图1。2.3.7编码区域6编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。见图1。2.4编码2.4.1数据分析即分析输入的数据流,确定转换字符所使用的模式类型。QRCode码包括几种不同的模型以便高效的转换数据字符,必要时可以进行模块之间的转换,从数字模式到日本汉字模式和中文汉字模式,每种模式所需要的位数逐渐增加,通过模式的转换可以使数据的为流长度最短。2.4.2数