【发布时间】: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 的作用。 -
@Benedikterode 会加厚黑色,open 会填充黑色而不加厚。 - 阈值 50% 使您的黑色全黑。 open 和 erode 将适用于灰度图像。如果不是,您的图像几乎是黑色/白色。 -threshold 强制它完全是黑色/白色
标签: qr-code