python - 如何检测扫描纸上的图案(如二维码),以便正确旋转/缩放/识别?

标签 python opencv image-processing qr-code image-scanner

我有需要打印的 PDF 文件或 JPG 图像(这些是需要手动填写的公式),我需要:

  • 扫描后,应该使用 Python 完美地旋转/缩放图像,这样我就可以使用 x、y 坐标访问公式的某些部分

  • 扫描的图像应使用数字 ID 进行识别。

我应该在公式纸上添加什么样的图案,以便 Python 库(哪个?)能够裁剪它/旋转它/用 ID 识别它?

我正在考虑在纸的左上角添加一个 QR 码(包含一个数字 ID),在纸的右下角添加一个 QR 码,或者也可能是 "hirondelles"符号:

QR 码将由 qrcode 生成图书馆:

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

并在 PDF 顶部添加了 this method .


注意:

enter image description here

最佳答案

这个任务需要结合两种技术:

  • 第一步:检测每个二维码4个角的x,y坐标。 Python 库 zbar 对此很有用。 this question中的代码+ 答案显示了如何去做。

  • 第二步:现在需要去歪斜/透视校正/“单应性”。 Here是如何使用 Python + OpenCV 完成的。

关于python - 如何检测扫描纸上的图案(如二维码),以便正确旋转/缩放/识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50433482/

相关文章:

python - OpenCV:检测区域是直的还是弯曲的

opencv - 如何从 opencv.js 中找到角向量

c - 在 pkg-config 搜索路径中找不到包 gtk-engines-2

python - 灰度共生矩阵//Python

python - 如何在 Python 中使用 OpenCV 和 Tesseract 处理信用卡字体

Python virtualenv --system-site-packages -- 意外的 pip 行为

python - Pandas 每月重新采样第 15 天

node.js - 检测 png Node 中是否有(并且实际使用)Alpha channel

python - 如何使用pyplot使轴占据多个子图

image-processing - 使用opencv进行虹膜检测