




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二维条码的认识和识别 组 长: 李学泓 学号: 201330280816 年级专业班级:13自动化3 组员一:_熊筠野_ 学号: 201330280722 年级专业班级:13自动化3 指导教师 邓继忠 摘 要随着信息技术的发展,二维条码应运而生,并且具有很好的应用前景。作为二维条码的一种,矩阵式的二维条码是建立在计算机图像处理技术组合编码原理等基础上的一种特殊码制。二维条码/二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。 二维条码/二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。 本实验研究对象是二维码之一QRcode,完成对其的定位,二值化,去除白框,实现统计模块数,获取版本号,去除功能区域,反色,获取格式及版本信息,去除格式及版本区域,获取码内信息,去除掩模,译码以及具有以上所有功能的一键运行功能。关键词: 计算机图像处理 二维码 QR码 定位 二值化 去除白框 旋转 模块数 版本号 格式信息 版本信息 功能区域 码内信息 掩模 译码 一键运行目 录目 录1. 设计要求.42. 开发环境.43. 原理说明.53.1 二维条码与一维条码.53.2 二维条码的分类.53.2.1 堆叠式/行排式二维条码.63.2.2 矩阵式二维码.63.2.3邮政码.63.3 了解QR Code码.63.3.1 QR码编码字符集.73.3.2 QR码符号的基本特性与纠错能力.73.3.3 QR code 的主要特点83.3.4 QR code 的符号结构83.3.5 符号版本和规格.93.3.6 寻像图形.133.3.7 定位图形.143.3.8 校正图形.143.3.9 分隔符、编码区域、空白区.143.4 编码.143.4.1 数据分析.163.4.2 数据编码.163.4.3 纠错编码.163.4.4 构造最终信息.173.4.5 在矩阵中布置模块.173.4.6 掩膜.173.4.7 格式和版本信息.173.5 进一步深入认识QR Code.173.5.1 QR Code模式.173.5.2 码字在矩阵中的布置.213.5.3掩模.233.5.4 格式信息.253.5.5 版本信息.264. 系统分析.274.1 系统的主要功能分析.274.1.1 二值化.274.1.2 QR code定位并标记位置图像.274.1.3 QR code的版本识别,并计算模块数.274.1.4 去除功能区域.274.1.5 获取格式信息及版本信息.274.1.6 获取码内信息.274.1.7 去除掩膜并获取码内信息.274.1.8 译码.274.2系统的关键问题及解决方法.285. 系统设计.285.1 程序流程图及说明.285.2 程序主要模块(或功能)介绍.295.2.1 标记模块.305.2.2 信息提取模块.305.2.3 译码模块.336. 实验结果与分析.406.1实验成果.456.2存在问题及改进设想.487. 设计体会.497.1系统开发的体会.497.2对本门课程的改进意见或建议.49参考文献.491. 设计要求1) 了解二维条形码(QR Code)的编码原理;2) 编写识别二维条形码的程序;3) 调试与验证程序;4) 编写二维条形码(QR Code)认识与识别实验报告;5) 编写二维条形码(QR Code)认识与识别演示PPT。2. 开发环境本项目的开发环境是LabWindows/CVI以及IMAQ_Vision LabWindows/CVI是美国National Instrument公司开发的基于C语言的虚拟仪器开发的32位面向计算机测控领域虚拟仪器的软件开发平台,适用于自动测试、自动控制、测试仪器同学、测试硬件控制、信号分析及图像处理等软件的开发。经过版本的不断更新,LabWindows/CVI已经成为测控领域应用最广泛的软件开发工具之一。本项目主要是使用LabWindows/CVI(5.0版)。它以ANSIC为核心,将功能强大、使用灵活的C语言平台与用于数据采集、分析和表达的测控专业工具有机地结合起来。它的集成化开发平台、交互式编程方法、丰富的功能面板和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统、数据采集系统、过程监控系统等提供了一个理想的软件开发环境。IMAQ_Vision是NI公司开发的基于LabWindows/CVI的高级图像处理和分析软件包,是进行图像处理和分析的教学和科研的有力工具。该软件包的默认安装路径为C:CVI401,安装完成后,软件包提供了3个重要的文件:1) Imaq_Cvi.h:包含了与IMAQ_Vision for LabWindows/CVI相关的所有常量(constant)、枚举类型(enumerated type)、结构(structure)和函数原型(prototypes)的定义;2) Imaq_Cvi.fp:包含IMAQ_Vision for LabWindows/CVI的所有的函数面板;3) Imaq_Cvi.lib:包含了IMAQ_Vision for LabWindows/CVI的所有函数。IMAQ_Vision 为图像处理和分析共提供了15种类型的函数,用户可以按类同于C语言库函数的形式引用这些函数。在硬件方面,只需要电脑即可。3. 原理说明3.1二维条码与一维条码 二维条码和一维条码都是信息表示、携带和识读的手段,但是一维条码是对“物品”的标识,二维条码则是对“物品”的描述。二维条码除了左右(条宽)的粗细及黑白线条有意义外,上下的条高也有意义,因此与一维条码相比,二维条码可存放的信息量较大。二维条码具有信息量大、安全性高、读取率高、纠错能力强等特点。表1 二维条形码与一维条码的对照项目条码类型信息密度与信息容量错误校验及纠错能力垂直方向是否携带信息用途对数据库和通信网络的依赖识读设备一维条码信息密度低,信息容量较小可通过校验字符进行错误校验,没有纠错能力不携带信息对物品的标识多数应用场合依赖数据库及通信网络可用线扫描器识读,如光笔、线阵CCD、激光枪等二维条码信息密度高,信息容量大具有错误校验和纠错能力,可根据需求设置不同纠错级别携带信息对物品的描述可不依赖数据主通信网络而单独应用对行排式二维条码可用线扫描器的多次扫描识读;对于矩阵式二维条码仅能用图像扫描识读3.2二维条码的分类二维条码可以分为堆叠式/行排式二维条码、矩阵式二维条码和邮政码。 堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成;矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,由“点”和“空”的排列组成代码。邮政码通过不同长度的条进行编码。图1为二维条码的分类3.2.1 堆叠式/行排式二维条码 行排式二维条码(又称:堆积式二维条码或层排式二维条码),其编码原理是建立在一维条码基础之上,按需要堆积成二行或多行。 它在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定、其译码算法与软件也不完全相同于一维条码。有代表性的行排式二维条码有如PDF417等。图2为各种二维条码3.2.2 矩阵式二维码 短阵式二维条码(又称棋盘式二维条码)它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。 矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。 具有代表性的矩阵式二维条码有: Code One、 Maxi Code、 QR Code、 Data Matrix等。 图1 二维条码的分类 3.2.3邮政码邮政码通过不同长度的条进行编码,主要用于邮件编码,如BPO 4-State 。3.3了解QR Code码QR码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,QR码除具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点外,QR码还具有如下主要特点: 普通的一维条码只能在横向位置表示大约20位的字母或数字信息,无纠错功能,使用时候需要后台数据库的支持,而QR码二维条码是横向纵向都存有信息,可以放入字母、数字、汉字、照片、指纹等大量信息,相当一个可移动的数据库。如果用一维条码与二维条码表示同样的信息,QR二维码占用的空间只是条码111的面积。QR 码 (2D 符号) 在横向和纵向上都包含有信息,而Bar Code条码只有一个方向上包含有信息。QR 码能够包含的信息比条码多得多 ,如图3所示图3 QR码和Bar Code码QR码比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。QR码的三个角上有三个寻象图形,使用CCD识读设备来探测码的位置、大小、倾斜角度、并加以解码,实现360度高速识读。每秒可以识读30个含有100个字符QR码。QR码容量密度大,可以放入1817个汉字、7089个数字、4200个英文字母。QR码用数据压缩方式表示汉字,仅用13bit即可表示一个汉字,比其他二维条码表示汉字的效率提高了20%。QR具有4个等级的纠错功能,即使破损或破损也能够正确识读。QR码抗弯曲的性能强,通过QR码中的每隔一定的间隔配置有校正图形,从码的外形来求得推测校正图形中心点与实际校正图形中心点的误差来修正各个模快的中心距离,即使将QR码贴在弯曲的物品上也能够快速识读。QR码可以分割成16个QR码,可以一次性识读数个分割码,适应于印刷面积有限及细长空间印刷的需要。此外微型QR码可以在1厘米的空间内放入35个数字或9个汉字或21个英文字母,适合对小型电路板对ID号码进行采集的需要。多到 7,089 数字可以被编码。3.3.1 QR码编码字符集:1) 数字型数据;2) 字母数字型数据;3) 8位字节型数据;4) 中国汉字字符;5) 日本汉字字符。3.3.2 QR码符号的基本特性与纠错能力QR码符号的基本特性:符号规格 2121模块(版本1)-177177 模块(版本40) (每一规格:每边增加4个模块)数据类型与容量(指最大规格符号版本40-L级)1) 数字数据 :7,089个字符2) 字母数据 :4,296个字符3) 8位字节数据 :2,953个字符4) 中国汉字、日本汉字数据 :1,817个字符数据表示方法:深色模块表示二进制“1”,浅色模块表示二进制“0”。纠错能力:1) L级:约可纠错7%的数据码字2) M级:约可纠错15%的数据码字3) Q级:约可纠错25%的数据码字4) H级:约可纠错30%的数据码字 掩模:可以使符号中深色与浅色模块的比例接近1:1,使因相邻模块的排列造成译码困难的可能性降为最小。3.3.3 QR code 的主要特点 (1)超高速识读: 从QR Code码的英文名称Quick Response Code可以看出,超高速识读特点是QR Code码区别于四一七条码、Data Matrix等二维码的主要特性。由于在用CCD识读QR Code码时,整个QR Code码符号中信息的读取是通过QR Code码符号的位置探测图形,用硬件来实现,因此,信息识读过程所需时间很短,它具有超高速识读特点。 用CCD二维条码识读设备,每秒可识读30个含有 100个字符的QR Code码符号;对于含有相同数据信息的四一七条码符号,每秒仅能识读 3个符号;对于Data Martix矩阵码,每秒仅能识读23个符号。(2)全方位识读: QR Code码具有全方位(360)识读特点,这是QR Code码优于行排式二维条码如四一七条码的另一主要特点,由于四一七条码是将一维条码符号在行排高度上的截短来实现的,因此,它很难实现全方位识读,其识读方位角仅为10 (3)能够有效地表示中国汉字、日本汉字:由于其特定的数据压缩模式表示中国汉字和日本汉字,它仅用13bit可表示一个汉字,而四一七条码、Data Martix等二维码没有特定的汉字表示模式,因此仅用字节表示模式来表示汉字,在用字节模式表示汉字时,需用 16bit(二个字节)表示一个汉字,因此比其它的二维条码表示汉字的效率提高了 20%。3.3.4 QR code 的符号结构每个QR code码符号由名义上的正方形模块构成,组成一个正方形阵列,它由编码区域和包括寻像图像、分隔符、定位图像和校正图像在内的功能图像完成。功能图像不能用于数据编码。符号的四周由空白区包围。如图4所示: 图4 QR code 的符号结构3.3.5 符号版本和规格QR码符号共40种规格,分别为版本1、版本2 版本40。版本 1为21*21模块,版本2为25*25模块,每一版本比前一个版本每边多4个模块,以此类推,模块为177*177模块。如图5、图6、图7、图8、图9、图10、图11所示:图5 版本1结构 图6 版本2结构 图7 版本6结构 图8 版本7结构图9 版本14结构图10 版本21结构图11 版本40结构3.3.6 寻像图形 QR Code 图像具有三个位置探测图形,分别位于条码的左上角、右上角和左下角。如图12所示,形特征是黑白条。每个位置探测图形可以看作是由3个重叠的同心的正方形组成,它们分别为7*7个深色色模块、5*5个浅模块和3*3个深色模块。如图12所示,位置探测图形的模块宽度比为1:1:3:1:1。由于位置探测图形具有特殊的比例,同时在掩模作用下,符号中其他地方遇到类似图形的可能性极小,因此可以在视场中迅速地识别可能的QR码符号。识别组成的寻象图形的三个位置探测图形,可以精确定位条码。图12 寻像图形3.3.7 定位图形 水平和垂直定位图分别为一个模块宽的一行和一列,由深色浅色模块交替组成,其开始和结束都是深色模块。水平定位图形位于上部的两个位置探测图形之间,符号的第六行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第六列。它们的作用是确定符号的密度和版本,提供决定模块坐标的基准位置。见图4。求各模块中心坐标的图形。黑白图形相互配置。当QR码歪斜或模块间隔出现误差时用于轴正数据模块的中心坐标。 3.3.8 校正图形 每个校正图形可看做是三个重叠的同心正方形,由(5*5)个的深色模块,(3*3)个的浅色模块以及位于中心的一个深色模块组成,校正图形的数量视符号的版本数而定,在模式2的符号中,版本2 以上(含版本2)的符号均有校正图像。见图4。补正QR码歪斜的图形,求得校正图形的中心坐标,补正QR码的歪斜。在校正图形中配置有孤立的黑模块,使得更容易检测出中心坐标。 3.3.9 分隔符、编码区域、空白区1)分隔符:在每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,它全部由浅色模块组成,见图4。2)编码区域:包括表示数据码字、纠错码字、版本信息和格式信息的符号字符,见图4。3)空白区:环绕在符号四周的4个模块宽的区域,其反射率应与浅色模块相同,见图4。3.4编码3.4.1 数据分析 即分析输入的数据流,确定转换字符所使用的模式类型。QR Code码包括几种不同的模型以便高效的转换数据字符,必要时可以进行模块之间的转换,从数字模式到日本汉字模式和中文汉字模式,每种模式所需要的位数逐渐增加,通过模式的转换可以使数据的为流长度最短。表2 QR Code码各版本符号的数据容量版本每边的模块数(A)功能图形模块数 (B)格式及版本信息模块数 (C)除C以外的数据模块数(D=A2-B-C)数据容量码字* (E)剩余位121202312082602252353135944732924331567707433251318071007537259311079134764126731138317277453906715681960849398671936242095340667233629201057414672768346011614226732324040126543067372846601369438674256532014736116746515813157761967524365531681627675867733317856356765238153188964367721190131993651677931991320976596786831085321101882679252115642210589067100681258423109898671091613644241139066711796147442511791467127081588426121922671365217064271259306714628182842812912036715371192132913312116716411205133013712196717483218533114112276718587232333214512356719723246533314912436720891261133415312516722091276133515715746723008287603616115826724272303403716515906725568319603816915986726896336203917316066728256353204017716146729648370603.4.2 数据编码 对于不同模式,按照各模式所定义规则,将数据字符转换为位流。当需要进行模式转换时,在新的模式转换起始位置加入模式指示符,在数据序列末端加入终止符,由此产生的位流可以分为每8位一个码字,必要时加入填充字符以满足不同版本所需要的数据码数。3.4.3 纠错编码 QR Code码采用相对纠错算法生成一系列纠错码字,添加数据码字序列之后,使符号在遇到损坏时不至于丢失数据。共有L、M、Q、H四个纠错等级,对应四种纠错容量。 根据版本和纠错等级,将数据码字分为一块或多块,对每一块分别进行纠错运算,每个版本,每个纠错等级的码字总数、纠错码字总数、纠错快的结构和数量都有规定。3.4.4 构造最终信息在每一块中置入数据和纠错码字,必要时加剩余位。 3.4.5 在矩阵中布置模块将寻象图形、分隔符、定位图形、校正图形与码字模块一起放入矩阵。3.4.6 掩膜 为了提高QR Code码阅读的可靠性,最好均匀的安排深色和浅色模块,且尽可能避免位置探测图形出现在其他区域。具体方法是:依次将掩膜图形用于符号的编码区域,按评价结果选择,是深色浅色模块比率最优,且不希望出现图形最小化。 3.4.7 格式和版本信息 格式信息为15位,其中5位数据位,其余10 位,其余10位有BCH(15,5)编码得到的纠错位。 版本信息18位,其中 6位数据位,其余12位是由BCH(18,6)编码计算出来的纠错位。3.5进一步深入认识QR Code3.5.1 QR Code模式QR Code模式有ECI模式、数字模式、字母数字模式、八位字节模式、日本汉字模式、中国汉字模式、结构链接模式、FNCI模式,各模式指示符如表3所示表3 模式指示符模式指示符ECI0111数字0001字母数字00108位字节0100日本汉字1000中国汉字1101结构链接0011FNC10101 (第一位置)1001 (第二位置)终止符 (信息结尾)00001)扩充解释(ECI)模式本模式用于按可选的字节值解释(例如不同的字符集)对某类数据进行编码,可选的字节值解释应符合AIM ECI规范中对该类数据进行预处理的规则。模式用模式指示符0111引入。不需要引入QR码缺省扩充解释(ECI头000020,对应于JIS8/转换JIS字符集),尤其是在任何符号的开始。2) 数字模式对十进制数字09(ASCII值30HEX 至39HEX)编码,通常的密度为每10位表示3个字符。即将输入的数据每三位分为一组,将每组数据转换为10位二进制数。如果所输入的数据的位数不是3的整数倍,所余的1位或2位数字应分别转换为4位或7位二进制数。将二进制数据连接起来并在前面加上模式指示符和字符计数指示符。数字模式中字符计数指示符如表4中定义的有10、12或14位。输入的数据字符的数量转换为10、12或14位二进制数后,放置在模式指示符之后,二进制数据序列之前。例1 (符号版本1-H)输入的数据:01234567(1) 分为3位一组:012 345 67(2) 将每组转换为二进制:0120000001100 3450101011001 67 1000011(3) 将二进制数连接为一个序列:0000001100 0101011001 1000011(4) 将字符计数指示符转换为二进制(版本1-H为10位):字符数为:80000001000(5) 加入模式指示符0001以及字符计数指示符的二进制数据:0001 0000001000 0000001100 0101011001 1000011 表4 字符计数指示符的位数 版本数字模式字母数字模式8位字节模式日本汉字模式中国汉字模式1910988810261211161010274014131612123)字母数字模式将输入的数据分为两个字符一组,用11位二进制表示。将前面字符的值乘以45与第二个字符的值相加,将所得的结果转换为11位二进制数。如果输入的数据的字符数不是2的整数倍,将最后一个字符编码为6位二进制数。将所得的二进制数据连接起来并在前面加上模式指示符和字符计数指示符,按表3的规定在字母数字模式中,字符计数指示符的长度为9、11或13位。将输入的字符数编码为9、11或13位二进制数,放在模式指示符之后,二进制数据序列之前。按照表5,每个输入的字符赋于一个数值V,它的值为0到44。表5 字母数字模式的编码/译码字符值字符值字符值字符值字符值字符值字符值字符值0066C12I18O24U30SP36.421177D13J19P25V31$37/432288E14K20Q26W32%38:443399F15L21R27X33*3944A10G16M22S28Y34+4055B11H17N23T29Z35-414)8位字节模式在本模式中,一个8位码字直接表示一个输入数据字符的JIS8字符值,即密度为每个字符8位,如表5所示。在非缺省的其它ECI中,它直接表示一个8位字节的值。将二进制数据连接起来并在前面加上模式指示符和字符计数指示符。8位字节模式的字符计数指示符为8位或16位,将输入字符数转换为8位或16位二进制数据放在模式指示符之后,二进制数据序列之前。8位字节模式的位流的位数计算公式如下:D = 4 + C + 8D,其中:B=位流的位数,C=字符计数指示符的位数,D=输入数据的字符数表6 八位字节模式的编码/译码5)日本汉字模式日本汉字模式用于表示与基于JIS X 0208的转换JIS系统一致的日本汉字字符。转换JIS值由JIS X 0208转换而来。具体内容见JIS X 0208附录1转换代码表示法。每个双字节字符由13位二进制码字表示。6)中国汉字模式7)混合模式QR码符号可以包含以8.3.1到8.3.5中描述的多种模式所表示的混合数据序列。8)结构链接模式结构链接模式用于把一个数据文件分开表示为多个QR码符号的序列,要求所有的符号可以识读并且数据可以按正确的顺序重新建立。每个符号都要有一个结构链接头,以标识这个序列的长度及该符号在其中的位置,并且检验是否所有识读的符号属于同一个文件。9)FNC1模式FNC1模式用于表示按UCC/EAN应用标识标准或国际AIM协会已经同意的具体行业标准格式化的数据。10)终止符符号的数据结尾由紧跟在最后一个模式段后面的终止符序列0000表示,当数据位流数量正好填满符号的容量时,它可以省略,或者当符号所余的容量不足4位时它可以截短。3.5.2 码字在矩阵中的布置1) 符号字符表示在QR码符号中有两种类型的符号字符:规则的和不规则的。它们的使用取决于它们在符号中的位置,以及与其他符号字符和功能图形的关系。多数码字在符号中表示为规则的24个模块的排列。其排列有两种方式,垂直布置(2个模块宽,4个模块高);如果需要改变方向,可以水平布置(4个模块宽,2个模块高)。当改变方向或紧靠校正图形或其他功能图形时,需用不规则符号字符。2) 功能图形的布置按照与使用的版本相对应的模块数构成空白的正方形矩阵。在寻象图形、分隔符、定位图形以及校正图形相应的位置,填入适当的深色浅色模块。格式信息和版本信息的模块位置暂时空置,它们对所有版本都是相同的。3) 符号字符的布置在QR符号的编码区域中,符号字符以2个模块宽的纵列从符号的右下角开始布置,并自右向左,且交替地从下向上或从上向下安排。下面给出了符号字符以及字符中位的布置原则。如图13,14,15所示。a)位序列在纵列中的布置为从右到左,向上或向下应与符号字符的布置方向一致。b)每个码字的最高位(表示为位7)应放在第一个可用的模块位置,以后的放在下一个模块的位置。如果布置的方向是向上的,则最高位占用规则模块字符的右下角的模块,布置的方向向下时为右上角。如果先前的字符结束于右侧的模块纵列,最高位可能占据不规则符号字符的左下角模块的位置。c)如果符号字符的两个模块纵列同时遇到校正图形或定位图形的水平边界,可以在图形的上面或下面继续布置,如同编码区域是连续的一样。d)如果遇到符号字符区域的上或下边界(即符号的边缘,格式信息,版本信息或分隔符),码字中剩余的位应改变方向放在左侧的纵列中。e)如果符号字符的右侧模块纵列遇到校正图形或版本信息占用的区域,位的布置形成不规则排列符号字符,在相邻校正图形或版本信息的单个纵列继续延伸。如果字符在可用于下一个字符的两列纵列之前结束,则下一个符号字符的首位放在单个纵列中。 图13 向上或向下的规则字符的位的布置 图14 布置方向改变的符号字符为布置示例图15 临近校正图像的位置布置示例还有另一种可供选择的符号字符布置方法,可得到相同的结果,将整个码字序列视为一个单独的位流,将其(最高位开始)按从右向左,按向上和向下的方向交替的布置于两个模块宽的纵列中。并跳过功能图形占用的区域,在纵列的顶部或底部改变方向,每一位应放在第一个可用的位置。如图16,17所示。当符号的数据容量不能恰好分为整数个8位符号字符时,要用相应的剩余位填充符号的容量。在进行掩模以前,这些剩余位的值为0。图16 版本2-M符号的符号字符布置 图17 版本7-H符号的符号字符布置 3.5.3掩模为了QR码阅读的可靠性,最好均衡地安排深色与浅色模块。应尽可能避免位置探测图形的位图1011101出现在符号的其他区域。为了满足上述条件,应按以下步骤进行掩模。1)掩模不用于功能图形2)用多个矩阵图形连续地对已知的编码区域的模块图形(格式信息和版本信息除外)进行XOR操作。XOR操作将模块图形依次放在每个掩模图形上,并将对应于掩模图形的深色模块的模块取反(浅色变成深色,或相反)。3)对每个结果图形的不合要求的部分记分,以评估这些结果。4)选择得分最低的图形。表7给出了掩模图形的参考(放置于格式信息中的二进制参考)和掩模图形生成的条件。掩模图形是通过将编码区域(不包括为格式信息和版本信息保留的部分)内那些条件为真的模块定义为深色而产生的。所示的条件中,i代表模块的行位置,j代表模块的列位置,(i,j)=(0,0)代表符号中左上角的位置。表7 掩模图形参考掩模图形参考条件000(i + j) mod 2 = 0001i mod 2 = 0010j mod 3 = 0011(i + j) mod 3 = 0100(i div 2) + (j div 3) mod 2 = 0101(i j) mod 2 + (i j) mod 3 = 0110(i j) mod 2 + (i j) mod 3) mod 2 = 0111(i j) mod 3 + (i+j) mod 2) mod 2 = 0版本1符号的所有的掩模图形,用掩模图形参考000到111的掩模结果。如图18所示 图18 版本1符号的所有的掩模图形掩模过程如图19所示: 图19 掩模过程3.5.4 格式信息格式信息为15位,其中有5个数据位,10个是用BCH(15,5)编码计算得到的纠错位。 格式信息数据的第3到第5位的内容为掩模图形参考。按上述方法计算10位纠错数据,并加在5个数据位之后;将15位格式信息与掩模图形101010000010010进行XOR运算,以确保纠错等级和掩模图形合在一起的结果不全是0;格式信息掩模后的结果应映射到符号中为其保留的区域内。需要注意的是,格式信息在符号中出现两次以提供冗余,因为它的正确译码对整个符号的译码至关重要。格式信息的最低位模块编号为0,最高位编号为14,位置为(4V+9,8)的模块总是深色,不作为格式信息的一部分表示,其中V是版本号。 纠错等级指示符如表8所示表8 纠错等级指示符纠错等级二进制指示符L01M00Q11H103.5.5 版本信息版本信息为18位,其中,6位数据位,通过BCH(18,6)编码计算出12个纠错位。6位数据为版本信息,最高位为第一位。12位纠错信息在6位数据之后。只有版本740的符号包含版本信息,没有任何版本信息的结果全为0。所以不必对版本信息进行掩模。最终的版本信息应映射在符号中预留的位置,见图20。需要注意的是,由于版本信息的正确译码是整个符号正确译码的关键,因此版本信息在符号中出现两次以提供冗余。版本信息的最低位模块放在编号为0的位置上,最高位放在编号为17的位置上。见图21。图20 版本信息位置图21 版本信息的模块布置4. 系统分析4.1系统的主要功能分析4.1.1 二值化由于载入的图像不一定是标准的二值图像,所以需要对图像进行二值化处理,方便进一步对图像进行处理。本项目主要用到的都是标准的二值图像。4.1.2 QR Code 定位并标记位置图像 寻找探测图形即为QR Code的定位,首先把左上角探测图形命名为方块 1,左下角探测图形命名为方块2,右上角探测图形命名为方块3,可以用扫描黑色像素函数,逐行扫描和逐列扫描找出方块1、2、3的各边位置,找到探测位置图形后就可以用矩形标记函数和填充函数将三个方块的位置标记并填充为像素值是100的区域。4.1.3 QR Code 的版本识别,并计算模块数 在对QR Code解码过程中,我们首先要找到QR Code的具体位置并确定它的版本号和模块数,这就要找到三个作为确定条码位置的位置探测图形,根据位置探测图形固有的7*7模块数的特点和探测图形与条码宽度的比较,可以计算出条码的模块数,继而得出版本号。4.1.4 去除功能区域由图4可知,功能区包括位置探测图像,位置探测图形分隔符,定位图形以及校正图形。去除功能区,其实是为了把功能区都标识为同一像素灰度级,本设计将其灰度级标识为100,这样可方便进一步对图像处理。4.1.5 获取格式信息及版本信息格式信息为15位,其中有5个数据位,10 个是用 BCH(15,5)编码计算得到的纠错位。版本信息为18位,由版本信息可知其纠错级别和掩模参考图形编号。4.1.6 获取码内信息QR Code中白点黑点编译成二进制的1、0。4.1.7去除掩模并获取码内信息去除掩模后再把QR Code中白点黑点编译成二进制的1、0。此为QR Code中真正的码内信息。4.1.8 译码把码内信息译码出其所代表的含义。4.2系统的关键问题及解决方法本次二维条码QRcode的识别的关键问题是找到各个模块的字符集,理解所有模式下的各种编码方法及个别的特殊编码方法,或许还存在特殊的掩模方式,还有就是寻找能存放两位字节字符的储存定义类型,目前也正因为没有找到字符集,不知道汉字等的对应编码,还不能实现对汉字、偏旁部首等的识别。现在做到的只是解决了按规则的编码方式编译的QRcode码里面的占单位字节数字、大小写字母、符号等的识别。5. 系统设计5.1程序流程图及说明本项目的程序总流程图如图22所示:1.打开一幅图像2.二值化3.去除白框4.获取版本号5.去除功能区域6.反色7.获取格式及版本信息9.获取码内信息10.去除掩模8.去除格式及版本区域11.译码12.退出1.一键运行2.退出2.1旋转 图22 QR Code识别的总流程图二值化:由于载入的图像不一定是标准的二值图像,所以需要对图像进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年保险业数字化理赔服务创新:保险理赔服务创新与保险营销策略报告
- 车联网操作系统架构优化-洞察及研究
- 休闲水吧可行性研究报告
- 年产1.9万吨电机绕组用扁铜线项目可行性研究报告
- 食品行业食品安全追溯体系在进口食品监管中的应用与实践报告
- 自考专业(计算机信息管理)练习题附参考答案详解【预热题】
- 电竞公司绘画比赛组织规章
- 医疗信号处理-洞察及研究
- 消防安全评估报告
- 电竞公司会计制度管理规章
- 国有企业绩效考核体系的问题诊断与优化路径研究
- 去极端化教育宣讲
- 充电桩知识培训课件
- 人工智能智能客服系统
- 个人安全管理工作存在的不足及整改措施
- 公司登记(备案)申请书
- 八下政治全册思维导图
- 供水管网工程监理实施细则
- 科研伦理与学术规范-期末考试答案
- 2024年秋季学期人教版七年级上册历史全册教学课件(新版教材)
- 化学-安徽省1号卷A10联盟2025届高三上学期8月开学摸底考试试题和答案
评论
0/150
提交评论