qinghuan
← 回到知识探索

计算机趣闻 / 趣味知识

二维码能纠错,为什么遮一点也会扫不出?

纠错比例说的是数据单位,不是可以随便盖住的图片面积。

展开本文目录
  1. 先看出格子,再恢复数据
  2. 百分比不是给设计师预留的贴纸区
  3. 白边看似空着,其实有任务
  4. 提高纠错级别之后,还要检查印出来怎样
  5. 记住这三点
  6. 别把例子用过头
  7. 自己试一小步
  8. 查原始资料
  9. 找一份资料继续练

有的二维码中间放了图案仍能扫出,有的只被折了一下就失灵。听说二维码能恢复一部分损坏,很容易把它理解成“随便遮住相同比例的面积都没关系”。真正要分开的,是把图片看清楚,与从已经读出的错误数据里恢复内容。

先看出格子,再恢复数据

手机要先从照片中找到二维码,判断方向和格子的排列,再把明暗格子解释成数据。纠错主要帮助处理后面的数据错误。如果照片太糊、格子被缩放变形,或边缘与背景混在一起,前面的读取就可能出问题;这时不能指望纠错替相机补回所有视觉线索。

可以把它想成读一张带检查信息的表格。即使有办法修复少量抄错数字,仍需要知道各行各列在哪里。这个比喻只用来区分两件事:二维码并不是人工表格,实际识别与编码步骤更细,也不能据此计算具体能遮住多少面积。

百分比不是给设计师预留的贴纸区

DENSO WAVE 的说明把纠错比例对应到“码字”,一个码字在这里是八位数据的单位。纠错信息与内容一起编码,用数学关系帮助恢复一部分错误。黑白小格、码字与整张图片的面积不是同一个计量单位,不能直接画一个同百分比的矩形来代替。

同样大小的遮挡,位置不同、涉及的数据分布不同,结果也可能不同。能读出一次,只能说明那张图在当时的设备、距离和光照下成功,不是所有手机都能识别的证明。也不宜凭一个失败样本认定某级纠错完全无用。

白边看似空着,其实有任务

普通 QR 码四周需要留出至少四个码元宽度的空白;码元就是一个小方格。假设格子宽两毫米,那么这里讨论的白边宽度就是八毫米。这个算例只解释比例,实际打印尺寸还应结合距离、设备和清晰度选择。

如果把二维码紧贴文字、裁掉白边,或给图片加上重叠装饰,读取条件就变了。二维码不是只保留黑点就够用的图标。排版时应把它的空白边一起当作组件保存,放大缩小时也要观察方格边缘是否清楚,而不只是看整体轮廓是否像方形。

提高纠错级别之后,还要检查印出来怎样

更高的纠错级别需要更多额外信息。同样的内容可能因此需要更多格子或更大的二维码。如果外框尺寸被固定,更多格子就意味着每个格子更小;因此“把级别拉到最高”并不自动解决远距离、低分辨率或印刷模糊的问题。

一个可操作的顺序是先缩短不必要的内容,保持清楚的黑白对比和完整空白边,再按使用环境选择级别,并用实际展示尺寸试扫。练习可以只编码一段普通文字,比较是否读回原文;无需使用支付码、登录码或包含个人信息的二维码。

记住这三点

  • 纠错需要先有可读取的图案,不能替代清晰拍摄和正确排版。
  • 纠错比例以码字为单位,不能直接换成任意位置的遮挡面积。
  • 空白边、格子尺寸和实际展示环境,应与纠错级别一起检查。

别把例子用过头

  • 本文讨论普通 QR 码,不把所有二维码类型的规则混用。
  • 一次试扫成功不能证明各种设备和印刷条件下都会成功。
  • 提高纠错级别有空间代价,不是无条件更好的设置。

自己试一小步

保持相同内容与尺寸,哪一种改动最容易影响你手边设备读取?

  1. 准备只包含短句的练习 QR 码,并保留清晰原图。
  2. 复制成几份,每次只改变一个条件:白边、整体缩小或少量遮挡。
  3. 保持同一设备、距离和光照,重复试扫,记录能否读回完整短句。

做到这些,就算完成

  • 记录图像尺寸和改动位置,避免同时改变多个条件。
  • 把观察限定在这组设备和样本,没有写成普遍的遮挡百分比保证。
  • 练习不使用需要打开链接或登录的二维码。

查原始资料

想确认一个细节,先看这份资料对应的部分,不必从头读完所有文档。

找一份资料继续练

先选一项,按下面的范围继续学;不必从头读完整门课程。