对于某些有效的QR码,ZBar和ZXing的QR码检测失败

时间:2018-05-17 10:53:15

标签: imagemagick qr-code zxing zbar

我正面临着QR码检测的一个非常奇怪的问题。

TL; DR

简单地说,ZBar和ZXing都无法在许多图像中检测到QR码。

Example image。 (Mirror)。

在我的Mac上,我通过Brew安装了zbar。我使用here中的JAR进行zxing设置。两者都未能检测到示例图像中的QR码。 (注意:检测确实适用于许多其他图像;我在执行zbar或zxing时没有犯任何愚蠢的错误。)

但是,如果我打开手机上的“Barcode Scanner”应用并将其放在显示上述QR码的笔记本电脑屏幕前,应用会检测到它。另外,如果我在zxing.org上传上面的图片,它也会在那里检测到QR码。

可能出现什么问题?

长版

我有很多实际的纸张,上面印有有效的QR码(类似于上面的示例图片)。使用任何移动应用程序相机条形码扫描仪,可以在纸上直接检测到QR码。

接下来,我使用2台扫描仪以300 DPI扫描这些纸张:

  1. Fujitsu ScanSnap S1300i
  2. Brother ADS-1500W
  3. 输出格式为JPG(两个扫描仪的扫描仪软件中没有其他选项)。

    当我在富士通扫描仪生成的任何图像上运行zbar(使用其ScanSnap软件扫描)时,始终检测到QR码。

    当我对Brother扫描仪生成的图像运行zbar(或zxing)时,QR码检测非常受欢迎。

    实际案例:我在Brother扫描仪上扫描了31张纸。图像为here(非G-Drive mirror,图像未触及)。然后我写了一个脚本来浏览每个图像并找到其中的QR码。脚本here

    脚本的完整输出是在pastebin here上生成的。

    Brother扫描仪图像摘要:

    Total number of images scanned: 31
    
    Num images with ZBAR QR detected: 17 
    Num images ZBAR FAILED: 14
    
    Num images with ZXING QR detected: 15 
    Num images ZXING FAILED: 16
    

    您可以看到两种软件都没有检测到许多图像的QR码。对于某些图像,只有2个软件中的一个成功。对于许多其他图像,都成功。

    05161801.JPG是上面一组中的一张图片,两张软件都没有检测到。但上传到zxing.org的图像效果相同。我的手机上的条形码扫描仪应用程序还会检测笔记本电脑屏幕上的QR码以获取此图像。

    提示

    当使用富士通扫描仪扫描时,QR检测适用于同一张纸的事实告诉我,Brother扫描仪正在应用一些后处理,导致QR检测变得不确定(这仍然不能解释如何zxing.org适用于这些图像。我想知道imagemagick是否可以用来以某种方式使图像与ZBar一起工作。我尝试用Fred's textcleaner脚本做一些“增强”。我还没能破解它。

    我花了很多时间试图解决这个问题。我将不胜感激任何意见,建议或解决方案。谢谢!

    更新:添加使用富士通扫描仪扫描的相同纸张的图像

    您可以从here下载未触动的图片。

    我在这些富士通图像上运行了barcode_checker.py脚本(与上面相同)。如前所述,QR码在每个单一图像中被检测到! (ZXING确实失败了一些,但ZBAR 100%成功)

    脚本的完整输出是在pastebin here上生成的。

    Brother扫描仪图像摘要:

    Total number of images scanned: 31
    
    Num images with ZBAR QR detected: 31
    Num images ZBAR FAILED: 0
    
    Num images with ZXING QR detected: 26
    Num images ZXING FAILED: 5
    

1 个答案:

答案 0 :(得分:0)

我检查了您的代码,您似乎没有对图像应用任何图像处理或清理?你能准确说明你试过的吗?

只是部分答案,但没有人说答案必须完整。也许我知道35%的故事和一些聪明的灵魂知道其他65% - 你在读Fred(@ fmw42)吗?

好的,我选择了(希望匹配的)一对图像:

  • 05161825.JPG(Brother) - 如下图左侧所示
  • 2018_05_25_10_19_46.JPG(富士通) - 右侧显示

并使用 ImageMagick identify -verbose IMAGE.JPG工具对其进行分析,并对输出产生差异。

它们非常密切相关,除非标有红色。我看到Brother扫描中的熵一直较低,JPEG质量未指定(?),文件大小减少了约35%。

enter image description here

也许弗雷德,或埃里克或其他一些善良的人有一些见解。我会继续寻找更多的想法,并在我发生任何新的事情时更新我的​​帖子。