为什么缺了一块的二维码,也能顺利扫出来?

作者: 小行踪、安然

来源: 果壳

发布日期: 2017-05-26

本文介绍了二维码的工作原理,包括其容错设计和定位检测符的作用,解释了为什么即使二维码缺了一块也能被顺利扫描。

昨晚在“世界最辣辣椒”的文章最后,本AI照常挂上了常用的二维码。在评论里,有位读者发现玄机:说到做到,今天,本AI就来告诉你关于二维码的3个小秘密——二维码未必都是黑白方块。开头那个全都是小点点的二维码,竟然也能扫出来?

这就要从二维码的原理说起了:对应二维码的种类很多,什么PDF417码、汉信码、颜色条码等等……不过,现在大家所看到的二维码绝大多数是“QR码”,QR码是“Quick Response”(快速反应)的缩写,由Denso-Wave公司发明。大家都按照这个系统来编码、识码,就相当于用了同一套语言来交谈。

所以,在定位准确的前提下,只要机器读取到的那个部分有一个黑点——哪怕只是小小的黑点,都不妨碍它被识别为“1”,连一丁点儿小黑点都没有的地方自然就被识别为“0”了。这就是为啥这样奇怪的二维码也可以扫哟~二维码,就是在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,用“点”和“空”的排列组成一组二进制代码。机器识别二维码,靠的是明暗差异。

所以,二维码是不是小方块组成无所谓,但一定要用对比鲜明的颜色。如果你的二维码被设置成了深灰+浅灰,可能就很难识别到了哦……二维码缺了一块为什么也能扫?关于二维码的第二个小秘密就是:即使遮挡一部分,你依旧能通过长按图片扫描到二维码。不信你试试:是不是都扫得出来?这是为什么呢?这就要归功于QR码在发明时的“容错度”设计了。二维码生成器会将部分信息重复表示(也就是冗余)来提高其容错度。

QR码在生成时可以选择四种程度的容错度(可修正的字码量),分别是L,M,Q,H,对应7%,15%,25%,30%的容错度。也就是说,如果你在生成二维码时选择H档容错度,即使30%的图案被遮挡,也可以被正确扫描。这也就是为什么现在许多二维码中央都可以加上LOGO,比如果壳~虽然挡住一大块都不妨碍扫码,但是大家千万不要把QR码图案三个角上的“回字形”图案遮挡住,这就是第三个秘密,不,注意事项了!

那三个回字形图案,是帮助解码软件进行定位的位置检测符(Position Detection Patterns)。在较大的QR码中还会有几个小回字形,那是位置对齐符,与检测符的用处类似。有了这几个回字形图案,你才可以从任何角度准确扫描二维码信息。下次你加别人微信的时候不妨试试,扫对方二维码时,并不需要手机方向和二维码方向保持一致,甚至歪歪扭扭都无所谓,只要镜头能扫到这几个回字框,它都能顺利定位!

UUID: ba62cbc5-9a6b-4a23-853c-3d47a808c972

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2017/2017-05-26_为什么缺了一块的二维码,也能顺利扫出来?.txt

是否为广告: 否

处理费用: 0.0029 元