二维码的识别原理原理是什么?

二维码生成原理
&&&&&&&&文章阅读
二维码生成原理
发布时间:&&浏览次数:9294&&
苏州远景达自动识别技术有限公司
徐经理&手机:
刘经理&手机:
QR码生成原理
一、什么是QR码
QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化。QR码的样子其实在很多场合已经能够被看到了。
说到QR码的特点,一是高速读取(QR就是取自&Quick Response&的首字母),对读取速度的体验源自于我手机上的一个软件,象上面贴出的码图,通过摄像头从拍摄到解码到显示内容也就三秒左右,对摄像的角度也没有什么要求;
二是高容量、高密度;理论上内容经过压缩处理后可以存7089个数字,4296 个字母和数字混合字符,2953个8位字节数据,1817个汉字;
三是支持纠错处理;纠错处理相对复杂,目前我还没有深入了解,按照QR码的标准文档说明,QR码的纠错分为4个级别,分别是:
&&&&&&&&& level L : 最大 7% 的错误能够被纠正;
&&&&&&&&& level M : 最大 15% 的错误能够被纠正;
&&&&&&&&& level Q : 最大 25% 的错误能够被纠正;
&&&&&&&&& level H : 最大 30% 的错误能够被纠正;
四是结构化;看似无规则的图形,其实对区域有严格的定义,下图就是一个模式2、版本1的QR图结构(关于QR码的&模式&、&版本&将在后面进行介绍):
在上图21*21的矩阵中,黑白的区域在QR码规范中被指定为固定的位置,称为寻像图形(finder pattern) 和 定位图形(timing pattern)。寻像图形和定位图形用来帮助解码程序确定图形中具体符号的坐标。
黄色的区域用来保存被编码的数据内容以及纠错信息码。
蓝色的区域,用来标识纠错的级别(也就是Level L到Level H)和所谓的&Mask pattern&,这个区域被称为&格式化信息&(format information)。
五是扩展能力。QR码的Structure Append特点,使一个QR码可以分解成多个QR码,反之,也可以将多个QR码的数据组合到一个QR码中来。
三、QR码的模式和版本
前面提到过QR码的模式(Model)和版本(Version)。QR码分为Model1和Model2两种模式,Model1是对QR的初始定义,Model2是对Model1的扩展,目前使用较为普遍的是Model2,本文的所有说明也仅用于Model2。
QR图的大小(size)被定义为版本(Version),版本号从1到40。版本1就是一个21*21的矩阵,每增加一个版本号,矩阵的大小就增
加4个模块(Module),因此,版本40就是一个177*177的矩阵。(版本越高,意味着存储的内容越多,纠错能力也越强)。
三、QR码支持的编码内容
QR码支持编码的内容包括纯数字、数字和字符混合编码、8位字节码和包含汉字在内的多字节字符。其中:
数字:每三个为一组压缩成10bit。
字母数字混合:每两个为一组,压缩成11bit。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
8bit字节数据:无压缩直接保存。
多字节字符:每一个字符被压缩成13bit。
QR码编码原理(编码)
编码就是把常见的数字、字符等转换成QR码的方法。说具体的编码之前,先说一下QR码的最大容量问题。
一、最大容量
QR码的最大容量取决于选择的版本、纠错级别和编码模式(Mode:数字、字符、多字节字符等)。以版本1、纠错级别为Level
Q的QR码为例,可以存储27个纯数字,或17个字母数字混合字符或11个8bit字节数据。如果要存储同样多的内容同时提高纠错级别,则需要采用更高的
版本。版本1~9 数据容量、纠错码容量对照如下表:
(error correcting level)
(count of data code words)
count of EC code words
(alphanumeric)
下面,就举例说明将&ABCDE123&转换成为版本1、Level H的QR码转换方法。
二、模式标识符(Mode Indicator)
QR码的模式(Mode)就是前文提到的数字、字符、8bit 字节码、多字节码等。对于不同的模式,都有对应的模式标识符(Mode Indicator)来帮助解码程序进行匹配,模式标识符是4bit的二进制数:
1、数字模式(numeric mode ): 0001
2、混合字符模式(alphanumeric mode) : 0010
3、8bit byte mode: 0100
4、日本汉字(KANJI mode) : 1000
5、中国汉字(GB
由于示例文本串是混合字符,因此将选择alphanumeric mode,其标识码为:0010
三、文本串计数标识符(Character count indicator)
文本串计数标识符用来存储源内容字符串的长度,在版本1-9的QR码中,文本串长度标识符自身的长度被定义为:
数字 : 10bit
混合字符 : 9bit
8bit 字节码 : 8bit
多字节码 : 8bit
在本例中,源文本串的长度为8个字符,混合字符的长度为9bit,因此将字符个数8编码为9位二进制表示:
加上混合字符模式标识码,总的编码为00
四、数据内容编码
&1、数字模式下的编码
在数字模式下,数据被限制为3个数字一段,分成若干段。如:&123456& 将分成&123& 和 &456&,分别被编码成10bit的二进制数。&123&的10bit二进制表示法为:,实际上就是二进制的123。
当数据的长度不足3个数字时,如果只有1个数字则用4bit,如果有2个数字就用7个bit来表示。
如:&9876&被分成&987&和&6&两段,因此被表示为& 0110&。
2、混合字符模式下的编码
混合字符模式编码,其字符对照表如下:
编码方式为:
源码被分成两个字符一段,如下所示,每段的第一个字符乘上45,再用第二个数字相加。因此每段变成了11bit的2进制码,如果字符个数只有1个,则用6bit表示。
3、8bit字节数据不经编码转换直接保存。
五、编码终止符(Terminator)
如果编码后的字符长度不足当前版本和纠错级别所存储的容量,则在后续补&0000&,如果容量已满则无需添加终止符。此时得到的编码串为:
六、编成8bit码字(Code words)
将以上的编码再按8bit一组,形成码字(code words):
如果尾部数据不足8bit,则在尾部充0:
01 00 00000
如果编码后的数据不足版本及纠错级别的最大容量,则在尾部补充 && 和 &&,直到全部填满。最后,版本1、Level H下的&ABCDE123& 的QR码是:
01 00 00000
十进制表示法为:
32 65 205 69 41 220 46 128 236
QR码编码原理三(日本汉字和中文编码)
一、日本汉字(KANJI)是两个字节表示的字符码,编码的方式是将其转换为13字节的二进制码制。
转换步骤为:
1、对于JIS值为8140(hex) 到9FFC(hex)之间字符:
a)将待转换的JIS值减去8140(hex);
b)将高位字节乘以C0(hex);
c)将b)步骤生成的数据加上低位字节;
d)将结果转换为13位二进制串。
2、对于JIS值为E040(hex)到EBBF(hex)之间的字符:
a)将待转换的JIS值减去C140(hex);
b)将高位字节乘以C0(hex);
c)将b)步骤生成的数据加上低位字节;
d)将结果转换为13位二进制串。
二、中文汉字的与日文汉字转换步骤相似:
1、对于第一字节为0xA1~0xAA之间,第二字节在0xA1~0xFE之间字符:
a)第一字节减去0xA1;
b)上一步结果乘以0x60;
c)第二字节减去0xA1;
d)将b)步骤的结果加上c步骤的结果;
e)将结果转换为13位二进制串。
1、对于第一字节为0xB0~0xFA之间,第二字节在0xA1~0xFE之间字符:
a)第一字节减去0xA6;
b)上一步结果乘以0x60;
c)第二字节减去0xA1;
d)将b)步骤的结果加上c步骤的结果;
e)将结果转换为13位二进制串。
& & & & & 苏州远景达专业提供,RFID标签,,,,tsc条码打印机等周边耗材。同时在线提供专业条码打印机价格和相关打印软件等条码打印产品咨询维修。电话:1
苏州远景达自动识别技术有限公司
地址:苏州市相城区相城大道666号中翔大厦29层29002
远景达全国免费咨询热线:
& & 400-928-2622
手机:刘经理& &&
手机:徐经理 &
技术售后电话:1转8007
网站关键词:
友情链接:二维码的原理是什么?_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
二维码的原理是什么?
百家号是全球最大中文搜索引擎百度为内容创...|
总评分0.0|
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢>> 浏览文章
二维码的原理是什么?
二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的&定位点&和&容错机制&。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的信息。二维条码的种类很多,不同的机构开发出的二维条码具有不同的结构以及编写、读取方法。
矩阵式二维码,最流行莫过于QR CODE,二维码的名称是相对与一维码来说的,比如以前的条形码就是一个&一维码&。它的优点有:二维码存储的数据量更大;可以包含数字、字符,及中文文本等混合内容;有一定的容错性(在部分损坏以后可以正常读取);空间利用率高等。
二维码是一维码的扩展。 在超市购物时,最终的清算,基本上都是柜员扫一遍所有物品的条码然后得出总价。这个条码就是一维条码,将黑色条纹和空白间隙按照一定的规则排列,做成一个平行线图案,就能表达一组相对简单的数字符号信息。
一维条码只在排列黑白条纹的一个方向上记录数据,而二维码则将另一个方向扩展使用上,使其在另一个垂直方向上也记载数据 。虽然形式上有排列式,矩阵式等不同的形式,但是底层代码编码编制上都还是基础的0,1逻辑,使用与二进制相关的图形表达文字数字信息,扫描设备识别图形并在相应特定的字符集中取出对应的数据字符实现自动处理。 并且二维码在一维码的基础上,增设了&定位点&以及&容错机制&,记载数据量更多,能准确传递如图片链接,网络链接等数据。
定位点是二维条码的一个特殊的定位标记。通常的二维码我们都能看到三个角是一样的黑白包容的方块,但是另一个角则不一样,因为三个点就能表示限定出一个矩形的范围,并能让识别设备从正确的方向来识别它,所以二维码不管是从哪个方向上都能识别出来的。
二维码编码生成过程本身是将数据信息转换为图形的过程,读取也就是从图形中读取数据信息。二维码容错性是通过在二维码生成时进行冗余设定,我们将要存入的数据,进行冗余运算在二维码中存入多条相同的数据。经过这个冗余运算的步骤后,生成出来的二维码在有部分破损或者遮挡的情况下仍可识别。如常见的二维码为 QR 码,QR 码的容错率从低到高就有 L,M,Q,H 四个容错等级,等级越高容错性越好,相同破坏比例下被识别的概率越大。而平常使用一般的二维码生成软件也能达到 30%的高容错率,
& 对了,不知道大家注意到没有,为什么所有的二维码,都有三个小方块在边上?其实这个三个一模一样的小方块是用来给手机相机定位的,这样不管你的二维码是正的扫还是倒着左右扫,都能被手机相机识别,并且扫出来的结果都一样。《好看》依托百度技术,精准推荐优质短视频内容,懂你所好,量身打造最适合你的短视频客户端!当前位置: —
二维码的原理是什么?
原理就是0和1的编码,很简单,但实现起来不是很容易,所以就交给机器做啦。
把数字、字母、汉字等信息通过特定的编码翻译成二进制0和1,一个0就是一个白色小方块,一个1就是一个黑色小方块。这样就很容易联想到我们高中学习二进制时状态对吧,比如8的二进制表示是1000
二维码其实就是由很多0、1组成的数字矩阵。二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。二维条码/二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。
Position Detection Pattern是定位图案,就是我们常见的二维码三个角的大方块,用于标记二维码的矩形大小。
Timing Patterns也是用于定位的。因为二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪。
Format Information 存在于所有的尺寸中,用于存放一些格式化数据的。
Data Code 是数据码、Error Correction Code是纠错码。
ipv4因为是xxx.xxx.xxx.xxx,每一位都是0-9数字,所以总量有限,为了代表一台终端,一台终端只能用一个ip,这样才知道数据发去哪里,每个人用一个就很快用完了,因此他有一些解决方案,比如一家对外用同一个公网ip,而手机,平板,电脑则分配内网的ip,这样就变相扩展了很多可用ip。
而二维码只是编码,通俗地说,比如0代表我,1代表是,2代表小学生。那么012就代表我是小学生。如果文本数据一样,那么生成的图形就一样,是可以重复的,并不存在用完一说。比如支付宝自己可以写程序将文本“转账=100,付款人=xxx,收款人=xxx,app=支付宝,加密=123456”这些文本信息变成二维码,自己生成,自己识别,就能达到功能。当然真实的文本肯定都是各种加密N次的乱码,哈哈。
二维码是一维码的变形,里面用算法储存了一些文本数据,和文字一样,不过是程序通过算法读取的,可能是一个网址或者其他数据,和ip不一样不会用尽。还有就是另一个原因,各家app用的虽然都是二维码,但是微信却不能直接使用支付宝的二维码,虽然能扫描出里面的数据,却无法分析里面的内容,app是排他的,自己家的二维码只有自己能用,也就是说二维码是相互隔离的,并不会通用和相互占用。
我来说几句
还没有人评论哦,抢沙发吧~
大家都爱看
专题资讯导航
意见被贤集网采纳后,贤集网赠送一张限量版的U盘会员卡!
联系方式(必填)
您的意见(必填)
Copyright (C)2014

我要回帖

更多关于 二维码的识别原理 的文章

 

随机推荐