技术 · 技术科普
二维码缺一块为什么还能扫出来
纠错码把冗余信息编进图案,让破损的方块依然可以被还原。
图案里装了什么
二维码由若干黑色与白色方块组成,其中一部分是定位图案,帮助扫描设备找到边界与方向;另一部分是数据区,存放编码后的内容。
数据区并非简单堆放,而是经过编码、分块与交织。这样即使某一块受损,也能通过其余部分推断出来。
冗余是怎么起作用的
编码时加入了校验信息,相当于给原始数据配了一份「备份方程」。当部分方块读错时,解码器用这些方程求解,把错误的位纠正回来。
纠错能力分等级。等级越高,可修复的损坏比例越大,但能容纳的数据越少。这就是为什么同样大小的二维码,内容多时更难抵抗破损。
为什么有的码扫不出来
定位图案受损会直接影响识别。三个角上的回字形图案一旦模糊,扫描设备可能找不到码的位置。
反光、褶皱、印刷对比度不足,也会让采样出错。纠错能处理位错误,但处理不了整片区域无法读取的情况。
生活中的应用
门票、物流标签、工业零件上的二维码,常使用较高纠错等级,以适应磨损与污渍。日常宣传物料则倾向于用较低等级换取更短的内容长度。
下次看到二维码中间放了图标,可以理解为它占用的正是纠错冗余的空间。图标越大,可用于纠错的余量就越少。
自己动手验证
可以用在线工具生成一个二维码,打印后遮住一角再扫描,观察是否仍能识别。改变遮挡面积,就能直观感受纠错等级的作用。
这种小实验比读参数更能建立直觉。
读者留言
共 4 条 · 精选展示这篇可以收藏,纠错码部分值得反复看。
同意文中对纠错码的判断,别照搬结论就行。
写得不夸张,把纠错码的边界说清楚了,难得。
纠错码这段最有价值,比泛泛而谈的解读好读。补充一句,文中提到的情况因人而异,不要直接照搬。