为什么会动的二维码都能扫出来?

作者: 陈毅东

来源: 果壳少年

发布日期: 2018-04-04

本文详细解释了为什么即使二维码是动态的,也能被扫描的原因,介绍了二维码的编码原理、QR码的流行原因以及其在中国的广泛应用。

果壳少年有一个非常酷炫的二维码,不仅萌,而且还能动。不论流星闪过、汽车开过,还是行星嗖嗖转,都不影响你长按图片识别二维码,这是为什么呢?

我们先来了解一下二维码。二维码也叫二维条码,是一种比较高级和领先的条码格式,在它诞生之前,最经济和普遍应用的就是一维条码,也就是我们去超市购物,结账时收银员扫描的条码。二维码和一维码都在代码编制上利用了计算机二进制0、1比特流的概念。

一维码只能在一个方向上表达信息,是用线条和空白按照一定规则组合的符号,只能包涵数字和字母,支持字符数上限为30,也就是说存储数据的容量比较小,而且损坏后无法读取。而二维码可水平和垂直存储信息,除了字母和数字,还能对图片、汉字、声音、指纹、签字等进行编码。二维码和一维码扫描的基本原理是一样的,你还可以用微信扫一扫身边的商品条码,看看有什么意外发现。

二维码的码制有几十种,但目前最流行的码制是QR码(QR Code),全称是Quick Response Code(快速响应矩阵图码),它由日本公司Denso Wave发明,最早用来追踪汽车零部件而设计。因为QR码比较主流,所以目前称呼二维码通常就是指QR码,但其实QR码只是二维码的子集而已。

QR码在一个矩形空间中通过黑、白像素在矩阵中的不同分布进行编码。

在矩阵相应元素位置上,用点表示二进制的“1”,空表示二进制的“0”,点的排列组合确定了矩阵式二维码所代表的意义。当你扫一个二维码的时候,是通过窄光束进行机械扫描,即光束照在二维码不同颜色的区域上,所获得的反射信号不同,数字图像传感器再将这些光信号转化成为电信号,然后由设备进行数字分析。机器识别二维码,本质上靠的是“点”与“空”的差异实现的,所以,“点”与“空”颜色相近的二维码是识别不出来的。

QR码的角落定位三个回形,第四个角附近的较小方块(或多个方块)来规范图像的大小,方向和观看角度。这三个大回形相当于在告诉机器“我是一个二维码”,当某个大回形符被挡住之后,QR码就扫不出来了。

为什么QR码会如此受欢迎呢?因为,QR码容量非常大,而且,在发明时考虑了“容错度”。每个二维码都有一些冗余信息用于提高容错,细心的你可能会发现,我们在生成一个二维码的时候,共有四种容错的级别可以选择:级别L,可以恢复7%的编码。级别M,可以恢复15%的编码。等级Q,可以恢复25%的编码。级别H,可以恢复30%的编码。所以,无论是缺一块,还是旋转90度,二维码都依然能被扫出来。

虽然二维码在它的发明国家日本也有广泛的应用,比如报纸杂志广告、游览手册、传单、折扣券、电子票证、甚至商品信息等等,但却错过广阔的支付应用场景。2011年,中国人率先申请注册了“二维码扫一扫专利”,2012年,腾讯的马化腾将二维码称为“线上线下的关键入口”,在这之后,二维码伴随着互联网+的创新浪潮,在支付、O2O、电商、共享等领域快速普及,让今天的中国进入了“无现金社会”。

最后,我们回到果壳少年会动的二维码。它是由12张静态的图片组成的一组gif动画,但无论流星闪过、汽车开过,还是行星嗖嗖转,它们都没有挡住关键的识别信息,当然能轻松扫出来啦。

UUID: e30803eb-7e95-41a6-a7af-c0d526557075

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳少年公众号-pdf2txt/2018-2019/2018-04-04_为什么会动的二维码都能扫出来?.txt

是否为广告: 否

处理费用: 0.0036 元