【问题标题】:zxing does not find readable barcodezxing 没有找到可读的条形码
【发布时间】:2015-05-07 15:18:43
【问题描述】:

我尝试检测网络摄像头图像中的条形码,但无法在大图像中找到小条形码。 xzing(svn trunk)即使尝试更努力也无法在第一张图像中找到条形码(请参阅链接)。但是,如果我手动裁剪图像(第二张图像),则提取信息没有问题。因此,也应该可以在第一张图像中找到条形码。

有没有办法告诉 xzing 也可以找到更小的条形码?或者是否已经实现了一些滑动窗口或者可能是基于梯度的条形码定位器?

原文:未找到条形码 http://postimg.org/image/lh9xf7lw1/

裁剪版本:条码已提取 http://postimg.org/image/e1kb49tw1/

【问题讨论】:

  • 对条形码没有帮助,但对于二维码,我发现切换到QRCodeMultiReader 可以显着提高在较大图像中查找小二维码的能力

标签: zxing


【解决方案1】:

尝试不同的二值化器。您可能正在使用在整个图像上计算直方图的那个。不同的亮度导致条形码本身被视为更均匀的黑色补丁。混合二值化器更加局部化,并且可能获得与手动剪切图像其余部分相同的效果。

【讨论】:

  • 我已经尝试了这两种二值化器,而且 zxing.org 也无法读取条形码。 [~/projects...-read-only/cpp/build]: ./zxing -h large_fail.png 混合二值化器失败:zxing::ReaderException: 未检测到代码
  • 这可能是 C++ 和 Java 端口之间的延迟。但它也可能只是一个不解码的图像。不保证能找到条码。
  • 您打算将 Barcode Localizer 集成到 zxing 中吗?我已经实现了一个基于 OpenCV 的定位器,它通过选择一个好的 roi 来提高 zxing 的检测率。是否存在难以在图像中找到条形码的测试用例?
  • 我对 zxing 没有任何计划,但我认为它现在已经为 Android 提供了一些适当的绑定,所以我敢打赌它会很简单
【解决方案2】:

在我的情况下,这个技巧有帮助 Android zxing NotFoundException

它建议添加 TRY_HARDER

        Hashtable<DecodeHintType, Object> decodeHints = new Hashtable<>();
        decodeHints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);

        result = reader.decode(bitmap, decodeHints);

【讨论】:

  • 能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?
猜你喜欢
  • 1970-01-01
  • 2014-02-27
  • 2012-06-28
  • 2017-11-07
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多