二维码生成和识别原理修订版.docx

上传人:王** 文档编号:1623850 上传时间:2024-11-25 格式:DOCX 页数:26 大小:346.12KB
下载 相关 举报
二维码生成和识别原理修订版.docx_第1页
第1页 / 共26页
二维码生成和识别原理修订版.docx_第2页
第2页 / 共26页
二维码生成和识别原理修订版.docx_第3页
第3页 / 共26页
二维码生成和识别原理修订版.docx_第4页
第4页 / 共26页
二维码生成和识别原理修订版.docx_第5页
第5页 / 共26页
二维码生成和识别原理修订版.docx_第6页
第6页 / 共26页
二维码生成和识别原理修订版.docx_第7页
第7页 / 共26页
二维码生成和识别原理修订版.docx_第8页
第8页 / 共26页
二维码生成和识别原理修订版.docx_第9页
第9页 / 共26页
二维码生成和识别原理修订版.docx_第10页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二维码生成和识别原理修订版.docx》由会员分享,可在线阅读,更多相关《二维码生成和识别原理修订版.docx(26页珍藏版)》请在优知文库上搜索。

1、QR二维码的生成与识别原理一、简介二维码(2-dimensiona1.barcode),是用某种特定的几何图形按肯定1律在平面(-维方向上)分布的黑白相间的图形记录数据符号信息的。二维码的种类包括:QRCode.DataMatrix,MaXiCode,Aztec.Vericode.PDF417,U1.tracode.Code49,Code16K等。其中QRCode是极广泛运用的二维码,QR全称QuickResponse,与其他第码方式相比,QR二维码具有存储容量大、编码速度快的特点,弁且它也能表示更多的数据类型:比如:字符,数字,日文,中文等等。随法近几年智能手机的迅猛发展,QR二维码得到了广

2、泛的应用。关于QR二缰码的标准,可参见标准文档(QRCodeSpec):7f1.esdatashetsmiscqrcode.pdf二、应用现状随着智能机的普及和手机摄像头成像实力的提升.为了提高向机器内输入信息的速度,QR二维码得到迅猛发展,在很多行业中得到应用。在一堆码时代,”扫码主要应用在超市或图书馆等场所,以获得商品价格或图书分类等有限的特定信息。二维码可以存储大容量数据,给人们的生活带来巨大便利。从起先的扫描二维码提取文字或网址.到后来“扫一扫”添加好友、关注个人或公司徵信或微博,再到扫码支付,二维码的应用己经特别普通。三、基础学问QR码可分为不同的尺寸.或者叫板本Version。Ve

3、rsion!是21x21的矩阵.Version2是25x25的矩阵,Version3是29的尺寸,5增加一个VerSiOn.就会增加4的尺寸,公式是:(V-I)4+21(V是版本号)4高Version40,(40-1)*4+21=177.所以最高是177X177的正方形。祥例如下:QutZcoePaSiH8DetectionPatternsDeiectianPatternsPxtcnMFunctionSnbo1.enonTimingPactermAhfnmcncPanernFormat1.nf11utErvodingRegion定位图案PositionDetectionPattern是定位图案

4、,用于标记二维码的矩形大小。这三个定位图案有白边叫SeparatorsforPostionDetectionPatternso之所以三个而不是四个意思就是三个就可以标识一个矩形了。TimingPattemS也是用于定位的。绿由是二维码有40种尺寸.尺寸过大了后须要有根标准畿,不然扫描的时候可能会扫歪了.A1.ignmentPatterns只有Version2以上(包括Version2城)二维码须要这个东东,同样是为了定位用的。功畿性数据FormatInformation存在于全部的尺寸中,用于存放一些格式化数据的。VersionInformation在VerSiOn7以上,须要预用两块3x6的

5、区域存放一些版本信息。数据码和纠借码除了上述的那些地方,剩下的地方存放DataCode数据码和ErrorCorrectionCode如相码。四、数据编码QR码支持如下的嫡码:NUmedemode:数字循码,从。到9。假如须要编码的数字的个数不是3的倍数,那么.最终剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被埃成10.12.14bits,编成多长还要看二堆码的尺寸。A1.phanumericmode:字符编码,包括0-9,大写的A到Z(没有小写),以及符号$%+-./:包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的SP是空格,Char是字符,Va1.Ue是其索引值

6、)给码的过程是把字符两两分组,然后转成下表的45进制,然后转成IIbitS的二进制,例如最终有一个落单的,那就转成6bits的二进制。而编目模式和字符的个数须要依况不同的VerSion尺寸编成9,11或13个二迸制(如下表中TabIe3)OorVAiUCCWVabeCorVa1.ueCtafVa1.ueOwVauogrVaeCharVa1.jeOarVa1.ae0066C12I18024U30SP36421177D13J19P25V31$37I432288E14K20Q26W32%38443399F151.21R27X33*3944A10G16M22S2Y344055B11H17N23T29Z

7、3541Bytemode:字节编码,可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的摭码。Karimod:日文媪码,也是双字节娟码。同样,也可以用于中文端码ExtendedChanne1.Interpretation(ECI)mode:主要用于特别的字符集。并不是全部的扫描器都支持这种编码。StructuredAppendmode:用于混合摭码.也就是说,这个二维码中包含了多种墉码格式。FNC1mode:这朴编码方式主要是给一些特别的工业或行业用的。比如GS1条形码之类的。这里我们主要介绍最常用的数字墉码和字符编码。下面两张表中,TabIe2是各个扬

8、码格式的编号一(注:中文是1101),编号薮写在FOmatInfOmaUOn中。Tab1.e3表示了不同版本(尺寸)的二维码,对于数字、字符、字节和Kanji模式下.对于单个编码的2进制的位数。(编码双苑表可参见二维码规格说明书)Tab1.e2ModeindicatorsModeIndicatorEC1.0111Numeric0001A1.phanumeric00108-bitByte0100Kanii1000StructuredAppend0011FNC10101(Firstposition)1001(Secondposition)Terminator(EndofMessage)0000Ta

9、b1.e3NumberofbitsInCharacterCountIndicatorVersionNumericModeA1.phanumericMode8-bitByteModeKanjiMode1to91098810to261211161027to4014131612举例说明:例如,在Version1的尺寸下,纠错级别为H的状况下,编码:01234567的编码方式如下:1 .把上述数字分成三组:012345672 .把他仃转成二进制:012转成00001100;345转成0101011001;67转成1000011。3 .把这三个二进制串起来:00000011000101011001100

10、00114 .把皴字的个数转成二进制(version1-H是10txts):8个数字的二迸制是00000010005 .招数字编码的标记0001和黑4步的城均加到前面:01000000100000001100010101111000011泰初二:字符研同样,在VerSion1的尺寸下,纠梯级别为H的状况下,编码:AC-42的编码方式如下:1 .从字符索引表中找到AC-42这五个字条的索引(10,12,41,4.2)2 .两两分组:(10,12)(41.4)(2)3 .把每一组转成I1.bitS的二进制:(10,(12) 10*45+12等于462转成00111001110(2)等于2转成000

11、0104 .把这些二进制连接起来:5 .把字符的个数转成二进制(VerSiOn1-H为9bits):5个字符,5转成000000101;五、结束符和补齐符假如我们有个HE1.1.oWOR1.D的字符串要埔码.依据上面的示例二,我们可以得到下面的给日蝶码字符数HE1.1.OWoR1.D的编码0010000001011还要加上结束符:编码字符数HE1.1.OWoR1.D的编码结束001000000101100tt8b1.teM假如全部的短码加起来不是8个倍数我们还要在后面加上足筋的O,比如上面一共有78个bits,所以还要加上2个O,然后按8个txts分好组:0010000101101100001

12、011011110110100010111001011011100011101010011010000WFW(PaddingBytes)最终,假如还没有达到最大的bits数的限制.还要加一些补齐码(PaddingBytes).PaddingBygS就是变复下面的两个bytes:1110110000010001(这两个二进制转成十进制是236和17,关于每一个VerSion的每一种纠错级别的最大BitS限制,可以参看QRCodeSpec)假设我们须要编码的是VerSion1的Q纠错级.那么,其最大须要104个bits,而我们上面只有80个bits,所以,还须要补24个bits,也就是须要3个Pa

13、ddingBytes,我们就添加三个,于是得到下面的墉码:00100001011011001011011110110100010111001011011100010011010100001101000000111011000001000111101100上面的编码就是数据码了,叫DataCodewords,每一个8bits叫一yt*codeword,我们还要对这些数据码加上纠错信息。六、纠错码上面我们说到了一些蛆你级别,EnorCorrectionCod1.eve1.,二维码中有四种级别的纠错,这就是为什么二堆码有残缺还能扫出来,也就是为什么有人在二维码的中心位置加入图标。幡修修正容量1.水平

14、7%的字码可被修正M水平15%的字码可被修正Q水平25%的字码可被修正H水平30%的字谄可被修正那么,QR是怎么对数据码加上纠错码的?首先须要对数据码进行分组,也就是分成不同的BIOCk,然后对各个B1.oCk进行纠错编码,对于如何分组,可以杳看QRCodeSPeC的定义表。这里留意最终两列:NumberofErrorCodeCorrectionB1.ocks:须要分多少个块。ErrorCorrectionCodePerB1.ocks:每一个块中的code个数.所谓的code的个致,也就是有多少个8bits的字节。51341.261(134,108.13)M482(67.43,12)Q7222(33.15.9)(34.16.9)H822(33.11,11)(34.12,11)61721.362(86.68M644(43.27,8)Q964(43,19,12)H1124(43,15,14

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

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