← 返回首页

手动复原一个像素模糊的二维码

发布时间: 2026-04-06 19:22(北京时间)

摘要: 作者通过手动点击像素格的方式,复原了一个因拍摄模糊而无法扫描的二维码。过程涉及对二维码结构(如 Finder Patterns 和 Alignment Pattern)的理解,利用 AI 工具辅助创建交互页面,并遇到工具错误后调整策略。最终成功还原并部署页面供体验,同时提及二维码的纠错机制(如 Reed-Solomon 算法)。整体语调冷静、技术导向,带有实践反思。

标签: 二维码技术, 手动复原, 工具辅助, 纠错机制, 实践反思, 冷静, 结构化思考

字数: 789

原文链接: /7402396589/QzzFdb4Wb

动物园群里有朋友想推荐一家好吃的餐馆,于是拍了店铺的塑料袋发群里,上面有个微信的二维码(图1)。但二维码毕竟是印在塑料袋上得,拍出来的二维码有些扭曲,像素也不太高,一个bit大概12x12像素。结果就是大家用微信都扫不出来。

我数了下,这个二维码是33x33,也就是 Version 4。虽然手机扫描不出来,但每个“格子”的分布以及相对位置用肉眼推断似乎是可行的。于是我迅速让Gemini写了个HTML页面,允许我自己去点击每个格子是黑色还是白色。接下来就是纯粹用眼睛遍历照片中的每个格子,该是黑色的就点一下,点完无误的话就可以扫描了。

一个二维码,固定有三个大的“回”字形方块儿叫做 Finder Patterns,然后还有一些5x5的小方块叫做 Alignment Pattern。为了图省事,我让Gemini写网页的时候帮我把 Finder Patterns 和 Alignment Pattern 都先涂上黑色且固定。为了防止误关闭页面,顺带加上自动缓存功能。具体可以看看二维码的wiki(图2)

但其实被Gemini坑了,因为他固定在右下方的 Alignment Pattern 位置是错的,应该偏移了一行。所以我戳着戳着发现不太对劲,后来索性让Gemini不要锁定这个图案。

后面的事情就简单了,在33x33格里面我手动戳了428个黑块,完成了这个二维码的人工还原,扫描也很顺利(图3)。不过能扫出来并不一定代表我没有戳错,二维码是有纠错机制的,不是敏感的区域就算点错几个也是能纠错回来的。这个和二维码设定的纠错等级有关,具体来说和 Reed-Solomon 算法有关。感兴趣的朋友可以去了解下。

我也把这个简单的页面部署上去了(图4),大家可以体验一下。
manual-qr.closeai.moe

image

image

image

image