为什么二维码无论是画的还是刻的都能扫出来东西?

阿鑫大大


二维码是个由黑白小方块组成的神奇图案,已然成为我们生活当中非常重要的一部分。收钱付款、APP互加好友、帐号登陆都需要扫一扫二维码。

为什么二维码无论是画的还是刻的都能扫出来东西?

这二维码中的黑白小方块儿究竟有何神奇之处,为什么随便一扫总能带我们所需的东西,而且无论是画出来、印刷打印出来或刻出来都扫出来东西?

首先,我们需要了解二维码的原理。

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。

二维码内容能否识别和容错率有关与制作材质无关

通过上方二维码构成图,我们可以看到,二维码图案就是由三个大方块(定位图案)和码元组成。

QR码从360°任一方向均可快速读取。其奥秘就在于QR码中的3处定位图案,可以帮助QR码不受背景样式的影响,实现快速稳定的读取。

无论二维码是通过打印、印刷、手绘或是雕刻的方式制作,无论使用的是什么材质, 只要码元清晰,都能快速识别。二维码能否识别和容错率有关,与制作材质无关。

什么是容错率:
  • 容错率也叫纠错率,就是指二维码可以被遮挡后仍能被正常扫描,而这个能被遮挡的最大面积就是容错率。
  • 基本概念:最常见的QR二维码,用的是里德-所罗门码(RS)来做纠错。分有几级,纠错级别越高,整体需要携带的信息越多:L级可纠正约7%错误、M级别可纠正约15%错误、Q级别可纠正约25%错误、H级别可纠正约30%错误。RS码原理比较复杂,整体基于“任意k个确定点可表示一个阶数至少为k-1的多项式”,实际上发送超过k个点,就算中间有一些错误,也能通过数学原理反推出最初的多项式,从而获得信息。并不是所有位置都可以缺损,像最明显的那三个角上的方框,直接影响初始定位。中间零散的部分是内容编码,可以容忍缺损。

  • 由于调整纠错率的时候,二维码的图案分布也要重新调整,所以每次调整纠错率,二维码的图案都会发生变化。


简而言之,二维码就是将我们能看懂的文字语言,以机器语言的形式存储了起来。其中黑色小方块代表的是1,白色小方块代表的是0,黑白相间的图案其实就是一串编码,扫码的过程就是翻译这些编码的过程。

所以,二维码怎么印,印在哪里不重要,重要只要黑白相间的图案没有缺失就能识别。

以上是我的回答,希望对您有所帮助。仅为个人观点,如果您有不同看法,欢迎下方评论。我是【稻客说】,专注办公技巧分享, 觉得有用,烦请点个赞、关注一下,谢谢。

稻客说



理论上可以实际上很难。

二维码说白了就是一个方格平面上的点位读取。

先在平面上画出位置确定、校正图形和版本信息等内容

然后将信息编码为二进制,填入数据区

填写完数据区后,为了不留大量空白,还得选择MASK填充码作为区域填充,这些填充码是会被算法略过的,但是不写填充码就会出现读取失败的情况。

在理解原理且手动进行编码换算的情况下,你可以手动计算出一个精确的二维码,毕竟一个最简单的二维码只有21*21的大小,计算工作量并不大。只要事先打好格子一个个格子填黑或留白,完成这个二维码生成过程并不是非常难的事情。如果是为了学习并融会贯通二维码的相关技术这么做也无可厚非。如果是为了其他原因比如挑战自我的话,就有点无聊了。


分享到:


相關文章: