如何在扫描的纸张上检测图案(如QR码),以便正确旋转/缩放/识别?

6
我有需要打印的PDF文件或JPG图像(这些是手动填写的表格),我需要:
  • 扫描后,图像应该能够通过Python完美地旋转/缩放,以便我可以使用x,y坐标访问表格的某些部分
  • 扫描的图像应该用数字ID识别。
我应该在表格纸上添加什么样的图案,以便Python库(哪一个?)能够裁剪/旋转/用ID识别它? 我考虑在纸张左上角添加QR码(包含数字ID),在纸张右下角添加QR码,或者也可以添加"hirondelles"符号。

使用qrcode库生成QR码:

import qrcode
img = qrcode.make('ID1138934')

并且在顶部添加了使用this method的PDF。


注意:

enter image description here

1个回答

1
这个任务需要结合两种技术:
  • 第一步:检测每个QR码的4个角的x,y坐标。Python库zbar对此很有用。 this question中的代码和答案展示了如何做到这一点。

  • 第二步:现在需要进行去畸变/透视校正/“单应性”纠正。 Here展示了如何使用Python+OpenCV完成此操作。


我想指出的一件事是,您需要具有亚像素精度(即十进制浮点数)的4个角落。 zbar 给出的是整数坐标,这对于透视校正来说不足以获得非常好的结果。我发现新的 OpenCV 4.1 具有与 zbar 类似的功能,并且它可以提供浮点数的4个角落。但它不如 zbar 强大。 - abggcv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接