二维码是啥东西,是啥原理?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维码是啥东西,是啥原理?相关的知识,希望对你有一定的参考价值。
参考技术A二维码是什么东西,是什么原理?
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。
在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。在许多种类的二维条码中,常用的码制有:Data Matrix,MaxiCode, Aztec,QR Code, Vericode,PDF417,Ultracode,Code 49,Code 16K等,QR Code码是1994年由日本DW公司发明。QR来自英文「Quick Response」的缩写,即快速反应的意思,源自发明者希望QR码可让其内容快速被解码。QR码最常见于日本、韩国;并为目前日本最流行的二维空间条码。但二维码的安全性也正备受挑战,带有恶意软件和病毒正成为二维码普及道路上的绊脚石。发展与防范二维码的滥用正成为一个亟待解决的问题。
每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能及处理图形旋转变化等特点。
二维码是一种比一维码更高级的条码格式。一维码只能在一个方向(一般是水平方向)上表达信息,而二维码在水平和垂直方向都可以存储信息。一维码只能由数字和字母组成,而二维码能存储汉字、数字和图片等信息,因此二维码的应用领域要广得多。
二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码。 堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成;矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”, 用“空”表示二进制“0”,“点”和“空”的排列组成代码。 二维码的原理可以从矩阵式二维码的原理和行列式二维码的原理来讲述。
二维码是什么东西?
通过图形来包含信息!可以将二维码当做一种贴在物品上的标签,在今后的物联网发展中将会有大用~
当前发展最火的是手机二维码,就是手机对二维码拍照,获取二维码里面特殊的信息,这是很有商业价值的模式。
。二维码 ,又称二维条码,二维条形码最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点.
请问二维码是什么东西?怎么用?
二维码是一种信息载体。
里面可以包含一个网址连接或者是一句话或者一些简单的信息。
下载扫描二维码的工具即可扫描使用二维码。
二维条码是什么东西?
二维条码简介 由于条码技术具有输入速度快、准确度高、成本低、可靠性强等优点,因此在各行业得到了广泛应用。但随着应用领域的不断扩展,传统的一维条码渐渐表现出了它的局限:首先,使用一维条码,必须通过连接数据库的方式提取信息才能明确条码所表达的信息含意,因此在没有数据库或者不便联网的地方,一维条码的使用就受到了限制;其次,一维条码表达的只能为字母和数字,而不能表达汉字和图像,在一些需要应用汉字的场合,一维条码便不能很好的满足要求;另外,在某些场合下,大信息容量的一维条码通常受到标签尺寸的限制,也给产品的包装和印刷带来了不便。 二维条码的诞生解决了一维条码不能解决的问题,它能够在横向和纵向两个方位同时表达信息,不仅能在很小的面积内表达大量的信息,而且能够表达汉字和存储图像。二维条码的出现拓展了条码的应用领域,因此被许多不同的行业所采用二维条码的分类二维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码形态上是由多行短截的一维条码堆叠而成,矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用点的出现表示二进制“1”,空的出现表示二进制“0”,由点的排列组合确定了代码表示的含义。具有代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。有代表性的矩阵式二维条码包括Code one、Aztec、Date Matrix、QR码等。二维条码可以使用激光或CCD阅读器识读。堆叠式二维条码中包含附加的格式信息,信息容量可以达到1K,例如:PDF417码可用来为运输/收货标签的信息编码,它作为ANSI MH10.8标准的一部分为“纸上EDI”的送货标签内容编码,这种编码方法被许多的工业组织和机构采用。矩阵式二维条码带有更高的信息密度(如:Data Matrix、Maxicode、Aztec、QR码),可以作为包装箱的信息表达符号,在电子半导体工业中,将DataMatrix用于标识小型的零部件。矩阵式二维条码只能被二维的CCD图像式阅读器识读,并能以全向的方式扫描。新的二维条码能够将任何语言(包括汉字)和二进制信息(如签字、照片)编码,并可以由用户选择的不同程度的纠错级别以和在符号残损的情况下恢复所有信息的能力。二维条码的印刷和识别条码可以直接印刷在被扫描的物品上或者打印在标签上,标签可以由供应商专门打印或者现场打印。所有条码都有一些相似的组成部分。它们都有一个空白区,称为静区,位于条码的起始和终止部分的边缘的外侧。由特殊的起始和终止字符标示符号的开始和结束。校验符在一些符号法中是必须的,它可以用数学的方法对条码进行校验以保证译码后的信息正确无误。二维条码与一维条码具有许多相同的成分,它同时还包括信息量、排列顺序以及纠错的功能。矩阵式符号没有标志起始和终止的模块,但它们有一些特殊的“定位符”,定位符中包含了符号的大小和方位等信息。矩阵式二维条码和新的堆叠式二维条码能够用先进的数学算法将数据从损坏的条码符号中恢复。 在使用中,阅读矩阵式二维条码必须使用2D CCD条码阅读器,二维图像式CCD条码阅读器同样能阅读一维线性条形码和堆叠式二维条码。使用二维图像式CCD条码阅读器可以全向识读任何一种符号。尽管每一种阅读器都有它的优越性,但是若要从一个条码系统中获得最大的收益,所选用的扫描器就要求与应用的需求相对应。
你发重了
二维码是什么原理
使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。更多二维码的相关信息可登录中网管家二维码官网了解。
图形和代码转化
二维码是什么原理?不知道从什么时候开始,我们的生活突然之间就充满了二维码,看网页要扫二维码,加好友要扫二维码,现在连楼下卖草莓的大爷都支持扫码支付,那么,你有没有想过,这个长得很奇怪的二维码,到底是怎么来的呢?它的原理是什么?看完你就知道了
其实在介绍二维码原理之前你可能已经猜到了,二维码就是把信息翻译成黑白小方块,然后填到这个大方块里,这有点类似中学考试用的答题卡,就是把信息变成机器可扫描图案,一秒钟就能知道你得了多少分。当然,二维码的原理和答题卡还不太一样,这个稍后会讲到。
我们先来说一下二维码的哥哥----条形码。也就是超时收银员扫的那个黑白条,电脑在水平方向上识别粗细不均的黑白条,就能找出藏在其中的商品编号信息,相比于只在一个维度上携带信息的条形码,“二维码”在水平垂直两个维度上都携带了信息,也就做成了方块状的样子,条形码和二维码这一对好兄弟说白了,其实就是给数字、字母、符号等这些字符换了一身衣服,把他们打扮成了能被手机相机识别的黑白条或块。那么,最关键的问题来了,这些字符,到底是怎么变成这种二维码图案的呢?
这就要提到一个人类具有划时代意义的伟大发明“二进制”。我们平时使用的数字。字符、汉字等各种字符,虽然画风完全不同,但是机智的人类发明了一个方法,使他们都可以被统一转换成又0和1组成的二进制数字序列,这个转换的过程叫做编码,国际上有几套通用的编码规则,我们今天就用一个例子来感受一下,编码是怎么回事。比如AB这个由两个英文字母组成的字符,根据编码规则,每一个独立的英文字母都有唯一一个十进制数字与之对应,而像AB这样的字符串则要在对应数字的基础上再做运算,而运算的结果再转换成二进制,就变成“000111001101”这样的数字,哦对了,整个计算机和互联网文明都是建立在这种二进制编码上的,你现在看得视频,不管在你的电脑还是手机里,其实也只是一串0和1而以。
我们回到二维码的生成原理上,字符在变成只有0和1组成的数字序列后,在进行一系列优化算法(此处自行脑补一系列优化算法),就得到了最终的二进制编码。在最后的这串编码中,一个0就对应的是一个'白色小方块',一个1就对应的一个‘黑色小方块’,我们把这些小方块分成8个一组填进大方块里,这就是一个完整的、可以被手机相机识别的二维码图案了。
二维码为什么是黑白相间的?黑色表示二进制的“1”,白色表示二进制的“0”
“我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中。”黄海平说,“制作二维码输入的信息可以分成三类,文本信息,比如名片信息;字符信息,比如网址、电话号码;还有图片信息,甚至还可以包括简短的视频。”数据信息是怎么被编入的呢?信息输入后,首先要选择一种信息编码的码制。现在常见的二维码都是以QR码作为编码的码制。QR码是矩阵式二维码,它是在一个矩形空间内,通过黑、白像素在矩阵中的不同分布,来进行编码的。我们知道电脑使用二进制(0和1)数来贮存和处理数据,而在二维码中,用黑白矩形表示二进制数据我们肉眼能看到的黑色表示的是二进制“1”,白色表示二进制的“0”,黑白的排列组合确定了矩阵式二维条码的内容,以便于计算机对二维码符号进行编码和分析。
QR CODE 介绍:QR(Quick-Response) code是被广泛使用的一种二维码,解码速度快。它可以存储多用类型。如下图时一个qrcode的基本结构,其中:位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;校正图形:规格确定,校正图形的数量和位置也就确定了;格式信息:表示改二维码的纠错级别,分为L、M、Q、H;版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块。数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。
简要的编码过程:数据分析:确定编码的字符类型,按相应的字符集转换成符号字符; 选择纠错等级,在规格一定的条件下,纠错等级越高其真实数据的容量越小。数据编码:将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。其实知道这个数据码字序列就知道了二维码的数据内容。
数据可以按照一种模式进行编码,以便进行更高效的解码,例如:对数据:01234567编码(版本1-H),1)分组:012 345 672)转成二进制:012→0000001100 345→0101011001 67 →10000113)转成序列:0000001100 0101011001 10000114)字符数 转成二进制:8→00000010005)加入模式指示符(上图数字)0001:0001 0000001000 0000001100 0101011001 1000011对于字母、中文、日文等只是分组的方式、模式等内容有所区别。基本方法是一致的
纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列。在二维码规格和纠错等级确定的情况下,其实它所能容纳的码字总数和纠错码字数也就确定了,比如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。就是说二维码区域中大约1/3的码字时冗余的。对于这224个纠错码字,它能够纠正112个替代错误(如黑白颠倒)或者224个据读错误(无法读到或者无法译码),这样纠错容量为:112/346=32.4%
构造最终数据信息:在规格确定的条件下,将上面产生的序列按次序放如分块中,按规定把数据分块,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块 按顺序构成一个序列,添加到原先的数据码字序列后面。如:D1, D12, D23, D35, D2, D13, D24, D36, ... D11, D22, D33, D45, D34, D46, E1, E23,E45, E67, E2, E24, E46, E68,...构造矩阵:将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中。
掩摸:将掩摸图形用于符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布。 一个算法,不研究了,有兴趣的同学可以继续。格式和版本信息:生成格式和版本信息放入相应区域内。版本7-40都包含了版本信息,没有版本信息的全为0。二维码上两个位置包含了版本信息,它们是冗余的。版本信息共18位,6X3的矩阵,其中6位时数据为,如版本号8,数据位的信息时 001000,后面的12位是纠错位。至此,二维码的编码流程基本完成了,下面就来实践一下吧,当然不用自己再去编写上面的算法了,使用三方包zxing 就可以了编码:public static void encode(String content, String format, String filePath) try Hashtable hints = new Hashtable();设置编码类型hints.put(EncodeHintType.CHARACTER_SET, DEFAULT_ENCODING);编码BitMatrix bitMatrix = new QRCodeWriter().encode(content,BarcodeFormat.QR_CODE, DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT,hints);输出到文件,也可以输出到流File file = new File(filePath);MatrixToImageWriter.writeToFile(bitMatrix, format, file); catch (IOException e) e.printStackTrace(); catch (WriterException e1) e1.printStackTrace();解码: BufferedImage image = ImageIO.read(file);读取文件LuminanceSource source = new BufferedImageLuminanceSource(image);BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); 解码Result result = new MultiFormatReader().decode(bitmap);String resultStr = result.getText(); System.out.println(resultStr);
二维码是什么原理 二维码是谁发明的
二维码 ,又称二维条码条形码技术发展简史 条形码最早出现在40年代,但是得到实际应用和发展还是在70年代左右。现在世界上的各个国家和地区都已经普遍使用条形码技术,而且它正在快速的向世界各地推广,其应用领域越来越广泛,并逐步渗透到许多技术领域。
早在40年代,美国乔·伍德兰德(Joe Wood Land)和伯尼·西尔沃(Berny Silver)两位工程师就开始研究用代码表示食品项目及相应的自动识别设备,于1949年获得了美国专利。该图案很像微型射箭靶,被叫做“公牛眼”代码。靶式的同心圆是由圆条和空绘成圆环形。在原理上,“公牛眼”代码与后来的条形码很相近,遗憾的是当时的工艺和商品经济还没有能力印制出这种码。
然而,20年后乔·伍德兰德作为IBM公司的工程师成为北美统一代码UPC码的奠基人。以吉拉德·费伊塞尔(Girard Fe- -ssel)为代表的几名发明家,于1959年提请了一项专利,描述了数字0-9中每个数字可由七段平行条组成。但是这种码使机器难以识读,使人读起来也不方便。不过这一构想的确促进了后来条形码的产生于发展。 不久,E·F·布宁克(E·F·Brinker)申请了另一项专利,该专利是将条形码标识在有轨电车上。
60年代后期西尔沃尼亚(Sylvania)发明的一个系统,被北美铁路系统采纳。这两项可以说是条形码技术最早期的应用。1970年美国超级市场Ad Hoc委员会制定出通用商品代码UPC码,许多团体也提出了各种条形码符号方案,如上图右下、左图所示。UPC码首先在杂货零售业中试用,这为以后条形码的统一和广泛采用奠定了基础。次年布莱西公司研制出布莱西码及相应的自动识别系统,用以库存验算。这是条形码技术第一次在仓库管理系统中的实际应用。
1972年蒙那奇·马金(Monarch Marking)等人研制出库德巴(Code bar)码,到此美国的条形码技术进入新的发展阶段。
1973年美国统一编码协会(简称UCC)建立了UPC条形码系统,实现了该码制标准化。同年,食品杂货业把UPC码作为该行业的通用标准码制,为条形码技术在商业流通销售领域里的广泛应用,起到了积极的推动作用。
1974年Intermec公司的戴维·阿利尔(Davide·Allair)博士研制出39码,很快被美国国防部所采纳,作为 军用条形码码制。39码是第一个字母、数字式的条形码,后来广泛应用于工业领域。
1976年在美国和加拿大超级市场上,UPC码的成功应用给人们以很大的鼓舞,尤其是欧洲人对此产生了极大兴趣。次年,欧洲共同体在UPC-A码基础上制定出欧洲物品编码EAN-13和EAN-8码,签署了“欧洲物品编码”协议备忘录,并正式成立了欧洲物品编码协会(简称EAN)。
到了1981年由于EAN已经发展成为一个国际性组织,故改名为“国际物品编码协会”,简称IAN。但由于历史原因和习惯,至今仍称为EAN。
日本从1974年开始着手建立POS系统,研究标准化以及信息输入方式、印制技术等。并在EAN基础上,于1978年制定出日本物品编码JAN。同年加入了国际物品编码协会,开始进行厂家登记注册,并全面转入条形码技术及其系列产品的开发工作,10年之后成为EAN最大的用户。
从80年代初,人们围绕提高条形码符号的信息密度,开展了多项研究。128码和93码就是其中的研究成果。128码于1981年被推荐使用,而93码于1982年使用。这两种码的优点是条形码符号密度比39码高出近30%。随着条形码技术的发展,条形码码制种类不断增加,因而标准化问题显得很突出。为此先后制定了军用标准1189;交叉25码、39码和库德巴码ANSI标准MH10.8M等等。同时一些行业也开始建立行业标准,以适应发展需要。
此后,戴维·阿利尔又研制出49码,这是一种非传统的条形码符号,它比以往的条形码符号具有更高的密度。接着特德·威廉斯(Ted Williams)推出16K码,这是一种适用于激光系统的码制。到目前为止,共有40多种条形码码制,相应的自动识别设备和印刷技术也得到了长足的发展。
从80年代中期开始,我国一些高等院校、科研部门及一些出口企业,把条形码技术的研究和推广应用逐步提到议事日程。一些行业如图书、邮电、物资管理部门和外贸部门已开始使用条形码技术。在经济全球化、信息网络化、生活国际化、文化国土化的资讯社会到来之时,起源于40年代、研究于60年代、应用于70年代、普及于80年代的条码与条码技术,及各种应用系统,引起世界流通领域里的大变革正风靡世界。 条码作为一种可印制的计算机语言、未来学家称之为“计算机文化”。
90年代的国际流通领域将条码誉为商品进入国际计算机市场的“身份证”,使全世界对它刮目相看。 印刷在商品外包装上的条码,象一条条经济信息纽带将世界各地的生产制造商、出口商、批发商、零售商和顾客有机地联系在一起。这一条条纽带,一经与EDI系统相联,便形成多项、多元的信息网,各种商品的相关信息犹如投入了一个无形的永不停息的自动导向传送机构,流向世界各地,活跃在世界商品流通领域。
以上是关于二维码是啥东西,是啥原理?的主要内容,如果未能解决你的问题,请参考以下文章