【问题标题】:Improve zbarimg qrcode recognition改进 zbarimg 二维码识别
【发布时间】:2021-10-23 16:11:09
【问题描述】:

我有一个扫描纸张的工作系统,然后让 zbarimg 识别这些纸张上的二维码(虽然我不知道二维码出现在哪个区域)。突然 qrcode 识别变得更糟,最终完全停止工作。

物理扫描仪从扫描的纸张生成 PDF。我用ghostscript把它转成图片:

gs -sDEVICE=png16m -sCompression=lzw -r600x600 -dNOPAUSE -sOutputFile='scantest.png' scantest.pdf

这是结果:

当您尝试使用智能手机读取二维码时,它会立即被识别。但是当我运行 zbarimg 时:

zbarimg scantest.png

Zbarimg 什么都不识别:

在 6.6 秒内从 1 张图像中扫描了 0 个条形码符号

我尝试应用此解决方案: https://stackoverflow.com/a/40609947/4654597

但没有任何运气,实际上它完全破坏了二维码:

我还尝试应用此帖子中建议的光模糊滤镜: Decode QR-Code in scanned PDF

我使用 ImageMagick 来完成这项任务: convert scantest.png -blur 1x1 scantest_after_blur.png

我也尝试了 1x2、1x3、1x4、1x6、1x8,但没有任何帮助。

我怎样才能让 zbarimg 再次工作?

【问题讨论】:

  • 黑色区域有白点。您可以通过一些形态来删除它们。试试convert scantest.png -morphology erode square:1 scantest_after_erode.png
  • @fmw42 非常感谢。在您发表评论前几分钟,我在另一篇文章中找到了解决方案,您在其中提供了关键信息。 convert input.png +repage -threshold 50% -morphology open square:1 output.png 成功了,所以我最后保留了这个命令。不幸的是,我不太了解 -morphology open 和 -morphology erode 之间的区别以及 -threshold 和 +repage 的作用。
  • @Benedikt erode 会加厚黑色,open 会填充黑色而不加厚。 - 阈值 50% 使您的黑色全黑。 open 和 erode 将适用于灰度图像。如果不是,您的图像几乎是黑色/白色。 -threshold 强制它完全是黑色/白色

标签: qr-code


【解决方案1】:

这是最终奏效的方法:

convert input.png +repage -threshold 50% -morphology open square:1 output.png
zbarimg output.png

最重要的可能是应用形态学。我从这篇文章中得到了整个 ImageMagick 命令:QR code detection with ZBar from console fails for valid QR codes (ZBarCam from camera detects them fine)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多